diff --git a/ui/src/api/queries/catalog.ts b/ui/src/api/queries/catalog.ts index db040b3e..65a416cc 100644 --- a/ui/src/api/queries/catalog.ts +++ b/ui/src/api/queries/catalog.ts @@ -46,6 +46,7 @@ export function useRouteMetrics(from?: string, to?: string, appId?: string) { if (!res.ok) throw new Error('Failed to load route metrics'); return res.json(); }, + placeholderData: (prev: unknown) => prev, refetchInterval, }); } diff --git a/ui/src/api/queries/dashboard.ts b/ui/src/api/queries/dashboard.ts index 38df830e..20ffcb86 100644 --- a/ui/src/api/queries/dashboard.ts +++ b/ui/src/api/queries/dashboard.ts @@ -106,7 +106,7 @@ export function usePunchcard(application?: string) { return useQuery({ queryKey: ['dashboard', 'punchcard', application], queryFn: () => fetchJson('/search/stats/punchcard', { application }), - placeholderData: (prev: PunchcardCell[] | undefined) => prev, + placeholderData: (prev: PunchcardCell[] | undefined) => prev ?? [], refetchInterval, }); } diff --git a/ui/src/pages/DashboardTab/DashboardTab.module.css b/ui/src/pages/DashboardTab/DashboardTab.module.css index b876c64d..41a1b400 100644 --- a/ui/src/pages/DashboardTab/DashboardTab.module.css +++ b/ui/src/pages/DashboardTab/DashboardTab.module.css @@ -2,6 +2,10 @@ display: flex; flex-direction: column; gap: 20px; + flex: 1; + min-height: 0; + overflow-y: auto; + padding-bottom: 20px; } .refreshIndicator { diff --git a/ui/src/pages/DashboardTab/Treemap.tsx b/ui/src/pages/DashboardTab/Treemap.tsx index 4a930793..3230b556 100644 --- a/ui/src/pages/DashboardTab/Treemap.tsx +++ b/ui/src/pages/DashboardTab/Treemap.tsx @@ -112,6 +112,7 @@ export function Treemap({ items, onItemClick }: TreemapProps) { nameKey="name" stroke="none" content={renderContent} + isAnimationActive={false} >