From 66d2b91dfdcfb4b5c5fe90ddb7a3e3e66e01e502 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 30 Sep 2020 22:43:57 -0700 Subject: Migrate Select to SelectField --- modern/src/settings/NotificationPage.js | 85 ++++++++++++--------------------- 1 file changed, 30 insertions(+), 55 deletions(-) (limited to 'modern/src/settings') diff --git a/modern/src/settings/NotificationPage.js b/modern/src/settings/NotificationPage.js index 5a772d0..2cf8a62 100644 --- a/modern/src/settings/NotificationPage.js +++ b/modern/src/settings/NotificationPage.js @@ -2,10 +2,10 @@ import React, { useState } from 'react'; import t, { findStringKeys } from '../common/localization'; import EditItemView from '../EditItemView'; -import { Accordion, AccordionSummary, AccordionDetails, makeStyles, Typography, FormControlLabel, Checkbox, FormControl, InputLabel, Select, MenuItem } from '@material-ui/core'; +import { Accordion, AccordionSummary, AccordionDetails, makeStyles, Typography, FormControlLabel, Checkbox } from '@material-ui/core'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; -import { useEffectAsync } from '../reactHelper'; import { prefixString, unprefixString } from '../common/stringUtils'; +import SelectField from '../form/SelectField'; const useStyles = makeStyles(() => ({ details: { @@ -17,28 +17,12 @@ const NotificationPage = () => { const classes = useStyles(); const [item, setItem] = useState(); - const [types, setTypes] = useState(); - const [notificators, setNotificators] = useState(); const alarms = findStringKeys(it => it.startsWith('alarm')).map(it => ({ key: unprefixString('alarm', it), name: t(it), })); - useEffectAsync(async () => { - const response = await fetch('/api/notifications/types'); - if (response.ok) { - setTypes(await response.json()); - } - }, []); - - useEffectAsync(async () => { - const response = await fetch('/api/notifications/notificators'); - if (response.ok) { - setNotificators(await response.json()); - } - }, []); - return ( {item && @@ -50,44 +34,35 @@ const NotificationPage = () => { - {types && - - {t('sharedType')} - - - } - {notificators && - - {t('notificationNotificators')} - - - } + setItem({...item, type: e.target.value})} + endpoint="/api/notifications/types" + keyGetter={it => it.type} + titleGetter={it => t(prefixString('event', it.type))} + label={t('sharedType')} + variant="filled" /> + 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')} + variant="filled" /> {item.type === 'alarm' && - - {t('sharedAlarms')} - - + setItem({...item, attributes: {...item.attributes, alarms: e.target.value.join()}})} + data={alarms} + keyGetter={it => it.key} + label={t('sharedAlarms')} + variant="filled" /> }