Browse Source

Minor fixes

pull/31/head
Sacha Weatherstone 4 years ago
parent
commit
48838f767f
  1. 12
      package.json
  2. 503
      pnpm-lock.yaml
  3. 36
      src/components/PageComponents/ModuleConfig/Telemetry.tsx
  4. 28
      src/components/Progress.tsx
  5. 6
      src/components/layout/Header.tsx
  6. 16
      src/validation/moduleConfig/telemetry.ts

12
package.json

@ -22,9 +22,9 @@
"dependencies": {
"@arcgis/core": "^4.24.7",
"@emeraldpay/hashicon-react": "^0.5.2",
"@hookform/resolvers": "^2.9.6",
"@hookform/resolvers": "^2.9.7",
"@meshtastic/eslint-config": "^1.0.8",
"@meshtastic/meshtasticjs": "^0.6.81",
"@meshtastic/meshtasticjs": "^0.6.83",
"base64-js": "^1.5.1",
"class-transformer": "^0.5.1",
"class-validator": "^0.13.2",
@ -35,7 +35,7 @@
"prettier": "^2.7.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hook-form": "^7.33.1",
"react-hook-form": "^7.34.0",
"react-icons": "^4.4.0",
"react-json-pretty": "^2.2.0",
"react-qrcode-logo": "^2.7.0",
@ -43,12 +43,12 @@
"snarkdown": "^2.0.0",
"swr": "^1.3.0",
"vite-plugin-environment": "^1.1.2",
"zustand": "4.0.0-rc.4"
"zustand": "4.0.0"
},
"devDependencies": {
"@types/chrome": "^0.0.193",
"@types/geodesy": "^2.2.3",
"@types/node": "^18.0.6",
"@types/node": "^18.6.3",
"@types/react": "^18.0.15",
"@types/react-dom": "^18.0.6",
"@types/w3c-web-serial": "^1.0.2",
@ -60,7 +60,7 @@
"tslib": "^2.4.0",
"typescript": "^4.7.4",
"unimported": "^1.21.0",
"vite": "^3.0.2",
"vite": "^3.0.4",
"vite-plugin-cdn-import": "^0.3.5"
}
}

503
pnpm-lock.yaml

File diff suppressed because it is too large

36
src/components/PageComponents/ModuleConfig/Telemetry.tsx

@ -1,15 +1,13 @@
import type React from "react";
import { useEffect, useState } from "react";
import { FormField, SelectField, Switch, TextInputField } from "evergreen-ui";
import { FormField, Switch, TextInputField } from "evergreen-ui";
import { Controller, useForm } from "react-hook-form";
import { TelemetryValidation } from "@app/validation/moduleConfig/telemetry.js";
import { Form } from "@components/form/Form";
import { useDevice } from "@core/stores/deviceStore.js";
import { renderOptions } from "@core/utils/selectEnumOptions.js";
import { classValidatorResolver } from "@hookform/resolvers/class-validator";
import { Protobuf } from "@meshtastic/meshtasticjs";
export const Telemetry = (): JSX.Element => {
const { moduleConfig, connection } = useDevice();
@ -75,14 +73,6 @@ export const Telemetry = (): JSX.Element => {
)}
/>
</FormField>
<TextInputField
label="Read Error Count Threshold"
description="Max transmit power in dBm"
type="number"
{...register("environmentReadErrorCountThreshold", {
valueAsNumber: true,
})}
/>
<TextInputField
label="Update Interval"
description="Max transmit power in dBm"
@ -92,15 +82,6 @@ export const Telemetry = (): JSX.Element => {
valueAsNumber: true,
})}
/>
<TextInputField
label="Recovery Interval"
description="Max transmit power in dBm"
hint="Seconds"
type="number"
{...register("environmentRecoveryInterval", {
valueAsNumber: true,
})}
/>
<FormField
label="Display Farenheit"
description="Description"
@ -115,21 +96,6 @@ export const Telemetry = (): JSX.Element => {
)}
/>
</FormField>
<SelectField
label="Sensor Type"
description="This is a description."
{...register("environmentSensorType", { valueAsNumber: true })}
>
{renderOptions(Protobuf.TelemetrySensorType)}
</SelectField>
<TextInputField
label="Sensor Pin"
description="Max transmit power in dBm"
type="number"
{...register("environmentSensorPin", {
valueAsNumber: true,
})}
/>
</Form>
);
};

28
src/components/Progress.tsx

@ -1,12 +1,26 @@
import React, { useEffect } from "react";
import { majorScale, Pane, Spinner, StatusIndicator } from "evergreen-ui";
import {
Button,
majorScale,
Pane,
ResetIcon,
Spinner,
StatusIndicator,
} from "evergreen-ui";
import { useDevice } from "@app/core/stores/deviceStore.js";
export const Progress = (): JSX.Element => {
const { hardware, channels, config, moduleConfig, setReady, nodes } =
useDevice();
const {
hardware,
channels,
config,
moduleConfig,
setReady,
nodes,
connection,
} = useDevice();
useEffect(() => {
if (
@ -80,6 +94,14 @@ export const Progress = (): JSX.Element => {
{hardware.myNodeNum !== 0 &&
`(${channels.length} / ${hardware.maxChannels})`}
</StatusIndicator>
<Button
onClick={() => {
void connection?.configure();
}}
iconBefore={ResetIcon}
>
Retry
</Button>
</Pane>
</Pane>
</Pane>

6
src/components/layout/Header.tsx

@ -119,7 +119,7 @@ export const Header = (): JSX.Element => {
{getDevices().length !== 0 && (
<Tooltip content="Disconnect active device">
<Button
iconAfter={CrossIcon}
iconBefore={CrossIcon}
onClick={() => {
removeDevice(selectedDevice ?? 0);
}}
@ -133,7 +133,9 @@ export const Header = (): JSX.Element => {
target="_blank"
href="https://github.com/meshtastic/meshtastic-web"
>
<IconButton icon={FiGithub} />
<Button iconBefore={FiGithub}>
{import.meta.env.COMMIT_HASH ?? "DEVELOPMENT"}
</Button>
</Link>
</Tooltip>
<Tooltip content="Visit Meshtastic.org">

16
src/validation/moduleConfig/telemetry.ts

@ -1,6 +1,6 @@
import { IsBoolean, IsEnum, IsInt } from "class-validator";
import { IsBoolean, IsInt } from "class-validator";
import { Protobuf } from "@meshtastic/meshtasticjs";
import type { Protobuf } from "@meshtastic/meshtasticjs";
export class TelemetryValidation
implements Protobuf.ModuleConfig_TelemetryConfig
@ -17,18 +17,6 @@ export class TelemetryValidation
@IsBoolean()
environmentScreenEnabled: boolean;
@IsInt()
environmentReadErrorCountThreshold: number;
@IsInt()
environmentRecoveryInterval: number;
@IsBoolean()
environmentDisplayFahrenheit: boolean;
@IsEnum(Protobuf.TelemetrySensorType)
environmentSensorType: Protobuf.TelemetrySensorType;
@IsInt()
environmentSensorPin: number;
}

Loading…
Cancel
Save