import React, { useRef, useState } from "react"; import { Button, TextField, Typography } from "@material-ui/core"; import { DropzoneArea } from "material-ui-dropzone"; import { useUserContext } from "../../Contexts/UserContext"; import { useStatusContext } from "../../Contexts/StatusContext"; import { useFileUploadContext, FileUploadProvider, } from "../../Contexts/FileUploadContext"; import ModalProgressBar from "../../ModalProgressBar"; import useStyles from "../../useStyles"; import { Redirect } from "react-router"; const FileUploadZone = ({ classes, token }) => { const { setFiles } = useFileUploadContext(); const { setMessage } = useStatusContext(); return ( <> setFiles(files)} onDelete={(files) => setFiles(files)} onDropRejected={(files) => { setMessage(`Rejected ${files[0].name} too large`); }} /> ); }; const MainForm = () => { const { uploading, upload, files, cancel } = useFileUploadContext(); const { token } = useUserContext(); const { setMessage } = useStatusContext(); const [redirect, setRedirect] = useState(null); const classes = useStyles(); const packagenameEl = useRef(null); const versionEl = useRef(null); const descEl = useRef(null); const releasenotesEl = useRef(null); const onSubmit = async (event) => { try { event.preventDefault(); const { idToken: { jwtToken: authToken }, } = token; const formData = { packagename: packagenameEl.current.value, version: versionEl.current.value, description: descEl.current.value, releasenotes: releasenotesEl.current.value, }; const result = await upload(formData, authToken, files); if (!result || result.error) return; cancel(); setMessage(`Package uploaded`); setRedirect(`/carupdate-deploy/${result.id}`); } catch (e) { setMessage(e.message); } }; if (redirect && redirect.length > 0) { return ; } return (
Create Update Package
); }; export default function FileUploadForm() { return ( ); }