import { useState } from 'react'; import { FileUp } from 'lucide-react'; import { cn } from '~/utils/'; const FileUpload = ({ onFileSelected, successText = null, invalidText = null, validator = null, text = null, id = '1' }) => { const [statusColor, setStatusColor] = useState('text-gray-600'); const [status, setStatus] = useState(null); const handleFileChange = (event) => { const file = event.target.files[0]; if (!file) return; const reader = new FileReader(); reader.onload = (e) => { const jsonData = JSON.parse(e.target.result); if (validator && !validator(jsonData)) { setStatus('invalid'); setStatusColor('text-red-600'); return; } if (validator) { setStatus('success'); setStatusColor('text-green-500 dark:text-green-500'); } onFileSelected(jsonData); }; reader.readAsText(file); }; return ( ); }; export default FileUpload;