diff --git a/docs/index.html b/docs/index.html index 9d406c0..40d9943 100644 --- a/docs/index.html +++ b/docs/index.html @@ -145,6 +145,17 @@

Online Converter

let isEngineReady = false; let selectedFiles = []; // Maintain our own list of files + // Helper for creating download links + function createDownloadLink(url, filename, textContent) { + const dlLink = document.createElement('a'); + dlLink.href = url; + dlLink.download = filename; + dlLink.textContent = textContent; + dlLink.style.fontWeight = 'bold'; + dlLink.style.color = '#10b981'; + downloadsContainer.appendChild(dlLink); + } + // 1. Fetch our comprehensive JSON database to populate dropdown and input filter async function loadFormats() { try { @@ -323,13 +334,7 @@

Online Converter

// Single file, provide direct link const blob = new Blob([data], { type: 'application/octet-stream' }); const url = URL.createObjectURL(blob); - const dlLink = document.createElement('a'); - dlLink.href = url; - dlLink.download = outFileName; - dlLink.textContent = `⬇️ Download ${outFileName}`; - dlLink.style.fontWeight = 'bold'; - dlLink.style.color = '#10b981'; - downloadsContainer.appendChild(dlLink); + createDownloadLink(url, outFileName, `⬇️ Download ${outFileName}`); } successCount++; }); @@ -353,13 +358,7 @@

Online Converter

try { const content = await zip.generateAsync({ type: "blob" }); const url = URL.createObjectURL(content); - const dlLink = document.createElement('a'); - dlLink.href = url; - dlLink.download = `converted_images.zip`; - dlLink.textContent = `📦 Download All as ZIP (${successCount} files)`; - dlLink.style.fontWeight = 'bold'; - dlLink.style.color = '#10b981'; - downloadsContainer.appendChild(dlLink); + createDownloadLink(url, 'converted_images.zip', `📦 Download All as ZIP (${successCount} files)`); } catch (err) { console.error("ZIP Generation Failed:", err); failCount += successCount; // Consider it a failure if we can't zip