diff options
author | Anton Tananaev <anton@traccar.org> | 2024-04-06 09:22:10 -0700 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2024-04-06 09:22:10 -0700 |
commit | f418231b6b2f5e030a0d2dcc390c314602b1f740 (patch) | |
tree | 10326adf3792bc2697e06bb5f2b8ef2a8f7e55fe /modern/src/settings/components/BaseCommandView.jsx | |
parent | b392a4af78e01c8e0f50aad5468e9583675b24be (diff) | |
download | trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.tar.gz trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.tar.bz2 trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.zip |
Move modern to the top
Diffstat (limited to 'modern/src/settings/components/BaseCommandView.jsx')
-rw-r--r-- | modern/src/settings/components/BaseCommandView.jsx | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/modern/src/settings/components/BaseCommandView.jsx b/modern/src/settings/components/BaseCommandView.jsx deleted file mode 100644 index bb70c3b9..00000000 --- a/modern/src/settings/components/BaseCommandView.jsx +++ /dev/null @@ -1,79 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import { useSelector } from 'react-redux'; -import { - TextField, FormControlLabel, Checkbox, -} from '@mui/material'; -import { useTranslation } from '../../common/components/LocalizationProvider'; -import SelectField from '../../common/components/SelectField'; -import { prefixString } from '../../common/util/stringUtils'; -import useCommandAttributes from '../../common/attributes/useCommandAttributes'; - -const BaseCommandView = ({ deviceId, item, setItem }) => { - const t = useTranslation(); - - const textEnabled = useSelector((state) => state.session.server.textEnabled); - - const availableAttributes = useCommandAttributes(t); - - const [attributes, setAttributes] = useState([]); - - useEffect(() => { - if (item && item.type) { - setAttributes(availableAttributes[item.type] || []); - } else { - setAttributes([]); - } - }, [availableAttributes, item]); - - return ( - <> - <SelectField - value={item.type} - onChange={(e) => setItem({ ...item, type: e.target.value, attributes: {} })} - endpoint={deviceId ? `/api/commands/types?${new URLSearchParams({ deviceId }).toString()}` : '/api/commands/types'} - keyGetter={(it) => it.type} - titleGetter={(it) => t(prefixString('command', it.type))} - label={t('sharedType')} - /> - {attributes.map(({ key, name, type }) => { - if (type === 'boolean') { - return ( - <FormControlLabel - control={( - <Checkbox - checked={item.attributes[key]} - onChange={(e) => { - const updateItem = { ...item, attributes: { ...item.attributes } }; - updateItem.attributes[key] = e.target.checked; - setItem(updateItem); - }} - /> - )} - label={name} - /> - ); - } - return ( - <TextField - type={type === 'number' ? 'number' : 'text'} - value={item.attributes[key]} - onChange={(e) => { - const updateItem = { ...item, attributes: { ...item.attributes } }; - updateItem.attributes[key] = type === 'number' ? Number(e.target.value) : e.target.value; - setItem(updateItem); - }} - label={name} - /> - ); - })} - {textEnabled && ( - <FormControlLabel - control={<Checkbox checked={item.textChannel} onChange={(event) => setItem({ ...item, textChannel: event.target.checked })} />} - label={t('commandSendSms')} - /> - )} - </> - ); -}; - -export default BaseCommandView; |