From 530515b6efe2e801e8118c6f8e9cee74fa1d93cc Mon Sep 17 00:00:00 2001 From: yyh Date: Thu, 5 Mar 2026 10:35:03 +0800 Subject: [PATCH] fix(web): prevent model list from expanding on priority switch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove UPDATE_MODEL_PROVIDER_CUSTOM_MODEL_LIST event emission from changePriority onSuccess. This event was designed for custom model add/edit/delete scenarios where the card should expand, but firing it on priority switch caused ProviderAddedCard to unexpectedly expand via refreshModelList → setCollapsed(false). --- .../provider-added-card/credential-panel.spec.tsx | 2 +- .../provider-added-card/credential-panel.tsx | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/web/app/components/header/account-setting/model-provider-page/provider-added-card/credential-panel.spec.tsx b/web/app/components/header/account-setting/model-provider-page/provider-added-card/credential-panel.spec.tsx index 9e29313f32..1b50c30348 100644 --- a/web/app/components/header/account-setting/model-provider-page/provider-added-card/credential-panel.spec.tsx +++ b/web/app/components/header/account-setting/model-provider-page/provider-added-card/credential-panel.spec.tsx @@ -321,7 +321,7 @@ describe('CredentialPanel', () => { ) expect(mockUpdateModelProviders).toHaveBeenCalled() expect(mockUpdateModelList).toHaveBeenCalledWith('llm') - expect(mockEventEmitter.emit).toHaveBeenCalled() + expect(mockEventEmitter.emit).not.toHaveBeenCalled() }) }) }) diff --git a/web/app/components/header/account-setting/model-provider-page/provider-added-card/credential-panel.tsx b/web/app/components/header/account-setting/model-provider-page/provider-added-card/credential-panel.tsx index 3b48be856f..401d07b684 100644 --- a/web/app/components/header/account-setting/model-provider-page/provider-added-card/credential-panel.tsx +++ b/web/app/components/header/account-setting/model-provider-page/provider-added-card/credential-panel.tsx @@ -7,7 +7,6 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { useTranslation } from 'react-i18next' import Toast from '@/app/components/base/toast' import Indicator from '@/app/components/header/indicator' -import { useEventEmitterContextContext } from '@/context/event-emitter' import { consoleQuery } from '@/service/client' import { ConfigurationMethodEnum, @@ -16,7 +15,6 @@ import { useUpdateModelList, useUpdateModelProviders, } from '../hooks' -import { UPDATE_MODEL_PROVIDER_CUSTOM_MODEL_LIST } from './index' import ModelAuthDropdown from './model-auth-dropdown' import SystemQuotaCard from './system-quota-card' import { isDestructiveVariant, useCredentialPanelState } from './use-credential-panel-state' @@ -37,7 +35,6 @@ const CredentialPanel = ({ provider, }: CredentialPanelProps) => { const { t } = useTranslation() - const { eventEmitter } = useEventEmitterContextContext() const queryClient = useQueryClient() const updateModelList = useUpdateModelList() const updateModelProviders = useUpdateModelProviders() @@ -56,10 +53,6 @@ const CredentialPanel = ({ if (method === ConfigurationMethodEnum.predefinedModel) provider.supported_model_types.forEach(modelType => updateModelList(modelType)) }) - eventEmitter?.emit({ - type: UPDATE_MODEL_PROVIDER_CUSTOM_MODEL_LIST, - payload: provider.provider, - } as { type: string, payload: string }) }, onError: () => { Toast.notify({ type: 'error', message: t('actionMsg.modifiedUnsuccessfully', { ns: 'common' }) })