import React from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { FiSave } from 'react-icons/fi'; import { Form } from '@app/components/generic/form/Form'; import { connection } from '@app/core/connection'; import { useAppSelector } from '@app/hooks/useAppSelector'; import { Checkbox, IconButton, Input } from '@meshtastic/components'; import type { Protobuf } from '@meshtastic/meshtasticjs'; export const SerialSettingsPanel = (): JSX.Element => { const [loading, setLoading] = React.useState(false); const preferences = useAppSelector( (state) => state.meshtastic.radio.preferences, ); const { register, handleSubmit, formState, reset, control } = useForm({ defaultValues: preferences, }); React.useEffect(() => { reset(preferences); }, [reset, preferences]); const onSubmit = handleSubmit(async (data) => { setLoading(true); await connection.setPreferences(data, async (): Promise => { reset({ ...data }); setLoading(false); await Promise.resolve(); }); }); const pluginEnabled = useWatch({ control, name: 'serialpluginEnabled', defaultValue: false, }); return ( <>
=> { await onSubmit(); }} icon={} />
); };