feat(topology): show extra routes in node details

Refresh selected node details when full metadata changes.
This commit is contained in:
2026-08-28 23:13:49 +08:00
parent 89474b9e91
commit 0b705f9ba0
4 changed files with 100 additions and 22 deletions
+15 -2
View File
@@ -14,6 +14,8 @@ export interface LayoutNode extends SimulationNodeDatum {
compressedAddress?: string
isSelf: boolean
deviceName?: string
nodeInfoFullRevision?: number
nodeInfoFullRevisionEpoch?: string
x: number
y: number
}
@@ -117,7 +119,11 @@ export function useTopology(): UseTopologyResult {
const topoNodes: TopologyNode[] = Array.isArray(payload.nodes)
? payload.nodes.filter(
(n) => n && typeof n.id === 'string' && n.id !== ''
)
).map((n) => ({
...n,
nodeInfoFullRevision: n.nodeInfoFullRevision ?? 0,
nodeInfoFullRevisionEpoch: n.nodeInfoFullRevisionEpoch ?? '',
}))
: []
const topoEdgesRaw: TopologyEdge[] = Array.isArray(payload.edges)
? payload.edges
@@ -170,7 +176,14 @@ export function useTopology(): UseTopologyResult {
prev.length === topoNodes.length
? prev.map((n) => {
const fresh = topoNodes.find((t) => t.id === n.id)
return fresh ? { ...n, deviceName: fresh.deviceName } : n
return fresh
? {
...n,
deviceName: fresh.deviceName,
nodeInfoFullRevision: fresh.nodeInfoFullRevision,
nodeInfoFullRevisionEpoch: fresh.nodeInfoFullRevisionEpoch,
}
: n
})
: prev
)