fix: enhance system proxy toggle logic to account for autoproxy and sysproxy states

This commit is contained in:
Tunglies
2025-06-12 22:42:33 +08:00
Unverified
parent 16eaccb10e
commit cc39b2734e

View File

@@ -210,12 +210,29 @@ const SettingSystem = ({ onError }: Props) => {
}
>
<GuardState
value={enable_system_proxy ?? false}
value={
// 此行为跟随代理状态,异常关闭时按钮应当也关闭
// 如果 autoproxy.enable 和 sysproxy.enable 都为 false则强制为 false
autoproxy?.enable === false && sysproxy?.enable === false
? false
: (enable_system_proxy ?? false)
}
valueProps="checked"
onCatch={onError}
onFormat={onSwitchFormat}
onChange={(e) => onChangeData({ enable_system_proxy: e })}
onChange={(e) => {
if (autoproxy?.enable === false && sysproxy?.enable === false) {
onChangeData({ enable_system_proxy: !enable_system_proxy });
} else {
onChangeData({ enable_system_proxy: e });
}
}}
onGuard={async (e) => {
if (autoproxy?.enable === false && sysproxy?.enable === false) {
await patchVerge({ enable_system_proxy: !enable_system_proxy });
await updateProxyStatus();
return;
}
if (!e && verge?.auto_close_connection) {
closeAllConnections();
}
@@ -223,7 +240,14 @@ const SettingSystem = ({ onError }: Props) => {
await updateProxyStatus();
}}
>
<Switch edge="end" />
<Switch
edge="end"
checked={
autoproxy?.enable === false && sysproxy?.enable === false
? false
: (enable_system_proxy ?? false)
}
/>
</GuardState>
</SettingItem>