简化界面:删除导入当前配置功能
- 移除 ImportConfigModal 组件及相关文件 - 删除头部的导入当前配置按钮 - 移除 importCurrentConfig 相关的 API 和 IPC 处理器 - 保留 importCurrentConfigAsDefault 功能用于首次启动 - 界面更简洁,专注核心功能:添加、编辑、切换、删除供应商 - 减少用户困惑,因为自动创建的默认供应商已经满足大部分需求
This commit is contained in:
@@ -8,7 +8,6 @@ import {
|
||||
saveProviderConfig,
|
||||
deleteProviderConfig,
|
||||
sanitizeProviderName,
|
||||
importCurrentConfig,
|
||||
importCurrentConfigAsDefault,
|
||||
getProviderConfigPath,
|
||||
fileExists,
|
||||
@@ -215,26 +214,6 @@ ipcMain.handle("switchProvider", async (_, providerId: string) => {
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.handle("importCurrentConfig", async (_, name: string) => {
|
||||
try {
|
||||
const result = await importCurrentConfig(name);
|
||||
|
||||
if (result.success && result.provider) {
|
||||
// 将导入的供应商添加到store中
|
||||
const providers = store.get("providers", {} as Record<string, Provider>);
|
||||
providers[result.provider.id] = result.provider;
|
||||
await store.set("providers", providers);
|
||||
|
||||
return { success: true, providerId: result.provider.id };
|
||||
}
|
||||
|
||||
return result;
|
||||
} catch (error: any) {
|
||||
console.error("导入配置失败:", error);
|
||||
return { success: false };
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.handle("importCurrentConfigAsDefault", async () => {
|
||||
try {
|
||||
const result = await importCurrentConfigAsDefault();
|
||||
|
||||
@@ -8,7 +8,6 @@ contextBridge.exposeInMainWorld('electronAPI', {
|
||||
deleteProvider: (id: string) => ipcRenderer.invoke('deleteProvider', id),
|
||||
updateProvider: (provider: Provider) => ipcRenderer.invoke('updateProvider', provider),
|
||||
switchProvider: (providerId: string) => ipcRenderer.invoke('switchProvider', providerId),
|
||||
importCurrentConfig: (name: string) => ipcRenderer.invoke('importCurrentConfig', name),
|
||||
importCurrentConfigAsDefault: () => ipcRenderer.invoke('importCurrentConfigAsDefault'),
|
||||
getClaudeCodeConfigPath: () => ipcRenderer.invoke('getClaudeCodeConfigPath'),
|
||||
selectConfigFile: () => ipcRenderer.invoke('selectConfigFile'),
|
||||
|
||||
@@ -136,60 +136,6 @@ export async function switchProvider(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入当前 settings.json 配置为一个供应商
|
||||
*/
|
||||
export async function importCurrentConfig(
|
||||
name: string
|
||||
): Promise<{ success: boolean; provider?: Provider }> {
|
||||
try {
|
||||
const { path: settingsPath } = getClaudeCodeConfig();
|
||||
|
||||
// 检查当前配置是否存在
|
||||
if (!(await fileExists(settingsPath))) {
|
||||
return { success: false };
|
||||
}
|
||||
|
||||
// 读取当前配置
|
||||
const configContent = await fs.readFile(settingsPath, "utf-8");
|
||||
const settingsConfig = JSON.parse(configContent);
|
||||
|
||||
// 生成唯一的供应商ID
|
||||
let providerId = name.toLowerCase().replace(/[^a-z0-9]/g, "-");
|
||||
let counter = 1;
|
||||
|
||||
// 检查ID是否已存在,如果存在则添加数字后缀
|
||||
while (await fileExists(getProviderConfigPath(providerId, name))) {
|
||||
providerId = `${name
|
||||
.toLowerCase()
|
||||
.replace(/[^a-z0-9]/g, "-")}-${counter}`;
|
||||
counter++;
|
||||
}
|
||||
|
||||
// 创建供应商对象
|
||||
const provider: Provider = {
|
||||
id: providerId,
|
||||
name: name,
|
||||
settingsConfig: settingsConfig,
|
||||
createdAt: Date.now(),
|
||||
updatedAt: Date.now(),
|
||||
};
|
||||
|
||||
// 保存为供应商配置
|
||||
const success = await saveProviderConfig(provider);
|
||||
|
||||
if (success) {
|
||||
console.log(`已导入当前配置为供应商: ${name} (${providerId})`);
|
||||
return { success: true, provider };
|
||||
} else {
|
||||
return { success: false };
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.error("导入当前配置失败:", error);
|
||||
return { success: false };
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入当前配置为默认供应商(不生成独立配置文件)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user