import React, { useEffect, useState } from 'react'; import { TextField, FormControlLabel, Checkbox, } from '@material-ui/core'; import { useTranslation } from '../LocalizationProvider'; import SelectField from '../form/SelectField'; import { prefixString } from '../common/stringUtils'; import useCommandAttributes from '../attributes/useCommandAttributes'; const BaseCommandView = ({ item, setItem }) => { const t = useTranslation(); const availableAttributes = useCommandAttributes(t); const [attributes, setAttributes] = useState([]); useEffect(() => { if (item && item.type) { setAttributes(availableAttributes[item.type] || []); } else { setAttributes([]); } }, [availableAttributes, item]); return ( <> setItem({ ...item, type: e.target.value, attributes: {} })} endpoint="/api/commands/types" keyGetter={(it) => it.type} titleGetter={(it) => t(prefixString('command', it.type))} label={t('sharedType')} variant="filled" /> {attributes.map((attribute) => ( { const updateItem = { ...item, attributes: { ...item.attributes } }; updateItem.attributes[attribute.key] = e.target.value; setItem(updateItem); }} label={attribute.name} variant="filled" /> ))} setItem({ ...item, textChannel: event.target.checked })} />} label={t('commandSendSms')} /> ); }; export default BaseCommandView;