import {useState} from 'react'; import moment from 'moment'; import TextField from '@mui/material/TextField'; import Button from '@mui/material/Button'; import CircularProgress from '@mui/material/CircularProgress'; import Box from '@mui/material/Box'; import {useTheme} from '@mui/material/styles'; import {useRouter} from 'next/router'; import {DatePicker} from '@mui/x-date-pickers/DatePicker'; import {useTranslation} from 'react-i18next'; import useToastStore from '../../stores/useToastStore'; import PlaceInput from '../PlaceInput'; import {EventEntity, EventInput} from '../../generated/graphql'; interface Props { event: EventInput; addToEvent: (eventData: EventInput) => void; createEvent: (eventData: EventInput) => Promise; } const Step2 = ({event, addToEvent, createEvent}: Props) => { const {t} = useTranslation(); const theme = useTheme(); const router = useRouter(); const addToast = useToastStore(s => s.addToast); // States const [date, setDate] = useState(null); const [address, setAddress] = useState(event.address ?? ''); const [longitude, setLongitude] = useState(event.longitude); const [latitude, setLatitude] = useState(event.latitude); const [description, setDescription] = useState(event.description ?? ''); const [loading, setLoading] = useState(false); const onCreate = async evt => { evt.preventDefault?.(); if (loading) return; setLoading(true); const eventData = { date: date ? moment(date).format('YYYY-MM-DD') : null, address, longitude, latitude, description, }; addToEvent(eventData); const result = await createEvent(eventData); if (!result) addToast(t('event.errors.cant_create')); else router.push(`/e/${result.attributes.uuid}`); setLoading(false); return; }; return ( { setAddress(place); setLatitude(latitude); setLongitude(longitude); }} /> setDescription(e.target.value)} name="address" /> ); }; export default Step2;