feat(topology): show extra routes in node details
Refresh selected node details when full metadata changes.
This commit is contained in:
@@ -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
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user