From 4b5f23ce585eee87931d66adf2b3ea7deb9815f5 Mon Sep 17 00:00:00 2001
From: dhgoal <153369624+dhgoal@users.noreply.github.com>
Date: Fri, 17 Jul 2026 21:25:30 +0200
Subject: [PATCH] feat(ui): adopt ErrorState/EmptyState in app.index.tsx's
metrics section
app.index.tsx's at-a-glance metrics section hand-rolled its own error and
empty
s instead of the shared state-view primitives every other route
uses. Swaps them for ErrorState/EmptyState from @/components/site/state-views,
passing overview.error through as the error detail, with no change to the
overview.status/series.length branching that decides which state renders.
Closes #6983
---
apps/loopover-ui/src/routes/app.index.tsx | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/apps/loopover-ui/src/routes/app.index.tsx b/apps/loopover-ui/src/routes/app.index.tsx
index 89acdac9f0..8a8811c21f 100644
--- a/apps/loopover-ui/src/routes/app.index.tsx
+++ b/apps/loopover-ui/src/routes/app.index.tsx
@@ -19,6 +19,7 @@ import {
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip";
import { StatusPill } from "@/components/site/control-primitives";
+import { EmptyState, ErrorState } from "@/components/site/state-views";
import { PageHeader } from "@/components/site/primitives";
import { TrendChart } from "@/components/site/trend-chart";
import { type AppRole, useSession } from "@/lib/api/session";
@@ -169,14 +170,18 @@ function AppOverview() {
className="grid gap-3 sm:grid-cols-2 lg:grid-cols-3"
>
{overview.status === "error" && (
-
- App overview is unavailable right now ({overview.error}).
-
+
)}
{series.length === 0 ? (
-
- No metrics available yet. They’ll appear once the API returns data.
-
+
) : (
series.map((m) => (