import React, { useState } from 'react'; import { Accordion, AccordionSummary, AccordionDetails, Typography, FormControlLabel, Checkbox, FormGroup, } from '@mui/material'; import makeStyles from '@mui/styles/makeStyles'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; import { useTranslation, useTranslationKeys } from '../common/components/LocalizationProvider'; import EditItemView from './components/EditItemView'; import { prefixString, unprefixString } from '../common/util/stringUtils'; import SelectField from '../common/components/SelectField'; import SettingsMenu from './components/SettingsMenu'; const useStyles = makeStyles((theme) => ({ details: { display: 'flex', flexDirection: 'column', gap: theme.spacing(2), paddingBottom: theme.spacing(3), }, })); const NotificationPage = () => { const classes = useStyles(); const t = useTranslation(); const [item, setItem] = useState(); const alarms = useTranslationKeys((it) => it.startsWith('alarm')).map((it) => ({ key: unprefixString('alarm', it), name: t(it), })); const validate = () => item && item.type && item.notificators; return ( } breadcrumbs={['settingsTitle', 'sharedNotification']} > {item && ( }> {t('sharedRequired')} setItem({ ...item, type: e.target.value })} endpoint="/api/notifications/types" keyGetter={(it) => it.type} titleGetter={(it) => t(prefixString('event', it.type))} label={t('sharedType')} /> setItem({ ...item, notificators: e.target.value.join() })} endpoint="/api/notifications/notificators" keyGetter={(it) => it.type} titleGetter={(it) => t(prefixString('notificator', it.type))} label={t('notificationNotificators')} /> {(!item.type || item.type === 'alarm') && ( setItem({ ...item, attributes: { ...item.attributes, alarms: e.target.value.join() } })} data={alarms} keyGetter={(it) => it.key} label={t('sharedAlarms')} /> )} setItem({ ...item, always: event.target.checked })} /> )} label={t('notificationAlways')} /> )} ); }; export default NotificationPage;