import React from 'react'; import { FaDesktop, FaUsers } from 'react-icons/fa'; import type { Types } from '@meshtastic/meshtasticjs'; import type { languageTemplate } from '../../App'; import NavItem from '../NavItem'; interface sidebarNodesProps { IsReady: boolean; Nodes: Types.NodeInfoPacket[]; Translations: languageTemplate; } const SidebarNodes = (props: sidebarNodesProps) => { return ( {props.Translations.nodes_title}
{props.Nodes.length ?? 0}
} isLoading={!props.IsReady} dropdownContent={ props.Nodes.length ? ( props.Nodes.map((node, index) => (
{node.data.user?.longName}
} dropdownContent={

SNR:{' '} {node.packet?.rxSnr ? node.packet.rxSnr : 'Unknown'}

RSSI:{' '} {node.packet?.rxRssi ? node.packet.rxRssi : 'Unknown'}

Last heard:{' '} {node.data?.lastHeard ? node.data.lastHeard : 'Unknown'}

Loc:{' '} {node.data?.position ? `alt: ${node.data?.position.altitude}, lat: ${node.data?.position.latitudeI}, lng: ${node.data?.position.longitudeI}, time: ${node.data?.position.time}, batt: ${node.data?.position.batteryLevel}` : 'Unknown'}

} /> } /> )) ) : (
{props.Translations.no_nodes_message}
) } /> ); }; export default SidebarNodes;