+
{activeRegion ? (
-
- ) : (
-
{t("topology.selectRegion")}
- )}
+ <>
+
/
+
+ >
+ ) : null}
{activeView ? (
<>
/
@@ -2597,9 +2767,18 @@ export function TopologyPage() {
.replace("{{failed}}", String(discoverSummary.failed))}
-
+
>
) : null}
@@ -2610,90 +2789,147 @@ export function TopologyPage() {
-
{titleText}
+ {activeRegion ? (
+
+
+ /
+ {regionDisplayName(activeRegion)}
+
+ ) : (
+
{titleText}
+ )}
{activeRegion
? t("topology.browserRegionSub").replace(
"{{count}}",
String(browseEntries.length),
)
- : t("topology.regionBrowseHint")}
+ : t("topology.browserRegionsSub").replace(
+ "{{count}}",
+ String(regions.length),
+ )}
{!activeRegion ? (
-
-
-
-
-
{t("topology.selectRegion")}
-
+ regions.length === 0 ? (
+
+
+
+
+
{t("topology.emptyMaps")}
+
+
+ ) : (
+
+ {regions.map((region, idx) => (
+
+ ))}
+
+
+ )
) : browseEntries.length === 0 ? (
-
-
{t("topology.browserEmptyMaps")}
+
) : (
-
- {browseEntries.map((v) => {
+
+ {browseEntries.map((v, idx) => {
const isPhysical = String(v.kind) === "physical";
+ const tone = isPhysical ? "physical" : String((idx + 1) % 5);
return (
-
setHotBrowseKey(`view:${v.id}`)}
+ onMouseLeave={() =>
+ setHotBrowseKey((k) => (k === `view:${v.id}` ? "" : k))
+ }
+ onClick={() => goCanvas(v.id, activeRegion.id)}
+ title={t("topology.openMap")}
>
-
-
-
-
-
-
+
+
+
+
+ {v.name}
+ {v.node_count || 0}N
+
+
);
})}
)}