From 7df06a45ada161b4aea92eada09e1c51ca8fc89f Mon Sep 17 00:00:00 2001 From: duanfuxiang Date: Thu, 12 Jun 2025 12:08:52 +0800 Subject: [PATCH] =?UTF-8?q?update=20settings=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/settings/components/ModelProviderSettings.tsx | 12 ++++++++++-- src/types/settings.ts | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/settings/components/ModelProviderSettings.tsx b/src/settings/components/ModelProviderSettings.tsx index 6de7e11..797413a 100644 --- a/src/settings/components/ModelProviderSettings.tsx +++ b/src/settings/components/ModelProviderSettings.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React from 'react'; import { t } from '../../lang/helpers'; import InfioPlugin from "../../main"; @@ -50,13 +50,21 @@ const getProviderSettingKey = (provider: ApiProvider): ProviderSettingKey => { const CustomProviderSettings: React.FC = ({ plugin, onSettingsUpdate }) => { const settings = plugin.settings; - const [activeTab, setActiveTab] = useState(ApiProvider.Infio); + const activeTab = settings.activeProviderTab || ApiProvider.Infio; const handleSettingsUpdate = async (newSettings: InfioSettings) => { await plugin.setSettings(newSettings); onSettingsUpdate?.(); }; + const setActiveTab = (provider: ApiProvider) => { + const newSettings = { + ...settings, + activeProviderTab: provider + }; + handleSettingsUpdate(newSettings); + }; + const providers = GetAllProviders(); // 按照重要程度排序 const embeddingProviders = GetEmbeddingProviders(); // 按照重要程度排序 diff --git a/src/types/settings.ts b/src/types/settings.ts index 6ca4c78..1146927 100644 --- a/src/types/settings.ts +++ b/src/types/settings.ts @@ -241,6 +241,9 @@ export const InfioSettingsSchema = z.object({ modelId: z.string(), })).catch([]), + // Active Provider Tab (for UI state) + activeProviderTab: z.nativeEnum(ApiProvider).catch(ApiProvider.Infio), + // Chat Model chatModelProvider: z.nativeEnum(ApiProvider).catch(ApiProvider.Infio), chatModelId: z.string().catch(''),