From c71286358608ff28719205b69878dd6a4b6b0304 Mon Sep 17 00:00:00 2001 From: Marve10s Date: Wed, 4 Nov 2026 14:24:58 +0300 Subject: [PATCH 1/8] feat(web): fold an aggregator's models into collapsible vendor sections --- apps/web/src/components/chat/ModelListRow.tsx | 3 +- .../components/chat/ModelPickerContent.tsx | 140 +++++++++++++++--- .../chat/ProviderModelPicker.browser.test.tsx | 56 +++++++ .../src/components/chat/modelPickerKeys.ts | 34 ++++- .../chat/modelPickerVendorSections.test.ts | 40 +++++ .../chat/modelPickerVendorSections.ts | 32 ++++ 6 files changed, 280 insertions(+), 25 deletions(-) create mode 100644 apps/web/src/components/chat/modelPickerVendorSections.test.ts create mode 100644 apps/web/src/components/chat/modelPickerVendorSections.ts diff --git a/apps/web/src/components/chat/ModelListRow.tsx b/apps/web/src/components/chat/ModelListRow.tsx index 69da770f1f84b..e8dcc9d857c6a 100644 --- a/apps/web/src/components/chat/ModelListRow.tsx +++ b/apps/web/src/components/chat/ModelListRow.tsx @@ -16,6 +16,7 @@ export const ModelListRow = memo(function ModelListRow(props: { slug: string; name: string; subProvider?: string | undefined; + showSubProvider?: boolean; instanceId: ProviderInstanceId; driverKind: ProviderDriverKind; providerDisplayName: string; @@ -80,7 +81,7 @@ export const ModelListRow = memo(function ModelListRow(props: { , {props.providerDisplayName} {props.isSelected ?