import React, { useState } from 'react' import { Backdrop, Box, Button, Fade, Link, Modal } from "@mui/material" import { useCookies } from "react-cookie" import { toast } from 'react-toastify' import api from '../../../api_utils' import style from './style' function UploadModal({ open, setOpen, path, refresh }: Props) { const [file, setFile]: [FileList | null | undefined, React.Dispatch>] = useState() const [cookies] = useCookies(["token"]) const onFileChange: React.ChangeEventHandler = event => { setFile(event.target.files) console.log(file) } const handleUpload = () => { const formData = new FormData() if (file == null || typeof file == "undefined") { return } formData.append( "file", file[0] ) const filePath = `${path}/${file[0].name}` const request = api.upload(filePath, formData, cookies.token) toast.promise( request, { pending: 'Uploading file...', success: { delay: 500, render() { refresh() setOpen(false) return "File uploaded!" } }, error: { delay: 500, render(err) { if (err.data.response?.data?.error_message) { return err.data.response.data.error_message.toString() } else { return err.data.toString() } } } } ) } return ( setOpen(false)} closeAfterTransition BackdropComponent={Backdrop} BackdropProps={{ timeout: 500, }} > ) } export type Props = { open: boolean, setOpen: React.Dispatch>, path: string, refresh: () => void, } export default UploadModal