From 754125e3a3b4cf707cb7edacad7704536f8e239c Mon Sep 17 00:00:00 2001 From: BigUncle Date: Wed, 30 Jul 2025 23:15:57 +0800 Subject: [PATCH] feat(ui): add API_TIMEOUT_MS setting to configuration UI - Add API_TIMEOUT_MS input field to SettingsDialog - Add translations for the new setting in both English and Chinese locales - Update ConfigProvider to handle API_TIMEOUT_MS configuration --- ui/config.example.json | 1 + ui/src/components/ConfigProvider.tsx | 3 +++ ui/src/components/SettingsDialog.tsx | 4 ++++ ui/src/locales/en.json | 3 ++- ui/src/locales/zh.json | 3 ++- 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ui/config.example.json b/ui/config.example.json index 3e7abe8..db70bf3 100644 --- a/ui/config.example.json +++ b/ui/config.example.json @@ -4,6 +4,7 @@ "HOST": "127.0.0.1", "PORT": 8080, "APIKEY": "1", + "API_TIMEOUT_MS": 600000, "transformers": [ { "path": "/Users/abc/.claude-code-router/plugins/gemini-cli.js", diff --git a/ui/src/components/ConfigProvider.tsx b/ui/src/components/ConfigProvider.tsx index 05f954d..30906e8 100644 --- a/ui/src/components/ConfigProvider.tsx +++ b/ui/src/components/ConfigProvider.tsx @@ -41,6 +41,7 @@ export interface Config { HOST: string; PORT: number; APIKEY: string; + API_TIMEOUT_MS: string; transformers: Transformer[]; Providers: Provider[]; Router: RouterConfig; @@ -116,6 +117,7 @@ export function ConfigProvider({ children }: ConfigProviderProps) { HOST: typeof data.HOST === 'string' ? data.HOST : '127.0.0.1', PORT: typeof data.PORT === 'number' ? data.PORT : 3456, APIKEY: typeof data.APIKEY === 'string' ? data.APIKEY : '', + API_TIMEOUT_MS: typeof data.API_TIMEOUT_MS === 'string' ? data.API_TIMEOUT_MS : '600000', transformers: Array.isArray(data.transformers) ? data.transformers : [], Providers: Array.isArray(data.Providers) ? data.Providers : [], Router: data.Router && typeof data.Router === 'object' ? { @@ -146,6 +148,7 @@ export function ConfigProvider({ children }: ConfigProviderProps) { HOST: '127.0.0.1', PORT: 3456, APIKEY: '', + API_TIMEOUT_MS: '600000', transformers: [], Providers: [], Router: { diff --git a/ui/src/components/SettingsDialog.tsx b/ui/src/components/SettingsDialog.tsx index 643f035..37d7be6 100644 --- a/ui/src/components/SettingsDialog.tsx +++ b/ui/src/components/SettingsDialog.tsx @@ -57,6 +57,10 @@ export function SettingsDialog({ isOpen, onOpenChange }: SettingsDialogProps) { setConfig({ ...config, PORT: parseInt(e.target.value, 10) })} className="transition-all-ease focus:scale-[1.01]" /> +
+ + setConfig({ ...config, API_TIMEOUT_MS: e.target.value })} className="transition-all-ease focus:scale-[1.01]" /> +
setConfig({ ...config, APIKEY: e.target.value })} className="transition-all-ease focus:scale-[1.01]" /> diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json index 9f1528a..e60f1f5 100644 --- a/ui/src/locales/en.json +++ b/ui/src/locales/en.json @@ -30,7 +30,8 @@ "claude_path": "Claude Path", "host": "Host", "port": "Port", - "apikey": "API Key" + "apikey": "API Key", + "timeout": "API Timeout (ms)" }, "transformers": { "title": "Custom Transformers", diff --git a/ui/src/locales/zh.json b/ui/src/locales/zh.json index 4e1dbe9..b9e882b 100644 --- a/ui/src/locales/zh.json +++ b/ui/src/locales/zh.json @@ -30,7 +30,8 @@ "claude_path": "Claude 路径", "host": "主机", "port": "端口", - "apikey": "API 密钥" + "apikey": "API 密钥", + "timeout": "API 超时时间 (毫秒)" }, "transformers": { "title": "自定义转换器",