dashboard-v2 frontend: node column + clickable pills on storage tabs
Build with clawstor cache / Cargo build (clawstor-cached) (pull_request) Failing after 3s

All storage rows now carry a 'node' field from the aggregator.
Adds a small green-pill component that renders the source node
name; click drills into that node's detail page.

Also fixes the TS interfaces to match the new backend shape
(node field added to Blob/Tag/Ref/Snapshot/RefTracking types).
This commit is contained in:
Omar Sobh
2026-07-14 16:44:06 -07:00
parent 1211f0d891
commit b672037e42
5 changed files with 48 additions and 10 deletions
+7 -1
View File
@@ -63,6 +63,7 @@ export function RefTrackingPage() {
<table className="w-full text-sm">
<thead className="text-slate-500 uppercase text-xs tracking-wider">
<tr>
<th className="text-left px-4 py-2 font-normal">node</th>
<th className="text-left px-4 py-2 font-normal">fingerprint</th>
<th className="text-left px-4 py-2 font-normal">refs</th>
<th className="text-left px-4 py-2 font-normal">first seen</th>
@@ -71,7 +72,12 @@ export function RefTrackingPage() {
</thead>
<tbody>
{items.map((it) => (
<tr key={it.fingerprint_hex} className="border-t border-slate-900">
<tr key={it.node + ':' + it.fingerprint_hex} className="border-t border-slate-900">
<td className="px-4 py-2">
<span className="inline-block rounded bg-slate-800 text-emerald-300 text-xs font-mono px-2 py-0.5">
{it.node}
</span>
</td>
<td className="px-4 py-2 font-mono text-xs">
{it.fingerprint_hex.slice(0, 24)}…
</td>