Agrovision / static /js /upload.js
qwfjgp2's picture
Upload 46 files
a8ea7fe verified
Raw
History Blame Contribute Delete
1.91 kB
let uploadArea;
let fileInput;
let uploadPrompt;
let previewSection;
let imagePreview;
let resultsSection;
let currentImageFile = null;
function displayImage(file) {
currentImageFile = file;
const reader = new FileReader();
reader.onload = (e) => {
imagePreview.src = e.target.result;
uploadPrompt.classList.add('hidden');
previewSection.classList.remove('hidden');
resultsSection.classList.add('hidden');
};
reader.readAsDataURL(file);
}
function resetUpload() {
fileInput.value = '';
currentImageFile = null;
uploadPrompt.classList.remove('hidden');
previewSection.classList.add('hidden');
resultsSection.classList.add('hidden');
}
function initUpload() {
uploadArea = document.getElementById('upload-area');
fileInput = document.getElementById('file-input');
uploadPrompt = document.getElementById('upload-prompt');
previewSection = document.getElementById('preview-section');
imagePreview = document.getElementById('image-preview');
resultsSection = document.getElementById('results-section');
if (!uploadArea || !fileInput) return;
uploadArea.addEventListener('dragover', (e) => {
e.preventDefault();
uploadArea.classList.add('drag-active');
});
uploadArea.addEventListener('dragleave', () => {
uploadArea.classList.remove('drag-active');
});
uploadArea.addEventListener('drop', (e) => {
e.preventDefault();
uploadArea.classList.remove('drag-active');
const file = e.dataTransfer.files[0];
if (file && file.type.startsWith('image/')) {
displayImage(file);
}
});
fileInput.addEventListener('change', (e) => {
const file = e.target.files[0];
if (file) {
displayImage(file);
}
});
}
function getCurrentImageFile() {
return currentImageFile;
}
export { initUpload, displayImage, resetUpload, getCurrentImageFile };