From 15cfdeddef464d109a60992c802e17d9d1e4a3b4 Mon Sep 17 00:00:00 2001 From: Shawn Wang <32839114+enwaiax@users.noreply.github.com> Date: Fri, 14 Aug 2026 16:40:34 +0800 Subject: [PATCH] fix(web): keep fetched model selection in sync with form (#6841) * fix(web): keep fetched model selection in sync with form * refactor(web): reuse parsed channel models --- .../components/dialogs/fetch-models-dialog.tsx | 16 +++++++++++++--- .../components/drawers/channel-mutate-drawer.tsx | 6 +----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/web/src/features/channels/components/dialogs/fetch-models-dialog.tsx b/web/src/features/channels/components/dialogs/fetch-models-dialog.tsx index 6d7ce554..03b39e2c 100644 --- a/web/src/features/channels/components/dialogs/fetch-models-dialog.tsx +++ b/web/src/features/channels/components/dialogs/fetch-models-dialog.tsx @@ -53,17 +53,27 @@ function normalizeModelNameList(models: readonly string[]): string[] { return [...new Set(models.map((m) => normalizeModelName(m)).filter(Boolean))] } -type FetchModelsDialogProps = { +type FetchModelsDialogBaseProps = { open: boolean onOpenChange: (open: boolean) => void - onModelsSelected?: (models: string[]) => void redirectModels?: string[] redirectSourceModels?: string[] customFetcher?: () => Promise - existingModelsOverride?: string[] channelName?: string | null } +type FetchModelsDialogProps = FetchModelsDialogBaseProps & + ( + | { + onModelsSelected: (models: string[]) => void + existingModelsOverride: string[] + } + | { + onModelsSelected?: undefined + existingModelsOverride?: undefined + } + ) + export function FetchModelsDialog({ open, onOpenChange, diff --git a/web/src/features/channels/components/drawers/channel-mutate-drawer.tsx b/web/src/features/channels/components/drawers/channel-mutate-drawer.tsx index 3380d9e5..156fb063 100644 --- a/web/src/features/channels/components/drawers/channel-mutate-drawer.tsx +++ b/web/src/features/channels/components/drawers/channel-mutate-drawer.tsx @@ -4824,11 +4824,7 @@ export function ChannelMutateDrawer({ channelName={ shouldPreviewUnsavedModels ? currentName?.trim() : undefined } - existingModelsOverride={ - shouldPreviewUnsavedModels - ? parseModelsString(form.getValues('models') || '') - : undefined - } + existingModelsOverride={currentModelsArray} />