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