Spaces:
Sleeping
Sleeping
| // 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"; | |
| } | |