import type React from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { FiMenu } from 'react-icons/fi'; import { FormFooter } from '@app/components/FormFooter'; import { connection } from '@app/core/connection'; import { useAppSelector } from '@app/hooks/redux'; import { Card } from '@components/generic/Card'; import { Checkbox } from '@components/generic/form/Checkbox'; import { Input } from '@components/generic/form/Input'; import { IconButton } from '@components/generic/IconButton'; import { PrimaryTemplate } from '@components/templates/PrimaryTemplate'; import type { RadioConfig_UserPreferences } from '@meshtastic/meshtasticjs/dist/generated'; export interface RangeTestProps { navOpen?: boolean; setNavOpen?: React.Dispatch>; } export const RangeTest = ({ navOpen, setNavOpen, }: RangeTestProps): JSX.Element => { const { t } = useTranslation(); const preferences = useAppSelector((state) => state.meshtastic.preferences); const { register, handleSubmit, formState, reset, control } = useForm({ defaultValues: { rangeTestPluginEnabled: preferences.rangeTestPluginEnabled, rangeTestPluginSave: preferences.rangeTestPluginSave, rangeTestPluginSender: preferences.rangeTestPluginSender, }, }); const onSubmit = handleSubmit((data) => { void connection.setPreferences(data); }); const watchRangeTestPluginEnabled = useWatch({ control, name: 'rangeTestPluginEnabled', defaultValue: false, }); return ( } onClick={(): void => { setNavOpen && setNavOpen(!navOpen); }} /> } footer={ } >
); };