import { useDevice } from "@app/core/stores/deviceStore.ts"; import type { Protobuf } from "@meshtastic/core"; import { numberToHexUnpadded } from "@noble/curves/abstract/utils"; import type { JSX } from "react"; export interface TraceRouteProps { from?: Protobuf.Mesh.NodeInfo; to?: Protobuf.Mesh.NodeInfo; route: Array; routeBack?: Array; snrTowards?: Array; snrBack?: Array; } export const TraceRoute = ({ from, to, route, routeBack, snrTowards, snrBack, }: TraceRouteProps): JSX.Element => { const { nodes } = useDevice(); return (

Route to destination:

{to?.user?.longName}

↓ {snrTowards?.[0] ? snrTowards[0] : "??"}dB

{route.map((hop, i) => (

{nodes.get(hop)?.user?.longName ?? `!${numberToHexUnpadded(hop)}`}

↓ {snrTowards?.[i + 1] ? snrTowards[i + 1] : "??"}dB

))} {from?.user?.longName}
{routeBack ? (

Route back:

{from?.user?.longName}

↓ {snrBack?.[0] ? snrBack[0] : "??"}dB

{routeBack.map((hop, i) => (

{nodes.get(hop)?.user?.longName ?? `!${numberToHexUnpadded(hop)}`}

↓ {snrBack?.[i + 1] ? snrBack[i + 1] : "??"}dB

))} {to?.user?.longName}
) : null}
); };