This commit is contained in:
Sacha Weatherstone
2022-03-27 12:10:02 +11:00
parent 7b0c829dcd
commit 806e70b3cf
22 changed files with 1012 additions and 948 deletions
+7 -13
View File
@@ -8,7 +8,6 @@ import { Checkbox } from '@components/generic/form/Checkbox';
import { Form } from '@components/generic/form/Form';
import { Input } from '@components/generic/form/Input';
import { Label } from '@components/generic/form/Label';
import { Select } from '@components/generic/form/Select';
import { connection } from '@core/connection';
import { bitwiseDecode, bitwiseEncode } from '@core/utils/bitwise';
import { useAppSelector } from '@hooks/useAppSelector';
@@ -25,7 +24,7 @@ export const GPS = (): JSX.Element => {
...preferences,
positionBroadcastSecs:
preferences.positionBroadcastSecs === 0
? preferences.isRouter
? preferences.role === Protobuf.Role.Router
? 43200
: 900
: preferences.positionBroadcastSecs,
@@ -54,20 +53,15 @@ export const GPS = (): JSX.Element => {
{...register('positionBroadcastSecs', { valueAsNumber: true })}
/>
<Checkbox
label="Use Smart Position"
{...register('positionBroadcastSmart')}
label="Disable Smart Position"
{...register('positionBroadcastSmartDisabled')}
/>
<Checkbox label="Use Fixed Position" {...register('fixedPosition')} />
<Select
label="Location Sharing"
optionsEnum={Protobuf.LocationSharing}
{...register('locationShare', { valueAsNumber: true })}
/>
<Select
label="GPS Mode"
optionsEnum={Protobuf.GpsOperation}
{...register('gpsOperation', { valueAsNumber: true })}
<Checkbox
label="Disable Location Sharing"
{...register('locationShareDisabled')}
/>
<Checkbox label="Disable GPS" {...register('gpsDisabled')} />
<Input
label="GPS Update Interval"
type="number"
@@ -51,7 +51,7 @@ export const Settings = ({ open, setOpen }: SettingsProps): JSX.Element => {
const {
rangeTestModuleEnabled,
extNotificationModuleEnabled,
serialmoduleEnabled,
serialModuleEnabled,
storeForwardModuleEnabled,
mqttDisabled,
cannedMessageModuleEnabled,
@@ -132,7 +132,7 @@ export const Settings = ({ open, setOpen }: SettingsProps): JSX.Element => {
<CollapsibleSection
icon={<FiAlignLeft />}
title="Serial"
status={serialmoduleEnabled}
status={serialModuleEnabled}
>
<SerialSettingsPanel />
</CollapsibleSection>
@@ -42,7 +42,11 @@ export const LoRa = (): JSX.Element => {
{...register('hopLimit', { valueAsNumber: true })}
/>
<Checkbox label="Transmit Disabled" {...register('isLoraTxDisabled')} />
<Checkbox label="Router Mode" {...register('isRouter')} />
<Select
label="Operating Role"
optionsEnum={Protobuf.Role}
{...register('role')}
/>
<Input
label="Send Owner Interval"
type="number"
@@ -20,7 +20,10 @@ export const Power = (): JSX.Element => {
useForm<Protobuf.RadioConfig_UserPreferences>({
defaultValues: {
...preferences,
isLowPower: preferences.isRouter ? true : preferences.isLowPower,
isLowPower:
preferences.role === Protobuf.Role.Router
? true
: preferences.isLowPower,
},
});
@@ -45,9 +48,11 @@ export const Power = (): JSX.Element => {
/>
<Checkbox
label="Powered by low power source (solar)"
disabled={preferences.isRouter}
disabled={preferences.role === Protobuf.Role.Router}
validationMessage={
preferences.isRouter ? 'Enabled by default in router mode' : ''
preferences.role === Protobuf.Role.Router
? 'Enabled by default in router mode'
: ''
}
{...register('isLowPower')}
/>
@@ -18,7 +18,7 @@ export const User = (): JSX.Element => {
(state) => state.meshtastic.radio.hardware,
).myNodeNum;
const node = useAppSelector((state) => state.meshtastic.nodes).find(
(node) => node.number === myNodeNum,
(node) => node.num === myNodeNum,
);
const { register, handleSubmit, formState, reset } = useForm<{
longName: string;
@@ -37,24 +37,24 @@ export const SerialSettingsPanel = (): JSX.Element => {
const moduleEnabled = useWatch({
control,
name: 'serialmoduleEnabled',
name: 'serialModuleEnabled',
defaultValue: false,
});
return (
<Form loading={loading} dirty={!formState.isDirty} submit={onSubmit}>
<Checkbox label="Module Enabled" {...register('serialmoduleEnabled')} />
<Checkbox label="Module Enabled" {...register('serialModuleEnabled')} />
<Checkbox
label="Echo"
disabled={!moduleEnabled}
{...register('serialmoduleEcho')}
{...register('serialModuleEcho')}
/>
<Input
type="number"
label="RX"
disabled={!moduleEnabled}
{...register('serialmoduleRxd', {
{...register('serialModuleRxd', {
valueAsNumber: true,
})}
/>
@@ -62,7 +62,7 @@ export const SerialSettingsPanel = (): JSX.Element => {
type="number"
label="TX Pin"
disabled={!moduleEnabled}
{...register('serialmoduleTxd', {
{...register('serialModuleTxd', {
valueAsNumber: true,
})}
/>
@@ -70,7 +70,7 @@ export const SerialSettingsPanel = (): JSX.Element => {
type="number"
label="Baud Rate"
disabled={!moduleEnabled}
{...register('serialmoduleBaud', {
{...register('serialModuleBaud', {
valueAsNumber: true,
})}
/>
@@ -78,7 +78,7 @@ export const SerialSettingsPanel = (): JSX.Element => {
type="number"
label="Timeout"
disabled={!moduleEnabled}
{...register('serialmoduleTimeout', {
{...register('serialModuleTimeout', {
valueAsNumber: true,
})}
/>
@@ -86,7 +86,7 @@ export const SerialSettingsPanel = (): JSX.Element => {
type="number"
label="Mode"
disabled={!moduleEnabled}
{...register('serialmoduleMode', {
{...register('serialModuleMode', {
valueAsNumber: true,
})}
/>
@@ -68,7 +68,7 @@ export const Telemetry = (): JSX.Element => {
/>
<Checkbox
label="Display Farenheit"
{...register('telemetryModuleDisplayFarenheit')}
{...register('telemetryModuleDisplayFahrenheit')}
/>
<Select
label="Sensor Type"