import React, { useState, ChangeEvent } from 'react'; import { makeStyles, Theme, createStyles } from '@material-ui/core/styles'; import Modal from '@material-ui/core/Modal'; import Backdrop from '@material-ui/core/Backdrop'; import Fade from '@material-ui/core/Fade'; import Button from '@material-ui/core/Button'; import { Grid, TextField, } from '@material-ui/core' import { useHistory } from 'react-router-dom'; import { Formik, FormikProps } from 'formik' import * as Yup from 'yup' import { useAppState } from '../../providers/AppStateProvider'; import RegionSelection from './RegionSelection'; import { scheduleMeeting } from '../../utils/api'; const useStyles = makeStyles((theme: Theme) => createStyles({ modal: { display: 'flex', alignItems: 'center', justifyContent: 'center', }, paper: { backgroundColor: theme.palette.background.paper, border: '2px solid #000', boxShadow: theme.shadows[5], padding: theme.spacing(2, 4, 3), }, root: { maxWidth: '650px', display: 'block', margin: '0 auto', }, textField: { width: '100%', }, submitButton: { marginTop: '24px', }, title: { color:'black', fontSize: "25px", fontWeight: 475 }, successMessage: { color: 'green' }, errorMessage: { color: 'red' }, }), ); interface IMeetingForm { roomName: string roomTopic: string startTime: string duration: number region: string } interface IFormStatus { message: string type: string } export default function TransitionsModal() { const { setAppMeetingInfo, region: appRegion, meetingId: appMeetingId, } = useAppState(); const [region, setRegion] = useState(appRegion); const [time, setTime] = useState(''); const [displayFormStatus, setDisplayFormStatus] = useState(false) const [formStatus, setFormStatus] = useState({ message: '', type: '', }); const classes = useStyles(); const [open, setOpen] = React.useState(false); const handleOpen = () => { setOpen(true); }; const handleClose = () => { setOpen(false); }; return (
{ console.log("submitting"); setTimeout(() => { console.log("submitting"); actions.setSubmitting(false) }, 500) }} validationSchema={Yup.object().shape({ region: Yup.string() .required('select a valid region'), roomName: Yup.string().required('Please enter a room name'), roomTopic: Yup.string().required('Please enter a room topic'), startTime: Yup.string().required('Please enter a start time'), duration: Yup.string().required('Please enter a meeting duration').matches(/^[0-9]+$/, "Must Only Numbers") })} > {(props: FormikProps) => { const { values, touched, errors, handleBlur, handleChange, } = props const schedule = async (meetingName: string, roomTopic: string, region: string, duration: number, startTime: string) => { console.log("scheduling", meetingName, roomTopic, region, duration, startTime); let timestamp = Math.round(Date.parse(startTime) / 1000); await scheduleMeeting(meetingName, roomTopic, timestamp, duration, region); window.location.reload(); } const getTimeZone = () => { return(Intl.DateTimeFormat().resolvedOptions().timeZone); } const timezone = getTimeZone(); return (

Schedule Room






{displayFormStatus && (
{formStatus.type === 'error' ? (

{formStatus.message}

) : formStatus.type === 'success' ? (

{formStatus.message}

) : null}
)}
) }}
); }