From 9541970d10ffd0b99682c39d6e2aee549aeca018 Mon Sep 17 00:00:00 2001 From: farion1231 Date: Thu, 7 Aug 2025 20:27:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E7=94=A8=E6=88=B7=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=EF=BC=9A=E4=BE=9B=E5=BA=94=E5=95=86=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E6=97=B6=E8=87=AA=E5=8A=A8=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E9=85=8D=E7=BD=AE=E5=AF=B9=E8=AF=9D=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 当供应商列表为空时,自动显示导入配置对话框,引导用户导入当前配置 - 为导入配置对话框添加isEmpty属性,针对空列表场景优化界面文案 - 空列表场景下显示更友好的标题和说明文本 - 优化按钮文本:空列表时取消按钮显示为"稍后设置" --- src/renderer/App.tsx | 6 ++++ src/renderer/components/ImportConfigModal.tsx | 28 +++++++++++++------ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index 326027b..ac8766c 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -75,6 +75,11 @@ function App() { const currentId = await window.electronAPI.getCurrentProvider(); setProviders(loadedProviders); setCurrentProviderId(currentId); + + // 如果供应商列表为空,自动弹出导入配置对话框 + if (Object.keys(loadedProviders).length === 0) { + setIsImportModalOpen(true); + } }; const loadConfigPath = async () => { @@ -228,6 +233,7 @@ function App() { setIsImportModalOpen(false)} + isEmpty={Object.keys(providers).length === 0} /> )} diff --git a/src/renderer/components/ImportConfigModal.tsx b/src/renderer/components/ImportConfigModal.tsx index 2659690..c7af647 100644 --- a/src/renderer/components/ImportConfigModal.tsx +++ b/src/renderer/components/ImportConfigModal.tsx @@ -4,9 +4,10 @@ import './AddProviderModal.css' interface ImportConfigModalProps { onImport: (name: string) => void onClose: () => void + isEmpty?: boolean // 供应商列表是否为空 } -const ImportConfigModal: React.FC = ({ onImport, onClose }) => { +const ImportConfigModal: React.FC = ({ onImport, onClose, isEmpty = false }) => { const [name, setName] = useState('') const [error, setError] = useState('') @@ -25,13 +26,22 @@ const ImportConfigModal: React.FC = ({ onImport, onClose return (
-

导入当前配置

+

{isEmpty ? '供应商列表为空' : '导入当前配置'}

-

- 将当前的 ~/.claude/settings.json 配置文件导入为一个新的供应商。 -
- 注意:这不会修改您当前的配置文件。 -

+ {isEmpty ? ( +

+ 当前还没有任何供应商配置。您可以将当前的 Claude Code 配置 + ~/.claude/settings.json 导入为一个供应商配置。 +
+ 注意:这不会修改您当前的配置文件。 +

+ ) : ( +

+ 将当前的 ~/.claude/settings.json 配置文件导入为一个新的供应商。 +
+ 注意:这不会修改您当前的配置文件。 +

+ )} {error &&
{error}
} @@ -44,7 +54,7 @@ const ImportConfigModal: React.FC = ({ onImport, onClose name="name" value={name} onChange={(e) => setName(e.target.value)} - placeholder="例如:我的当前配置" + placeholder={isEmpty ? "例如:我的默认配置" : "例如:我的当前配置"} required autoFocus /> @@ -52,7 +62,7 @@ const ImportConfigModal: React.FC = ({ onImport, onClose