import React, { useState } from 'react'; import { useDispatch } from 'react-redux'; import { Accordion, AccordionSummary, AccordionDetails, Typography, TextField, } from '@mui/material'; import makeStyles from '@mui/styles/makeStyles'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; import EditItemView from './components/EditItemView'; import EditAttributesAccordion from './components/EditAttributesAccordion'; import { useTranslation } from '../common/components/LocalizationProvider'; import useGeofenceAttributes from '../common/attributes/useGeofenceAttributes'; import SettingsMenu from './components/SettingsMenu'; import SelectField from '../common/components/SelectField'; import { geofencesActions } from '../store'; const useStyles = makeStyles((theme) => ({ details: { display: 'flex', flexDirection: 'column', gap: theme.spacing(2), paddingBottom: theme.spacing(3), }, })); const GeofencePage = () => { const classes = useStyles(); const dispatch = useDispatch(); const t = useTranslation(); const geofenceAttributes = useGeofenceAttributes(t); const [item, setItem] = useState(); const onItemSaved = (result) => { dispatch(geofencesActions.update([result])); }; const validate = () => item && item.name; return ( } breadcrumbs={['settingsTitle', 'sharedGeofence']} > {item && ( <> }> {t('sharedRequired')} setItem({ ...item, name: event.target.value })} label={t('sharedName')} /> }> {t('sharedExtra')} setItem({ ...item, description: event.target.value })} label={t('sharedDescription')} /> setItem({ ...item, calendarId: Number(event.target.value) })} endpoint="/api/calendars" label={t('sharedCalendar')} /> setItem({ ...item, attributes })} definitions={geofenceAttributes} /> )} ); }; export default GeofencePage;