aboutsummaryrefslogtreecommitdiff
path: root/src/containers/BsuFantomSection/EventForm.tsx
diff options
context:
space:
mode:
authoreug-vs <eug-vs@keemail.me>2020-11-15 02:32:34 +0300
committereug-vs <eug-vs@keemail.me>2020-11-15 02:32:34 +0300
commiteb2e929e2188ccfd9f575a5aa425024bf1fec67f (patch)
tree7038005b3230302b236b399443e8667b17340d4e /src/containers/BsuFantomSection/EventForm.tsx
parentc25037a81b1d8d9284cba7919560bf5734b7947d (diff)
downloadfamcs-kit-eb2e929e2188ccfd9f575a5aa425024bf1fec67f.tar.gz
feat: add Event Form
Diffstat (limited to 'src/containers/BsuFantomSection/EventForm.tsx')
-rw-r--r--src/containers/BsuFantomSection/EventForm.tsx83
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;