import React, { useState } from "react"; import { useDispatch } from "react-redux"; import { AppDispatch } from "../../store/store"; import { FaCloudUploadAlt } from "react-icons/fa"; import { MdCancel } from "react-icons/md"; import { uploadDocuments } from "../../store/slices/documentSlice"; import { Bounce, toast } from "react-toastify"; const UploadDoc: React.FC = () => { const [files, setFiles] = useState([]); const dispatch = useDispatch(); const handleFileChange = (e: React.ChangeEvent) => { const selectedFiles = e.target.files ? Array.from(e.target.files) : []; if (selectedFiles.length > 0) { setFiles((prevFiles) => [...prevFiles, ...selectedFiles]); handleUpload(selectedFiles); } }; const handleDrop = (e: React.DragEvent) => { e.preventDefault(); e.stopPropagation(); const droppedFiles = Array.from(e.dataTransfer.files); if (droppedFiles.length > 0) { setFiles((prevFiles) => [...prevFiles, ...droppedFiles]); handleUpload(droppedFiles); } }; const handleUpload = (filesToUpload: File[]) => { const formData = new FormData(); filesToUpload.forEach((file) => formData.append("document", file)); dispatch(uploadDocuments(formData)) .unwrap() .then((res) => { // toast.dismiss(); // toast.info("📄 Documents uploaded!", { // position: "bottom-right", // autoClose: 5000, // hideProgressBar: false, // closeOnClick: false, // pauseOnHover: true, // draggable: true, // progress: undefined, // theme: "light", // transition: Bounce, // }); setFiles([]); }) .catch((err) => console.error("Failed to upload documents", err)); }; return ( <>
document.getElementById("file-input")?.click()} onDragOver={(e) => e.preventDefault()} onDrop={handleDrop} >

Upload or drag & drop files

PDF, DOCX, JPG, PNG, TXT (max 10MB)

{/* {files.length > 0 && (

Files

{files.map((file, index) => (
{file.name} setFiles(files.filter((_, i) => i !== index))} className="text-gray-400 hover:text-red-500 cursor-pointer transition" />
))}
)} */}
); }; export default UploadDoc;