import React, {useState} from 'react'; import Dialog from '@material-ui/core/Dialog'; import DialogActions from '@material-ui/core/DialogActions'; import DialogContent from '@material-ui/core/DialogContent'; import DialogContentText from '@material-ui/core/DialogContentText'; import DialogTitle from '@material-ui/core/DialogTitle'; import Button from '@material-ui/core/Button'; import Slide from '@material-ui/core/Slide'; import TextField from '@material-ui/core/TextField'; import Slider from '@material-ui/core/Slider'; import Typography from '@material-ui/core/Typography'; import {DateTimePicker} from '@material-ui/pickers'; import {makeStyles} from '@material-ui/core/styles'; import moment from 'moment'; import {useTranslation} from 'react-i18next'; import {useStrapi} from 'strapi-react-context'; import {useToast} from '../../contexts/Toast'; import {useEvent} from '../../contexts/Event'; import useProfile from '../../hooks/useProfile'; const Transition = React.forwardRef(function Transition(props, ref) { return ; }); const marks = [1, 2, 3, 4, 5, 6, 7, 8].map(value => ({ value, label: value, })); const NewCarDialog = ({open, toggle}) => { const strapi = useStrapi(); const {t} = useTranslation(); const classes = useStyles(); const {addToast} = useToast(); const {event} = useEvent(); const {addEvent} = useProfile(); // States const [name, setName] = useState(''); const [seats, setSeats] = useState(4); const [meeting, setMeeting] = useState(''); const [date, setDate] = useState(moment()); const [phone, setPhone] = useState(''); const [details, setDetails] = useState(''); const canCreate = !!name && !!seats; const onCreate = async e => { if (e.preventDefault) e.preventDefault(); try { await strapi.services.cars.create({ name, seats, meeting, departure: date.toISOString(), phone_number: phone, details, event: event.id, }); addEvent(event); addToast(t('car.creation.created')); toggle(); // Clear states setName(''); setSeats(4); setMeeting(''); setDate(moment()); setPhone(''); setDetails(''); } catch (error) { console.error(error); addToast(t('car.errors.cant_create')); } return false; }; return (
{t('car.creation.title')} setName(e.target.value)} id="NewCarName" name="name" /> {t('car.creation.seats')} setSeats(value)} step={1} min={1} max={marks.length} marks={marks} valueLabelDisplay="auto" /> setMeeting(e.target.value)} id="NewCarMeeting" name="meeting" /> setPhone(e.target.value)} id="NewCarPhone" name="phone" /> setDetails(e.target.value)} id="NewCarDetails" name="details" />
); }; const useStyles = makeStyles(theme => ({ textField: { marginBottom: theme.spacing(2), }, picker: { marginBottom: theme.spacing(3), }, })); export default NewCarDialog;