document.addEventListener('DOMContentLoaded', () => { const uploadArea = document.querySelector('#upload-area'); const fileInput = document.querySelector('#file-input'); const fileList = document.querySelector('#file-list'); const uploadBtn = document.querySelector('#upload-btn'); // Handle drag and drop events ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => { uploadArea.addEventListener(eventName, preventDefaults, false); }); function preventDefaults(e) { e.preventDefault(); e.stopPropagation(); } ['dragenter', 'dragover'].forEach(eventName => { uploadArea.addEventListener(eventName, highlight, false); }); ['dragleave', 'drop'].forEach(eventName => { uploadArea.addEventListener(eventName, unhighlight, false); }); function highlight() { uploadArea.classList.add('dropzone-hover'); } function unhighlight() { uploadArea.classList.remove('dropzone-hover'); } // Handle dropped files uploadArea.addEventListener('drop', handleDrop, false); function handleDrop(e) { const dt = e.dataTransfer; const files = dt.files; handleFiles(files); } // Handle selected files fileInput.addEventListener('change', () => { handleFiles(fileInput.files); }); // Process files function handleFiles(files) { [...files].forEach(file => { if(!file) return; const fileItem = document.createElement('div'); fileItem.className = 'file-item bg-white p-4 rounded-lg shadow-sm border border-gray-100 flex items-center justify-between mb-2'; fileItem.innerHTML = `
${file.name}
${formatBytes(file.size)}