diff --git a/app/sites/[id]/page.tsx b/app/sites/[id]/page.tsx index 9a0557b..a89999f 100644 --- a/app/sites/[id]/page.tsx +++ b/app/sites/[id]/page.tsx @@ -237,7 +237,7 @@ export default function SiteDashboardPage() { // Single dashboard request replaces focused hooks (overview, pages, locations, // devices, referrers, goals). The backend runs all queries in parallel // and caches the result in Redis for efficient data loading. - const { data: dashboard, isLoading: dashboardLoading, error: dashboardError } = useDashboard(siteId, dateRange.start, dateRange.end, interval, filtersParam || undefined) + const { data: dashboard, isLoading: dashboardLoading, isValidating: dashboardValidating, error: dashboardError } = useDashboard(siteId, dateRange.start, dateRange.end, interval, filtersParam || undefined) const { data: realtimeData } = useRealtime(siteId) const { data: prevStats } = useStats(siteId, prevRange.start, prevRange.end) const { data: prevDailyStats } = useDailyStats(siteId, prevRange.start, prevRange.end, interval) @@ -531,6 +531,13 @@ export default function SiteDashboardPage() { + {/* Refetch indicator — visible when SWR is revalidating with stale data on screen */} + {dashboardValidating && !dashboardLoading && ( +
+
+
+ )} + {/* Advanced Chart with Integrated Stats */}