import { useState, useCallback } from 'react' import { motion, AnimatePresence } from 'framer-motion' import { UploadCloud, CheckCircle2, FileVideo, FileArchive, FileText, FileImage, Database, Zap, ShieldCheck } from 'lucide-react' import { useAnimatedNumber } from '../hooks/useUtils.js' const fileIcons = { video: FileVideo, archive: FileArchive, file: FileText, image: FileImage, database: Database, } export default function UploadScreen() { const [dragging, setDragging] = useState(false) const [uploads, setUploads] = useState([ { id: 1, name: 'movie.mov', size: '12.4 GB', progress: 84, speed: 1.82, status: 'uploading' }, ]) const handleDrop = useCallback((e) => { e.preventDefault() setDragging(false) const files = Array.from(e.dataTransfer?.files || []) if (files.length === 0) { const fakeFiles = [ { name: 'dataset_' + Math.random().toString(36).slice(2, 8) + '.tar.gz', size: '4.2 GB' }, { name: 'model_weights.bin', size: '8.1 GB' }, ] fakeFiles.forEach((f, i) => { setUploads(prev => [...prev, { id: Date.now() + i, name: f.name, size: f.size, progress: 0, speed: 2.0 + Math.random() * 2, status: 'uploading', }]) }) } }, []) return (
{dragging ? 'Release to upload' : 'Drop anything here'}
or click to browse