File size: 1,986 Bytes
0fd8c45
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Shared JavaScript across all pages
document.addEventListener('DOMContentLoaded', () => {
    // Initialize tooltips for feather icons
    document.querySelectorAll('[data-feather]').forEach(icon => {
        const tooltipText = icon.parentElement.getAttribute('data-tooltip');
        if (tooltipText) {
            icon.setAttribute('title', tooltipText);
        }
    });
});

// File upload handling
function handleFileUpload(event) {
    const files = event.target.files;
    if (files.length > 0) {
        console.log('Files selected:', files);
        // TODO: Implement file processing logic
    }
}

// Drag and drop functionality
function setupDragAndDrop() {
    const dropArea = document.getElementById('drop-area');
    
    if (dropArea) {
        ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
            dropArea.addEventListener(eventName, preventDefaults, false);
        });

        function preventDefaults(e) {
            e.preventDefault();
            e.stopPropagation();
        }

        ['dragenter', 'dragover'].forEach(eventName => {
            dropArea.addEventListener(eventName, highlight, false);
        });

        ['dragleave', 'drop'].forEach(eventName => {
            dropArea.addEventListener(eventName, unhighlight, false);
        });

        function highlight() {
            dropArea.classList.add('border-indigo-400', 'bg-indigo-900', 'bg-opacity-20');
        }

        function unhighlight() {
            dropArea.classList.remove('border-indigo-400', 'bg-indigo-900', 'bg-opacity-20');
        }

        dropArea.addEventListener('drop', handleDrop, false);

        function handleDrop(e) {
            const dt = e.dataTransfer;
            const files = dt.files;
            console.log('Files dropped:', files);
            // TODO: Implement file processing logic
        }
    }
}

// Initialize drag and drop when DOM is loaded
document.addEventListener('DOMContentLoaded', setupDragAndDrop);