Polish dash placeholders and cluster timestamp tooltip

Two small UX touches on Settings → Infrastructure.

1. The empty-cell placeholders for endpoint and coverage on the cluster
header row and on member rows were rendered with an ASCII hyphen while
elsewhere in the same table (the member actions cell, the 'unknown'
Source badge, and other tables across the app) the convention is an
em-dash. Unify on em-dash so the placeholder reads as a single visual
language.

2. The cluster header row's lastActivityText is an aggregation: the
oldest timestamp across the cluster API connection, member liveness,
and member agent connections. That biases toward surfacing the most
stale source, but the column header just says 'STATUS' so a viewer can
mistake it for a most-recent timestamp. Add a title attribute on the
cluster row's timestamp explaining the aggregation. Non-cluster rows
keep no tooltip since their timestamp is single-sourced.
This commit is contained in:
rcourtman 2026-05-10 23:40:26 +01:00
parent 9063e7ec32
commit 9db3b53af7

View file

@ -798,7 +798,7 @@ export const InfrastructureSourceManager: Component<InfrastructureSourceManagerP
<TableCell class="px-3 py-1 align-top">
<Show
when={row.host}
fallback={<span class="text-xs text-muted" aria-hidden="true">-</span>}
fallback={<span class="text-xs text-muted" aria-hidden="true"></span>}
>
<div
class="truncate whitespace-nowrap text-[12px] text-muted"
@ -812,7 +812,7 @@ export const InfrastructureSourceManager: Component<InfrastructureSourceManagerP
<TableCell class="px-3 py-1 align-top">
<Show
when={row.coverageLabels.length > 0}
fallback={<span class="text-xs text-muted" aria-hidden="true">-</span>}
fallback={<span class="text-xs text-muted" aria-hidden="true"></span>}
>
<div
class="whitespace-normal break-words text-[12px] leading-4 text-muted"
@ -837,7 +837,14 @@ export const InfrastructureSourceManager: Component<InfrastructureSourceManagerP
: `${row.agentUpdateCount} agent updates`}
</span>
</Show>
<span class="whitespace-nowrap text-[12px] text-muted/90">
<span
class="whitespace-nowrap text-[12px] text-muted/90"
title={
row.isCluster
? 'Oldest activity across cluster API and member agents'
: undefined
}
>
{row.lastActivityText}
</span>
</div>
@ -955,7 +962,7 @@ export const InfrastructureSourceManager: Component<InfrastructureSourceManagerP
<Show
when={member.host}
fallback={
<span class="text-xs text-muted" aria-hidden="true">-</span>
<span class="text-xs text-muted" aria-hidden="true"></span>
}
>
<div
@ -971,7 +978,7 @@ export const InfrastructureSourceManager: Component<InfrastructureSourceManagerP
<Show
when={member.coverageLabels.length > 0}
fallback={
<span class="text-xs text-muted" aria-hidden="true">-</span>
<span class="text-xs text-muted" aria-hidden="true"></span>
}
>
<div
@ -1306,7 +1313,14 @@ export const InfrastructureSourceManager: Component<InfrastructureSourceManagerP
: `${row.agentUpdateCount} agent updates`}
</span>
</Show>
<span class="text-[12px] text-muted/90">
<span
class="text-[12px] text-muted/90"
title={
row.isCluster
? 'Oldest activity across cluster API and member agents'
: undefined
}
>
{row.lastActivityText}
</span>
<For each={row.fleetHighlights}>