From 12c47102ea7644046a4e541b8b885398825ef6f9 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Fri, 14 Feb 2025 13:35:09 +0800 Subject: [PATCH] refactor: Improve provider settings and menu handling --- src/renderer/src/config/providers.ts | 5 ++--- .../ProviderSettings/ProviderSetting.tsx | 2 +- .../pages/settings/ProviderSettings/index.tsx | 16 ++++++++++++---- src/renderer/src/providers/BaseProvider.ts | 8 ++++++-- src/renderer/src/providers/OpenAIProvider.ts | 3 +-- .../src/windows/mini/home/HomeWindow.tsx | 4 +++- 6 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 9e45b72f80..e6bbd0a368 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -6,8 +6,6 @@ import AnthropicProviderLogo from '@renderer/assets/images/providers/anthropic.p import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png' import BaiduCloudProviderLogo from '@renderer/assets/images/providers/baidu-cloud.svg' import BailianProviderLogo from '@renderer/assets/images/providers/bailian.png' -import ModelScopeProviderLogo from '@renderer/assets/images/providers/modelscope.png' -import BytedanceProviderLogo from '@renderer/assets/images/providers/bytedance.png' import DeepSeekProviderLogo from '@renderer/assets/images/providers/deepseek.png' import DmxapiProviderLogo from '@renderer/assets/images/providers/DMXAPI.png' import FireworksProviderLogo from '@renderer/assets/images/providers/fireworks.png' @@ -20,13 +18,14 @@ import GroqProviderLogo from '@renderer/assets/images/providers/groq.png' import HyperbolicProviderLogo from '@renderer/assets/images/providers/hyperbolic.png' import InfiniProviderLogo from '@renderer/assets/images/providers/infini.png' import JinaProviderLogo from '@renderer/assets/images/providers/jina.png' +import LMStudioProviderLogo from '@renderer/assets/images/providers/lmstudio.png' import MinimaxProviderLogo from '@renderer/assets/images/providers/minimax.png' import MistralProviderLogo from '@renderer/assets/images/providers/mistral.png' +import ModelScopeProviderLogo from '@renderer/assets/images/providers/modelscope.png' import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.png' import NvidiaProviderLogo from '@renderer/assets/images/providers/nvidia.png' import OcoolAiProviderLogo from '@renderer/assets/images/providers/ocoolai.png' import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png' -import LMStudioProviderLogo from '@renderer/assets/images/providers/lmstudio.png' import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.png' import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png' import PerplexityProviderLogo from '@renderer/assets/images/providers/perplexity.png' diff --git a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx index af03369bc0..af23431548 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx @@ -42,8 +42,8 @@ import AddModelPopup from './AddModelPopup' import ApiCheckPopup from './ApiCheckPopup' import EditModelsPopup from './EditModelsPopup' import GraphRAGSettings from './GraphRAGSettings' -import OllamSettings from './OllamaSettings' import LMStudioSettings from './LMStudioSettings' +import OllamSettings from './OllamaSettings' import SelectProviderModelPopup from './SelectProviderModelPopup' interface Props { diff --git a/src/renderer/src/pages/settings/ProviderSettings/index.tsx b/src/renderer/src/pages/settings/ProviderSettings/index.tsx index 6e6efef98c..5fe6853b0b 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/index.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/index.tsx @@ -53,7 +53,7 @@ const ProvidersList: FC = () => { } const getDropdownMenus = (provider: Provider): MenuProps['items'] => { - return [ + const menus = [ { label: t('common.edit'), key: 'edit', @@ -83,6 +83,16 @@ const ProvidersList: FC = () => { } } ] + + if (providers.filter((p) => p.id === provider.id).length > 1) { + return menus + } + + if (provider.isSystem) { + return [] + } + + return menus } return ( @@ -102,9 +112,7 @@ const ProvidersList: FC = () => { {...provided.draggableProps} {...provided.dragHandleProps} style={{ ...provided.draggableProps.style, marginBottom: 5 }}> - + { const onCloseWindow = () => window.api.miniWindow.hide() const handleKeyDown = (e: React.KeyboardEvent) => { + const isEnterPressed = e.keyCode == 13 + if (e.key === 'Escape') { setText('') setRoute('home') @@ -57,7 +59,7 @@ const HomeWindow: FC = () => { return } - if (e.key === 'Enter') { + if (isEnterPressed) { e.preventDefault() if (content) { setRoute('chat')