diff --git a/UPDATELOG.md b/UPDATELOG.md index 03e5fe8f..956407e6 100644 --- a/UPDATELOG.md +++ b/UPDATELOG.md @@ -28,7 +28,7 @@ - 改进 Windows 和 Unix 的 服务连接方式以及权限,避免无法连接服务或内核 - 修改内核默认日志级别为 Info - 支持通过桌面快捷方式重新打开应用 -- 主界面“当前节点”卡片每 5 分钟自动测试延迟 +- 主界面“当前节点”卡片新增自动延迟检测开关(默认关闭) - 支持订阅界面输入链接后回车导入 ### 🐞 修复问题 diff --git a/src-tauri/src/config/verge.rs b/src-tauri/src/config/verge.rs index 88b012eb..b1f0efa4 100644 --- a/src-tauri/src/config/verge.rs +++ b/src-tauri/src/config/verge.rs @@ -131,6 +131,9 @@ pub struct IVerge { /// 默认的延迟测试超时时间 pub default_latency_timeout: Option, + /// 是否自动检测当前节点延迟 + pub enable_auto_delay_detection: Option, + /// 是否使用内部的脚本支持,默认为真 pub enable_builtin_enhanced: Option, @@ -483,6 +486,7 @@ impl IVerge { patch!(auto_check_update); patch!(default_latency_test); patch!(default_latency_timeout); + patch!(enable_auto_delay_detection); patch!(enable_builtin_enhanced); patch!(proxy_layout_column); patch!(test_list); @@ -568,6 +572,7 @@ pub struct IVergeResponse { pub auto_check_update: Option, pub default_latency_test: Option, pub default_latency_timeout: Option, + pub enable_auto_delay_detection: Option, pub enable_builtin_enhanced: Option, pub proxy_layout_column: Option, pub test_list: Option>, @@ -642,6 +647,7 @@ impl From for IVergeResponse { auto_check_update: verge.auto_check_update, default_latency_test: verge.default_latency_test, default_latency_timeout: verge.default_latency_timeout, + enable_auto_delay_detection: verge.enable_auto_delay_detection, enable_builtin_enhanced: verge.enable_builtin_enhanced, proxy_layout_column: verge.proxy_layout_column, test_list: verge.test_list, diff --git a/src/components/home/current-proxy-card.tsx b/src/components/home/current-proxy-card.tsx index e516895f..7a56126c 100644 --- a/src/components/home/current-proxy-card.tsx +++ b/src/components/home/current-proxy-card.tsx @@ -101,6 +101,7 @@ export const CurrentProxyCard = () => { const theme = useTheme(); const { proxies, clashConfig, refreshProxy } = useAppData(); const { verge } = useVerge(); + const autoDelayEnabled = verge?.enable_auto_delay_detection ?? false; // 统一代理选择器 const { handleSelectChange } = useProxySelection({ @@ -452,6 +453,7 @@ export const CurrentProxyCard = () => { useEffect(() => { if (isDirectMode) return; + if (!autoDelayEnabled) return; if (!state.selection.group || !state.selection.proxy) return; let disposed = false; @@ -481,6 +483,7 @@ export const CurrentProxyCard = () => { isDirectMode, state.selection.group, state.selection.proxy, + autoDelayEnabled, ]); // 自定义渲染选择框中的值 diff --git a/src/components/setting/mods/misc-viewer.tsx b/src/components/setting/mods/misc-viewer.tsx index b0048fd8..b8dc3120 100644 --- a/src/components/setting/mods/misc-viewer.tsx +++ b/src/components/setting/mods/misc-viewer.tsx @@ -29,6 +29,7 @@ export const MiscViewer = forwardRef((props, ref) => { autoCheckUpdate: true, enableBuiltinEnhanced: true, proxyLayoutColumn: 6, + enableAutoDelayDetection: false, defaultLatencyTest: "", autoLogClean: 2, defaultLatencyTimeout: 10000, @@ -45,6 +46,7 @@ export const MiscViewer = forwardRef((props, ref) => { autoCheckUpdate: verge?.auto_check_update ?? true, enableBuiltinEnhanced: verge?.enable_builtin_enhanced ?? true, proxyLayoutColumn: verge?.proxy_layout_column || 6, + enableAutoDelayDetection: verge?.enable_auto_delay_detection ?? false, defaultLatencyTest: verge?.default_latency_test || "", autoLogClean: verge?.auto_log_clean || 0, defaultLatencyTimeout: verge?.default_latency_timeout || 10000, @@ -61,6 +63,7 @@ export const MiscViewer = forwardRef((props, ref) => { auto_check_update: values.autoCheckUpdate, enable_builtin_enhanced: values.enableBuiltinEnhanced, proxy_layout_column: values.proxyLayoutColumn, + enable_auto_delay_detection: values.enableAutoDelayDetection, default_latency_test: values.defaultLatencyTest, default_latency_timeout: values.defaultLatencyTimeout, auto_log_clean: values.autoLogClean as any, @@ -265,6 +268,25 @@ export const MiscViewer = forwardRef((props, ref) => { + + + + + setValues((v) => ({ ...v, enableAutoDelayDetection: c })) + } + sx={{ marginLeft: "auto" }} + /> + +