From d78013562cf11c79e720d0ec73bc41b7bf51492d Mon Sep 17 00:00:00 2001 From: Jason Date: Mon, 25 Aug 2025 10:30:45 +0800 Subject: [PATCH] refactor: rename global API from electronAPI to api and update references --- src/App.tsx | 18 +++++++++--------- src/components/ProviderList.tsx | 2 +- src/lib/tauri-api.ts | 6 +++--- src/main.tsx | 2 +- src/vite-env.d.ts | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index b84296e..6cd3e99 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -69,8 +69,8 @@ function App() { }, []); const loadProviders = async () => { - const loadedProviders = await window.electronAPI.getProviders(); - const currentId = await window.electronAPI.getCurrentProvider(); + const loadedProviders = await window.api.getProviders(); + const currentId = await window.api.getCurrentProvider(); setProviders(loadedProviders); setCurrentProviderId(currentId); @@ -81,7 +81,7 @@ function App() { }; const loadConfigStatus = async () => { - const status = await window.electronAPI.getClaudeConfigStatus(); + const status = await window.api.getClaudeConfigStatus(); setConfigStatus({ exists: Boolean(status?.exists), path: String(status?.path || "") }); }; @@ -95,14 +95,14 @@ function App() { ...provider, id: generateId(), }; - await window.electronAPI.addProvider(newProvider); + await window.api.addProvider(newProvider); await loadProviders(); setIsAddModalOpen(false); }; const handleEditProvider = async (provider: Provider) => { try { - await window.electronAPI.updateProvider(provider); + await window.api.updateProvider(provider); await loadProviders(); setEditingProviderId(null); // 显示编辑成功提示 @@ -121,7 +121,7 @@ function App() { title: "删除供应商", message: `确定要删除供应商 "${provider?.name}" 吗?此操作无法撤销。`, onConfirm: async () => { - await window.electronAPI.deleteProvider(id); + await window.api.deleteProvider(id); await loadProviders(); setConfirmDialog(null); showNotification("供应商删除成功", "success"); @@ -130,7 +130,7 @@ function App() { }; const handleSwitchProvider = async (id: string) => { - const success = await window.electronAPI.switchProvider(id); + const success = await window.api.switchProvider(id); if (success) { setCurrentProviderId(id); // 显示重启提示 @@ -147,7 +147,7 @@ function App() { // 自动导入现有配置为"default"供应商 const handleAutoImportDefault = async () => { try { - const result = await window.electronAPI.importCurrentConfigAsDefault() + const result = await window.api.importCurrentConfigAsDefault() if (result.success) { await loadProviders() @@ -161,7 +161,7 @@ function App() { } const handleOpenConfigFolder = async () => { - await window.electronAPI.openConfigFolder(); + await window.api.openConfigFolder(); }; return ( diff --git a/src/components/ProviderList.tsx b/src/components/ProviderList.tsx index 233c71f..d1e5cde 100644 --- a/src/components/ProviderList.tsx +++ b/src/components/ProviderList.tsx @@ -32,7 +32,7 @@ const ProviderList: React.FC = ({ const handleUrlClick = async (url: string) => { try { - await window.electronAPI.openExternal(url) + await window.api.openExternal(url) } catch (error) { console.error('打开链接失败:', error) } diff --git a/src/lib/tauri-api.ts b/src/lib/tauri-api.ts index 4cafc86..f731bf4 100644 --- a/src/lib/tauri-api.ts +++ b/src/lib/tauri-api.ts @@ -14,7 +14,7 @@ interface ImportResult { message?: string; } -// Tauri API 封装,保持与 Electron API 相同的接口 +// Tauri API 封装,提供统一的全局 API 接口 export const tauriAPI = { // 获取所有供应商 getProviders: async (): Promise> => { @@ -144,9 +144,9 @@ export const tauriAPI = { // 创建全局 API 对象,兼容现有代码 if (typeof window !== 'undefined') { - // 始终绑定到 window.electronAPI,以避免环境判断失误导致未绑定而报错 + // 绑定到 window.api,避免 Electron 命名造成误解 // API 内部已做 try/catch,非 Tauri 环境下也会安全返回默认值 - (window as any).electronAPI = tauriAPI; + (window as any).api = tauriAPI; // 提供平台信息 (window as any).platform = { diff --git a/src/main.tsx b/src/main.tsx index 359efc1..d22f8b0 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -2,7 +2,7 @@ import React from 'react' import ReactDOM from 'react-dom/client' import App from './App' import './index.css' -// 导入 Tauri API(自动绑定到 window.electronAPI) +// 导入 Tauri API(自动绑定到 window.api) import './lib/tauri-api' // 根据平台添加 body class,便于平台特定样式 diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 9ad54ba..b63597e 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -15,7 +15,7 @@ interface ConfigStatus { declare global { interface Window { - electronAPI: { + api: { getProviders: () => Promise>; getCurrentProvider: () => Promise; addProvider: (provider: Provider) => Promise;