diff options
Diffstat (limited to 'src/containers/BsuFantomSection/EventForm.tsx')
-rw-r--r-- | src/containers/BsuFantomSection/EventForm.tsx | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/containers/BsuFantomSection/EventForm.tsx b/src/containers/BsuFantomSection/EventForm.tsx new file mode 100644 index 0000000..64ea46b --- /dev/null +++ b/src/containers/BsuFantomSection/EventForm.tsx @@ -0,0 +1,83 @@ +import React, { useState } from 'react'; +import { Grid, TextField, Button } from '@material-ui/core'; +import { post } from '../../requests'; +import { Event } from '../../types'; + +interface PropTypes { + mutate: () => void; +} + +const EventForm: React.FC<PropTypes> = ({ mutate }) => { + const [name, setName] = useState<string>(''); + const [date, setDate] = useState<string>(''); + const [attendanceId, setAttendanceId] = useState<string>(''); + const [conferenceId, setConferenceId] = useState<string>(''); + + const createHandler = (setter: any) => (event: React.ChangeEvent<HTMLInputElement>) => { + setter(event.target.value); + }; + + const handleSubmit = () => { + if (date && conferenceId) { + const event: Event["data"] = { + name, + date, + attendanceId, + conferenceId, + participants: [] + } + return post('/events', event).then(() => mutate()); + } + } + + return ( + <Grid container spacing={2}> + <Grid item> + <TextField + value={name} + onChange={createHandler(setName)} + variant="outlined" + label="Name" + /> + </Grid> + <Grid item> + <TextField + value={date} + onChange={createHandler(setDate)} + variant="outlined" + label="When" + required + /> + </Grid> + <Grid item> + <TextField + value={attendanceId} + onChange={createHandler(setAttendanceId)} + variant="outlined" + label="Attendance ID" + /> + </Grid> + <Grid item> + <TextField + value={conferenceId} + onChange={createHandler(setConferenceId)} + variant="outlined" + label="Conference ID" + required + /> + </Grid> + <Grid item xs={12}> + <Button + onClick={handleSubmit} + variant="contained" + size="large" + color="primary" + > + CREATE JOB + </Button> + </Grid> + </Grid> + ); +}; + +export default EventForm; |