perf: 优化系统代理开关逻辑

This commit is contained in:
ezequielnick 2025-03-03 10:19:55 +08:00
parent 59bd7e8a08
commit 6ab920ddbd
3 changed files with 17 additions and 5 deletions

View File

@ -34,12 +34,17 @@ const SysproxySwitcher: React.FC<Props> = (props) => {
})
const transform = tf ? { x: tf.x, y: tf.y, scaleX: 1, scaleY: 1 } : null
const onChange = async (enable: boolean): Promise<void> => {
const previousState = !enable
// 立即更新UI
try {
await triggerSysProxy(enable)
await patchAppConfig({ sysProxy: { enable } })
await triggerSysProxy(enable)
window.electron.ipcRenderer.send('updateFloatingWindow')
window.electron.ipcRenderer.send('updateTrayMenu')
} catch (e) {
await patchAppConfig({ sysProxy: { enable: previousState } })
alert(e)
}
}

View File

@ -92,14 +92,21 @@ const Sysproxy: React.FC = () => {
}
const onSave = async (): Promise<void> => {
// check valid TODO
await patchAppConfig({ sysProxy: values })
setChanged(false)
// 保存当前的开关状态,以便在失败时恢复
const previousState = values.enable
try {
await patchAppConfig({ sysProxy: values })
await triggerSysProxy(true)
await patchAppConfig({ sysProxy: { enable: true } })
setChanged(false)
} catch (e) {
setValues({ ...values, enable: previousState })
setChanged(true)
alert(e)
await patchAppConfig({ sysProxy: { enable: false } })
}
}

View File

@ -7,7 +7,7 @@ import Profiles from '@renderer/pages/profiles'
import Logs from '@renderer/pages/logs'
import Connections from '@renderer/pages/connections'
import Mihomo from '@renderer/pages/mihomo'
import Sysproxy from '@renderer/pages/syspeoxy'
import Sysproxy from '@renderer/pages/sysproxy'
import Tun from '@renderer/pages/tun'
import Resources from '@renderer/pages/resources'
import DNS from '@renderer/pages/dns'