(null)
@@ -160,11 +159,12 @@ export function Dashboard() {
return new Set(app.routes.map((r) => r.id))
}, [appId])
- // Scope all data to the selected app
+ // Scope all data to the selected app (and optionally route)
const scopedExchanges = useMemo(() => {
+ if (routeId) return exchanges.filter((e) => e.route === routeId)
if (!appRouteIds) return exchanges
return exchanges.filter((e) => appRouteIds.has(e.route))
- }, [appRouteIds])
+ }, [appRouteIds, routeId])
// Filter exchanges (scoped + global filters)
const filteredExchanges = useMemo(() => {
@@ -313,9 +313,12 @@ export function Dashboard() {
>
{/* Top bar */}
- Route: navigate(`/routes/${exchange.route}`)}>{exchange.route}
+ Route: navigate(`/apps/${ROUTE_TO_APP.get(exchange.route) ?? exchange.route}/${exchange.route}`)}>{exchange.route}
·
Order: {exchange.orderId}
·
diff --git a/src/pages/Metrics/Metrics.tsx b/src/pages/Metrics/Metrics.tsx
index 7d47c00..f371b8c 100644
--- a/src/pages/Metrics/Metrics.tsx
+++ b/src/pages/Metrics/Metrics.tsx
@@ -27,7 +27,9 @@ import {
routeMetrics,
type RouteMetricRow,
} from '../../mocks/metrics'
-import { SIDEBAR_APPS } from '../../mocks/sidebar'
+import { SIDEBAR_APPS, buildRouteToAppMap } from '../../mocks/sidebar'
+
+const ROUTE_TO_APP = buildRouteToAppMap()
// ─── Metrics KPI cards (5 cards per spec) ─────────────────────────────────────
const METRIC_KPIS = [
@@ -245,7 +247,7 @@ export function Metrics() {
columns={ROUTE_COLUMNS}
data={routeMetricsWithId}
sortable
- onRowClick={(row) => navigate(`/routes/${row.routeId}`)}
+ onRowClick={(row) => navigate(`/apps/${ROUTE_TO_APP.get(row.routeId) ?? row.routeId}/${row.routeId}`)}
/>