import { useRef, useState } from 'react'; import { Upload, File } from 'lucide-react'; import { Button } from '@/components/ui/button'; interface FileUploadProps { onFileSelect: (file: File) => void; isProcessing?: boolean; } export const FileUpload = ({ onFileSelect, isProcessing }: FileUploadProps) => { const inputRef = useRef(null); const [isDragging, setIsDragging] = useState(false); const [selectedFile, setSelectedFile] = useState(null); const handleDragOver = (e: React.DragEvent) => { e.preventDefault(); setIsDragging(true); }; const handleDragLeave = () => { setIsDragging(false); }; const handleDrop = (e: React.DragEvent) => { e.preventDefault(); setIsDragging(false); const file = e.dataTransfer.files[0]; if (file) { handleFile(file); } }; const handleFileInput = (e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (file) { handleFile(file); } }; const handleFile = (file: File) => { setSelectedFile(file); onFileSelect(file); }; return (
!isProcessing && inputRef.current?.click()} > {selectedFile ? (
{selectedFile.name}

{(selectedFile.size / 1024).toFixed(2)} KB

) : ( <>

Arraste seu extrato aqui

ou clique para selecionar

Formatos aceitos: OFX, CSV, XLSX, XLS (máx. 10MB)

)}
{selectedFile && !isProcessing && ( )}
); };