import { FC, useState } from 'react'; import { Button, Checkbox } from '@mui/material'; import SaveIcon from '@mui/icons-material/Save'; import * as SystemApi from '../../api/system'; import { BlockFormControlLabel, ButtonRow, FormLoader, SectionContent, ValidatedPasswordField, ValidatedTextField } from '../../components'; import { OTASettings } from '../../types'; import { numberValue, updateValue, useRest } from '../../utils'; import { ValidateFieldsError } from 'async-validator'; import { validate } from '../../validators'; import { OTA_SETTINGS_VALIDATOR } from '../../validators/system'; const OTASettingsForm: FC = () => { const { loadData, saving, data, setData, saveData, errorMessage } = useRest({ read: SystemApi.readOTASettings, update: SystemApi.updateOTASettings }); const updateFormValue = updateValue(setData); const [fieldErrors, setFieldErrors] = useState(); const content = () => { if (!data) { return ; } const validateAndSubmit = async () => { try { setFieldErrors(undefined); await validate(OTA_SETTINGS_VALIDATOR, data); saveData(); } catch (errors: any) { setFieldErrors(errors); } }; return ( <> } label="Enable OTA Updates" /> ); }; return ( {content()} ); }; export default OTASettingsForm;