import type React from 'react'; import { useEffect, useState } from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { Checkbox } from '@components/generic/form/Checkbox'; import { Form } from '@components/generic/form/Form'; import { Input } from '@components/generic/form/Input'; import { connection } from '@core/connection'; import { useAppSelector } from '@hooks/useAppSelector'; import type { Protobuf } from '@meshtastic/meshtasticjs'; export const SerialSettingsPanel = (): JSX.Element => { const [loading, setLoading] = useState(false); const serialConfig = useAppSelector( (state) => state.meshtastic.radio.moduleConfig.serial, ); const { register, handleSubmit, formState, reset, control } = useForm({ defaultValues: serialConfig, }); useEffect(() => { reset(serialConfig); }, [reset, serialConfig]); const onSubmit = handleSubmit(async (data) => { setLoading(true); await connection.setModuleConfig( { payloadVariant: { oneofKind: 'serial', serial: data, }, }, async (): Promise => { reset({ ...data }); setLoading(false); await Promise.resolve(); }, ); }); const moduleEnabled = useWatch({ control, name: 'enabled', defaultValue: false, }); return (
); };