From 6a6bde3764ba80263769069defa1b7dfcfadc2a9 Mon Sep 17 00:00:00 2001 From: Dyna <108321411+Ahaohaohao@users.noreply.github.com> Date: Mon, 28 Jul 2025 11:24:16 +0800 Subject: [PATCH] refactor: external-controller-cors to always show (#4243) * refactor: external-controller-cors to always show * i18n: update translation * Update UPDATELOG.md --- UPDATELOG.md | 1 + .../setting/mods/external-controller-cors.tsx | 68 +++++++------------ src/locales/en.json | 2 +- src/locales/zh.json | 2 +- 4 files changed, 26 insertions(+), 47 deletions(-) diff --git a/UPDATELOG.md b/UPDATELOG.md index 94c256afc..9e34c6868 100644 --- a/UPDATELOG.md +++ b/UPDATELOG.md @@ -43,6 +43,7 @@ - 修复 `Windows` 安装器参数使用错误问题 - 修复 `IPC` 迁移后节点测速功能异常 - 修复 `IPC` 迁移后连接上下行速率计算功能异常 +- 修复 `External-Controller-Cors` 无法保存所需前置条件 ### 🔧 技术改进 diff --git a/src/components/setting/mods/external-controller-cors.tsx b/src/components/setting/mods/external-controller-cors.tsx index 3d9391e50..abfa38504 100644 --- a/src/components/setting/mods/external-controller-cors.tsx +++ b/src/components/setting/mods/external-controller-cors.tsx @@ -25,29 +25,19 @@ const DEV_URLS = [ "http://localhost:3000", ]; -// 判断是否处于开发模式 -const isDevMode = import.meta.env.MODE === "development"; - -// 过滤开发环境URL -const filterDevOrigins = (origins: string[]) => { - if (isDevMode) { - return origins; - } - return origins.filter((origin: string) => !DEV_URLS.includes(origin.trim())); -}; - // 获取完整的源列表,包括开发URL const getFullOrigins = (origins: string[]) => { - if (!isDevMode) { - return origins; - } - // 合并现有源和开发URL,并去重 const allOrigins = [...origins, ...DEV_URLS]; const uniqueOrigins = [...new Set(allOrigins)]; return uniqueOrigins; }; +// 过滤基础URL(确保后续添加) +const filterBaseOriginsForUI = (origins: string[]) => { + return origins.filter((origin: string) => !DEV_URLS.includes(origin.trim())); +}; + // 统一使用的按钮样式 const buttonStyle = { borderRadius: "8px", @@ -63,16 +53,6 @@ const buttonStyle = { }, }; -// 保存按钮样式 -const saveButtonStyle = { - ...buttonStyle, - backgroundColor: "#165DFF", - color: "white", - "&:hover": { - backgroundColor: "#0E42D2", - }, -}; - // 添加按钮样式 const addButtonStyle = { ...buttonStyle, @@ -110,10 +90,10 @@ export const HeaderConfiguration = forwardRef( allowOrigins: string[]; }>(() => { const cors = clash?.["external-controller-cors"]; - const origins = cors?.["allow-origins"] ?? ["*"]; + const origins = cors?.["allow-origins"] ?? []; return { allowPrivateNetwork: cors?.["allow-private-network"] ?? true, - allowOrigins: filterDevOrigins(origins), + allowOrigins: filterBaseOriginsForUI(origins), }; }); @@ -178,10 +158,10 @@ export const HeaderConfiguration = forwardRef( useImperativeHandle(ref, () => ({ open: () => { const cors = clash?.["external-controller-cors"]; - const origins = cors?.["allow-origins"] ?? ["*"]; + const origins = cors?.["allow-origins"] ?? []; setCorsConfig({ allowPrivateNetwork: cors?.["allow-private-network"] ?? true, - allowOrigins: filterDevOrigins(origins), + allowOrigins: filterBaseOriginsForUI(origins), }); setOpen(true); }, @@ -257,7 +237,7 @@ export const HeaderConfiguration = forwardRef( color="error" size="small" onClick={() => handleDeleteOrigin(index)} - disabled={corsConfig.allowOrigins.length <= 1} + disabled={corsConfig.allowOrigins.length <= 0} sx={deleteButtonStyle} > @@ -273,24 +253,22 @@ export const HeaderConfiguration = forwardRef( {t("Add")} - {isDevMode && ( +
-
- {t( - "Development mode: Automatically includes Tauri and localhost origins", - )} -
+ {t("Always included origins: {{urls}}", { + urls: DEV_URLS.join(", "), + })}
- )} +
diff --git a/src/locales/en.json b/src/locales/en.json index 8fc592408..8650e095c 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -652,7 +652,7 @@ "Allowed Origins": "Allowed Origins", "Please enter a valid url": "Please enter a valid url", "Add": "Add", - "Development mode: Automatically includes Tauri and localhost origins": "Development mode: Automatically includes Tauri and localhost origins", + "Always included origins: {{urls}}": "Always included origins: {{urls}}", "Invalid regular expression": "Invalid regular expression", "Copy Version": "Copy Version", "Version copied to clipboard": "Version copied to clipboard", diff --git a/src/locales/zh.json b/src/locales/zh.json index 5a8659106..ac5747272 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -652,7 +652,7 @@ "Allowed Origins": "允许的来源", "Please enter a valid url": "请输入有效的网址", "Add": "添加", - "Development mode: Automatically includes Tauri and localhost origins": "开发模式:自动包含 Tauri 和 localhost 来源", + "Always included origins: {{urls}}": "始终包含来源:{{urls}}", "Invalid regular expression": "无效的正则表达式", "Copy Version": "复制Verge版本号", "Version copied to clipboard": "Verge版本已复制到剪贴板",