diff options
author | eug-vs <eug-vs@keemail.me> | 2020-11-15 02:32:34 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2020-11-15 02:32:34 +0300 |
commit | eb2e929e2188ccfd9f575a5aa425024bf1fec67f (patch) | |
tree | 7038005b3230302b236b399443e8667b17340d4e /src/containers/BsuFantomSection/EventForm.tsx | |
parent | c25037a81b1d8d9284cba7919560bf5734b7947d (diff) | |
download | famcs-kit-eb2e929e2188ccfd9f575a5aa425024bf1fec67f.tar.gz |
feat: add Event Form
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; |