mayank214's picture
Upload 7 files
27bb91b verified
Raw
History Blame Contribute Delete
2.44 kB
// Drag and drop
const dropZone = document.getElementById("dropZone");
const fileInput = document.getElementById("fileInput");
const dropContent = document.getElementById("dropContent");
const previewContainer = document.getElementById("previewContainer");
const previewImage = document.getElementById("previewImage");
if (dropZone) {
["dragenter", "dragover"].forEach((evt) =>
dropZone.addEventListener(evt, (e) => {
e.preventDefault();
dropZone.classList.add("drag-over");
}),
);
["dragleave", "drop"].forEach((evt) =>
dropZone.addEventListener(evt, (e) => {
e.preventDefault();
dropZone.classList.remove("drag-over");
}),
);
dropZone.addEventListener("drop", (e) => {
const files = e.dataTransfer.files;
if (files.length) {
fileInput.files = files;
showPreview(files[0]);
}
});
fileInput.addEventListener("change", () => {
if (fileInput.files.length) showPreview(fileInput.files[0]);
});
}
function showPreview(file) {
const reader = new FileReader();
reader.onload = (e) => {
previewImage.src = e.target.result;
dropContent.style.display = "none";
previewContainer.style.display = "block";
};
reader.readAsDataURL(file);
}
function removePreview(e) {
e.preventDefault();
e.stopPropagation();
fileInput.value = "";
previewContainer.style.display = "none";
dropContent.style.display = "block";
}
// Loading animation
function startLoading() {
document.getElementById("spinner").style.display = "block";
document.getElementById("loadingBar").style.display = "block";
const progress = document.getElementById("loadingProgress");
progress.style.width = "0%";
let i = 0;
const interval = setInterval(() => {
if (i >= 100) clearInterval(interval);
progress.style.width = i + "%";
i += 10;
}, 100);
}
function resetApp() {
const resultDiv = document.getElementById("resultContainer");
if (resultDiv) resultDiv.style.display = "none";
const form = document.querySelector("form");
if (form) form.reset();
document.getElementById("spinner").style.display = "none";
document.getElementById("loadingBar").style.display = "none";
document.getElementById("loadingProgress").style.width = "0%";
if (previewContainer) previewContainer.style.display = "none";
if (dropContent) dropContent.style.display = "block";
}