From 636a8541bc24ceccf2a6d4425638aa878f2cd523 Mon Sep 17 00:00:00 2001 From: Rocky <72559939+hkgood@users.noreply.github.com> Date: Sat, 22 Aug 2026 17:21:20 +0800 Subject: [PATCH] Fix provider configuration response rendering Align the admin page with the array response defined by the production API and OpenAPI contract so successful status loads cannot trip the route error boundary. --- admin-web/src/api/types.ts | 4 +-- .../src/features/providers/providers-page.tsx | 6 ++-- admin-web/src/test/providers.test.tsx | 28 +++++++++---------- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/admin-web/src/api/types.ts b/admin-web/src/api/types.ts index 3f71d16..34977b4 100644 --- a/admin-web/src/api/types.ts +++ b/admin-web/src/api/types.ts @@ -135,9 +135,7 @@ export interface ManagedProviderStatus { updatedAt?: string; } -export interface ManagedProviderOverview { - providers: ManagedProviderStatus[]; -} +export type ManagedProviderOverview = ManagedProviderStatus[]; export interface UpdateProviderApiKeyRequest { apiKey: string; diff --git a/admin-web/src/features/providers/providers-page.tsx b/admin-web/src/features/providers/providers-page.tsx index d60d3be..65a8d86 100644 --- a/admin-web/src/features/providers/providers-page.tsx +++ b/admin-web/src/features/providers/providers-page.tsx @@ -59,10 +59,10 @@ export function ProvidersPage() { const updateStatus = useCallback((updated: ManagedProviderStatus) => { setOverview((current) => { if (!current) return current; - const providers = current.providers.filter( + const providers = current.filter( (item) => item.providerId !== updated.providerId, ); - return { providers: [...providers, updated] }; + return [...providers, updated]; }); }, []); @@ -101,7 +101,7 @@ export function ProvidersPage() { providerId={provider.id} name={provider.name} description={provider.description} - status={overview.providers.find((item) => item.providerId === provider.id)} + status={overview.find((item) => item.providerId === provider.id)} onUpdated={updateStatus} /> ))} diff --git a/admin-web/src/test/providers.test.tsx b/admin-web/src/test/providers.test.tsx index a33108e..eb95d40 100644 --- a/admin-web/src/test/providers.test.tsx +++ b/admin-web/src/test/providers.test.tsx @@ -66,19 +66,17 @@ function mockProviders() { } function providerOverview(): ManagedProviderOverview { - return { - providers: [ - { - providerId: "deepseek", - configured: true, - source: "RUNTIME_OVERRIDE", - updatedAt: "2026-08-22T07:30:00Z", - }, - { - providerId: "volcengine", - configured: true, - source: "ENVIRONMENT", - }, - ], - }; + return [ + { + providerId: "deepseek", + configured: true, + source: "RUNTIME_OVERRIDE", + updatedAt: "2026-08-22T07:30:00Z", + }, + { + providerId: "volcengine", + configured: true, + source: "ENVIRONMENT", + }, + ]; }