import React, { useCallback, useEffect, useState } from "react"; import axios from 'axios'; import { useDropzone } from 'react-dropzone'; import {getHost} from "@/helpers/getHost" const FileUpload = () => { const [files, setFiles] = useState([]); const host = getHost(); const fetchFiles = useCallback(async () => { try { const response = await axios.get(`${host}/files/`); setFiles(response.data.files); } catch (error) { console.error('Error fetching files:', error); } }, [host]); useEffect(() => { fetchFiles(); }, [fetchFiles]); const onDrop = async (acceptedFiles: any[]) => { const formData = new FormData(); acceptedFiles.forEach(file => { formData.append('file', file); }); try { await axios.post(`${host}/upload/`, formData, { headers: { 'Content-Type': 'multipart/form-data' } }); fetchFiles(); } catch (error) { console.error('Error uploading files:', error); } }; const deleteFile = async (filename: never) => { try { await axios.delete(`${host}/files/${filename}`); fetchFiles(); } catch (error) { console.error('Error deleting file:', error); } }; const { getRootProps, getInputProps } = useDropzone({ onDrop }); return (

Drag 'n' drop some files here, or click to select files

{files.length > 0 && ( <>

Uploaded Files

)}
); }; export default FileUpload;