From f2744e3094e9356aa81c42927c7d94cf6ab0358f Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Thu, 19 Mar 2026 18:06:49 +0100 Subject: [PATCH] fix: correct response field mappings and add logout button - SearchResult uses 'data' not 'items', 'total' not 'totalCount' - ExecutionStats uses 'p99LatencyMs' not 'p99DurationMs' - TimeseriesBucket uses 'time' not 'timestamp' - Add user Dropdown with logout action to LayoutShell Co-Authored-By: Claude Opus 4.6 (1M context) --- ui/src/api/schema.d.ts | 12 +++++++----- ui/src/components/LayoutShell.tsx | 24 ++++++++++++++++++------ ui/src/pages/Dashboard/Dashboard.tsx | 4 ++-- ui/src/pages/Routes/RoutesMetrics.tsx | 2 +- 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/ui/src/api/schema.d.ts b/ui/src/api/schema.d.ts index 8b081235..1bb3c15b 100644 --- a/ui/src/api/schema.d.ts +++ b/ui/src/api/schema.d.ts @@ -151,7 +151,7 @@ export interface components { totalCount: number; failedCount: number; avgDurationMs: number; - p99DurationMs: number; + p99LatencyMs: number; activeCount: number; totalToday: number; prevTotalCount: number; @@ -163,7 +163,7 @@ export interface components { buckets: components['schemas']['TimeseriesBucket'][]; }; TimeseriesBucket: { - timestamp: string; + time: string; totalCount: number; failedCount: number; avgDurationMs: number; @@ -171,8 +171,10 @@ export interface components { activeCount: number; }; SearchResultExecutionSummary: { - items: components['schemas']['ExecutionSummary'][]; - totalCount: number; + data: components['schemas']['ExecutionSummary'][]; + total: number; + offset: number; + limit: number; }; UserInfo: { userId: string; @@ -228,7 +230,7 @@ export interface components { exchangeCount: number; successRate: number; avgDurationMs: number; - p99DurationMs: number; + p99LatencyMs: number; errorRate: number; throughputPerSec: number; sparkline: number[]; diff --git a/ui/src/components/LayoutShell.tsx b/ui/src/components/LayoutShell.tsx index f312fe33..ef17f094 100644 --- a/ui/src/components/LayoutShell.tsx +++ b/ui/src/components/LayoutShell.tsx @@ -1,5 +1,5 @@ import { Outlet, useNavigate, useLocation } from 'react-router'; -import { AppShell, Sidebar, TopBar, CommandPalette, CommandPaletteProvider, GlobalFilterProvider, useCommandPalette } from '@cameleer/design-system'; +import { AppShell, Sidebar, TopBar, CommandPalette, CommandPaletteProvider, GlobalFilterProvider, useCommandPalette, Dropdown, Avatar } from '@cameleer/design-system'; import { useRouteCatalog } from '../api/queries/catalog'; import { useAuthStore } from '../auth/auth-store'; import { useMemo, useCallback } from 'react'; @@ -9,7 +9,7 @@ function LayoutContent() { const navigate = useNavigate(); const location = useLocation(); const { data: catalog } = useRouteCatalog(); - const { username, roles } = useAuthStore(); + const { username, roles, logout } = useAuthStore(); const { open: paletteOpen, setOpen: setPaletteOpen } = useCommandPalette(); const sidebarApps: SidebarApp[] = useMemo(() => { @@ -56,10 +56,22 @@ function LayoutContent() { /> } > - +
+ + {username && ( + } + items={[ + { label: `Signed in as ${username}`, disabled: true }, + { divider: true, label: '' }, + { label: 'Logout', onClick: () => { logout(); navigate('/login'); } }, + ]} + /> + )} +
setPaletteOpen(false)} diff --git a/ui/src/pages/Dashboard/Dashboard.tsx b/ui/src/pages/Dashboard/Dashboard.tsx index a12f5e94..81942fd7 100644 --- a/ui/src/pages/Dashboard/Dashboard.tsx +++ b/ui/src/pages/Dashboard/Dashboard.tsx @@ -33,7 +33,7 @@ export default function Dashboard() { const { data: snapshot } = useProcessorSnapshot(selectedId, processorIdx); const rows: Row[] = useMemo(() => - (searchResult?.items || []).map((e: ExecutionSummary) => ({ ...e, id: e.executionId })), + (searchResult?.data || []).map((e: ExecutionSummary) => ({ ...e, id: e.executionId })), [searchResult], ); @@ -89,7 +89,7 @@ export default function Dashboard() { - + diff --git a/ui/src/pages/Routes/RoutesMetrics.tsx b/ui/src/pages/Routes/RoutesMetrics.tsx index 053076a9..09055573 100644 --- a/ui/src/pages/Routes/RoutesMetrics.tsx +++ b/ui/src/pages/Routes/RoutesMetrics.tsx @@ -81,7 +81,7 @@ export default function RoutesMetrics() {
- +