import React, { useState } from 'react'; import { useDispatch } from 'react-redux'; import { Accordion, AccordionSummary, AccordionDetails, Typography, TextField, } from '@mui/material'; 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'; import useSettingsStyles from './common/useSettingsStyles'; const GeofencePage = () => { const classes = useSettingsStyles(); 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;