const notifications = document.querySelector(".notifications"); const fileContainer = document.querySelector(".file-container"); const label = document.querySelector("#label-input"); const inputFile = document.querySelector("#document-input"); const form = document.querySelector("form"); const result_img = document.querySelector(".result_img"); const img_wrapper = document.querySelector(".img-wrapper"); const text_result = document.querySelector(".result-text"); const toast = (message, type) => { const notification = document.createElement("div"); notification.innerHTML = `

${type}

${message}

`; notification.classList.add(...["notification", type]); notifications.appendChild(notification); setTimeout(() => { notification.remove(); }, 5000); }; let file = null; const SUPPORTED_EXT = ["jpg", "png", "jpeg"]; function clear() { file = null; label.style.display = "flex"; fileContainer.innerHTML = ""; } const upload = (fileData) => { file = fileData; const ext = file.name.split(".").pop(); let isvalid = SUPPORTED_EXT.some((s_ext) => s_ext === ext); if (isvalid) { label.style.display = "none"; fileContainer.innerHTML = `

${file.name}

`; document .querySelector("#btn-clear") .addEventListener("click", (e) => clear(e)); } else { console.error("file is not supported"); toast("file is not supported", "error"); } }; inputFile.addEventListener("change", (e) => { e.preventDefault(); if (inputFile.files[0]) upload(inputFile.files[0]); }); label.addEventListener("dragover", (e) => { e.preventDefault(); }); label.addEventListener("drop", (e) => { e.preventDefault(); upload(e.dataTransfer.files[0]); }); form.addEventListener("submit", async (e) => { e.preventDefault(); let res = await new Promise((resolve, reject) => { setTimeout(() => { resolve({ src: "../static/assests/1694502952506.jpg", discription: "this is a discription", }); }, 3000); }); const img = document.createElement("img"); img.src = res.src; img_wrapper.appendChild(img); text_result.innerText = res.discription; result_img.scrollIntoView({ behavior: "smooth" }); });