Update node view and support hosted version

This commit is contained in:
Sacha Weatherstone
2021-12-15 21:09:53 +11:00
parent 3873731f43
commit c3a4f81b1c
5 changed files with 54 additions and 40 deletions
+24 -4
View File
@@ -2,6 +2,7 @@ import React from 'react';
import { FaSatellite } from 'react-icons/fa';
import { FiCode } from 'react-icons/fi';
import { GiLightningFrequency } from 'react-icons/gi';
import {
MdAccountCircle,
MdArrowDropDown,
@@ -9,6 +10,7 @@ import {
MdGpsFixed,
MdGpsNotFixed,
MdGpsOff,
MdSdStorage,
MdSignalCellularAlt,
} from 'react-icons/md';
import TimeAgo from 'timeago-react';
@@ -20,10 +22,10 @@ import { Protobuf } from '@meshtastic/meshtasticjs';
export interface NodeCardProps {
node: Node;
isMyNode: boolean;
myNodeInfo?: Protobuf.MyNodeInfo;
}
export const NodeCard = ({ node, isMyNode }: NodeCardProps): JSX.Element => {
export const NodeCard = ({ node, myNodeInfo }: NodeCardProps): JSX.Element => {
const [snrAverage, setSnrAverage] = React.useState(0);
const [satsAverage, setSatsAverage] = React.useState(0);
React.useEffect(() => {
@@ -51,7 +53,7 @@ export const NodeCard = ({ node, isMyNode }: NodeCardProps): JSX.Element => {
className="m-2 rounded-md shadow-md bg-gray-50 dark:bg-gray-700"
>
<Disclosure.Button className="flex w-full gap-2 p-2 bg-gray-100 rounded-md shadow-md dark:bg-primaryDark">
{isMyNode ? (
{myNodeInfo ? (
<MdAccountCircle className="my-auto" />
) : (
<div
@@ -69,7 +71,7 @@ export const NodeCard = ({ node, isMyNode }: NodeCardProps): JSX.Element => {
<div className="my-auto">{node.user?.longName}</div>
<div className="my-auto ml-auto text-xs font-semibold">
{!isMyNode && (
{!myNodeInfo && (
<span>
{node.lastHeard.getTime() ? (
<TimeAgo datetime={node.lastHeard} />
@@ -92,6 +94,24 @@ export const NodeCard = ({ node, isMyNode }: NodeCardProps): JSX.Element => {
)}
</Disclosure.Button>
<Disclosure.Panel className="p-2">
{myNodeInfo && (
<div>
<div className="flex justify-between">
<span className="flex">
<MdSdStorage className="my-auto" />
Firmware Ver:
</span>
<span>{myNodeInfo.firmwareVersion}</span>
</div>
<div className="flex justify-between">
<span className="flex">
<GiLightningFrequency className="my-auto" />
Freq Bands:
</span>
<span>{myNodeInfo.numBands}</span>
</div>
</div>
)}
<div className="flex">
<div className="my-auto">
{Protobuf.HardwareModel[node.user?.hwModel ?? 0]}