From b74137dc72481ba57524aed8c7122a099bd02a30 Mon Sep 17 00:00:00 2001 From: Jack Kingsman Date: Tue, 31 Mar 2026 16:55:21 -0700 Subject: [PATCH] Add trace clear and much better layout. Closes #139. --- frontend/src/components/TracePane.tsx | 56 ++++++++++++++++++++------- 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/frontend/src/components/TracePane.tsx b/frontend/src/components/TracePane.tsx index 54c2da1..d3492ac 100644 --- a/frontend/src/components/TracePane.tsx +++ b/frontend/src/components/TracePane.tsx @@ -318,8 +318,8 @@ export function TracePane({ contacts, config, onRunTracePath }: TracePaneProps) : []; return ( -
-
+
+

Trace

Build a repeater loop and trace it back to the local radio. The selectable hop list only @@ -329,7 +329,7 @@ export function TracePane({ contacts, config, onRunTracePath }: TracePaneProps)

-
+

Repeater Hops

Search by name or key, then add repeaters in the order you want to traverse them. @@ -446,14 +446,30 @@ export function TracePane({ contacts, config, onRunTracePath }: TracePaneProps)

-
-
-

Trace Path

-

- The first node is display-only. The terminal node is the local radio. -

+
+
+
+

Trace Path

+

+ The first node is display-only. The terminal node is the local radio. +

+
+ {draftHops.length > 0 ? ( + + ) : null}
-
+
-
+
{draftHops.length === 0 ? 'No hops selected' @@ -555,12 +571,26 @@ export function TracePane({ contacts, config, onRunTracePath }: TracePaneProps)
-
+

Results{result ? ` (${result.timeout_seconds.toFixed(1)}s)` : ''}

+ {result || error ? ( + + ) : null}
-
+
{error ? (
{error}