refactor: rename global API from electronAPI to api and update references

This commit is contained in:
Jason
2025-08-25 10:30:45 +08:00
parent d3adfc480d
commit d78013562c
5 changed files with 15 additions and 15 deletions

View File

@@ -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 (

View File

@@ -32,7 +32,7 @@ const ProviderList: React.FC<ProviderListProps> = ({
const handleUrlClick = async (url: string) => {
try {
await window.electronAPI.openExternal(url)
await window.api.openExternal(url)
} catch (error) {
console.error('打开链接失败:', error)
}

View File

@@ -14,7 +14,7 @@ interface ImportResult {
message?: string;
}
// Tauri API 封装,保持与 Electron API 相同的接口
// Tauri API 封装,提供统一的全局 API 接口
export const tauriAPI = {
// 获取所有供应商
getProviders: async (): Promise<Record<string, Provider>> => {
@@ -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 = {

View File

@@ -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便于平台特定样式

2
src/vite-env.d.ts vendored
View File

@@ -15,7 +15,7 @@ interface ConfigStatus {
declare global {
interface Window {
electronAPI: {
api: {
getProviders: () => Promise<Record<string, Provider>>;
getCurrentProvider: () => Promise<string>;
addProvider: (provider: Provider) => Promise<boolean>;