From 10e20df8147fadb72d20692c306b3a9a76ff1d6c Mon Sep 17 00:00:00 2001 From: Sacha Weatherstone Date: Sun, 9 Oct 2022 14:39:55 +1030 Subject: [PATCH] Widget cleanup --- src/components/Widgets/BatteryWidget.tsx | 50 ++++++++-------- src/components/Widgets/PeersWidget.tsx | 73 ++++++++++------------- src/components/Widgets/PositionWidget.tsx | 20 +++---- 3 files changed, 65 insertions(+), 78 deletions(-) diff --git a/src/components/Widgets/BatteryWidget.tsx b/src/components/Widgets/BatteryWidget.tsx index d4834dc7..5a3015d8 100644 --- a/src/components/Widgets/BatteryWidget.tsx +++ b/src/components/Widgets/BatteryWidget.tsx @@ -45,38 +45,38 @@ export const BatteryWidget = ({ if (currentStat && previousStat) { const timeDiff = currentTime.getTime() - previousTime.getTime(); const statDiff = Math.abs(currentStat - previousStat); - //convert to ms/% - const msPerPercent = timeDiff / statDiff; - const formatted = prettyMilliseconds( - (100 - currentStat) * msPerPercent - ); - setTimeRemaining(formatted); + if (statDiff !== 0) { + //convert to ms/% + const msPerPercent = timeDiff / statDiff; + const formatted = prettyMilliseconds( + (100 - currentStat) * msPerPercent + ); + setTimeRemaining(formatted); + } } else setTimeRemaining("Unknown"); } }, [hardware.myNodeNum, nodes]); return ( -
-
-
-
-

+

+
+ +
+
+

Battery State

-
-
-

{batteryLevel}%

-

-

-
+
+

{batteryLevel}%

+
+
+
+
); }; diff --git a/src/components/Widgets/PeersWidget.tsx b/src/components/Widgets/PeersWidget.tsx index cada38b3..8341963d 100644 --- a/src/components/Widgets/PeersWidget.tsx +++ b/src/components/Widgets/PeersWidget.tsx @@ -1,16 +1,12 @@ import type React from "react"; -import { base16 } from "rfc4648"; - -import { Hashicon } from "@emeraldpay/hashicon-react"; +import { useDevice } from "@app/core/providers/useDevice.js"; import { - EllipsisHorizontalCircleIcon, + EllipsisHorizontalIcon, UserGroupIcon, } from "@heroicons/react/24/outline"; import type { Protobuf } from "@meshtastic/meshtasticjs"; -import { Card } from "../Card.js"; -import { Dropdown } from "../Dropdown.js"; import { IconButton } from "../IconButton.js"; import { Mono } from "../Mono.js"; @@ -19,45 +15,36 @@ export interface PeersWidgetProps { } export const PeersWidget = ({ peers }: PeersWidgetProps): JSX.Element => { + const { setActivePage } = useDevice(); + return ( - - } - > -
- {peers.map((peer) => ( -
- - - -
- {peer.user?.longName} - - {base16 - .stringify(peer.user?.macaddr ?? []) - .match(/.{1,2}/g) - ?.join(":") ?? ""} - -
-
- } - /> -
-
- ))} - {peers.length === 0 && ( - No devices discovered yet. +
+
+ +
+
+

+ Connected Peers +

+
+ {peers.length > 0 ? ( +

+ {`${peers.length} ${peers.length > 1 ? "Peers" : "Peer"}`} +

+ ) : ( + None Discovered. )}
- - +
+ { + setActivePage("peers"); + }} + icon={} + /> +
); }; diff --git a/src/components/Widgets/PositionWidget.tsx b/src/components/Widgets/PositionWidget.tsx index 709244b7..54997e1e 100644 --- a/src/components/Widgets/PositionWidget.tsx +++ b/src/components/Widgets/PositionWidget.tsx @@ -8,18 +8,18 @@ export interface PositionWidgetProps { export const PositionWidget = ({ grid }: PositionWidgetProps): JSX.Element => { return ( -
-
-
-
-

+

+
+ +
+
+

Current Location

-
-
-

{grid}

-
+
+

{grid}

+
+
); };