From c5eacd1627412406b604755a47b1c2d1be80ab02 Mon Sep 17 00:00:00 2001 From: huzibaca Date: Sun, 6 Oct 2024 01:09:59 +0800 Subject: [PATCH] chore: revert --- src-tauri/src/core/tray.rs | 62 ++++++++++++++++------- src/components/setting/setting-system.tsx | 15 +++++- 2 files changed, 57 insertions(+), 20 deletions(-) diff --git a/src-tauri/src/core/tray.rs b/src-tauri/src/core/tray.rs index 29eaf587..7e8ac626 100644 --- a/src-tauri/src/core/tray.rs +++ b/src-tauri/src/core/tray.rs @@ -364,25 +364,51 @@ fn create_tray_menu( .unwrap(); let separator = &PredefinedMenuItem::separator(app_handle).unwrap(); + let enable = { + Config::verge() + .latest() + .enable_service_mode + .unwrap_or(false) + }; - let menu = tauri::menu::MenuBuilder::new(app_handle) - .items(&[ - open_window, - separator, - rule_mode, - global_mode, - direct_mode, - separator, - system_proxy, - tun_mode, - copy_env, - open_dir, - more, - separator, - quit, - ]) - .build() - .unwrap(); + let menu = if enable { + tauri::menu::MenuBuilder::new(app_handle) + .items(&[ + open_window, + separator, + rule_mode, + global_mode, + direct_mode, + separator, + system_proxy, + tun_mode, + copy_env, + open_dir, + more, + separator, + quit, + ]) + .build() + .unwrap() + } else { + tauri::menu::MenuBuilder::new(app_handle) + .items(&[ + open_window, + separator, + rule_mode, + global_mode, + direct_mode, + separator, + system_proxy, + copy_env, + open_dir, + more, + separator, + quit, + ]) + .build() + .unwrap() + }; Ok(menu) } diff --git a/src/components/setting/setting-system.tsx b/src/components/setting/setting-system.tsx index 5393b233..bb827b7b 100644 --- a/src/components/setting/setting-system.tsx +++ b/src/components/setting/setting-system.tsx @@ -67,9 +67,20 @@ const SettingSystem = ({ onError }: Props) => { onCatch={onError} onFormat={onSwitchFormat} onChange={(e) => { - onChangeData({ enable_tun_mode: e }); + if (serviceStatus !== "active") { + onChangeData({ enable_tun_mode: false }); + } else { + onChangeData({ enable_tun_mode: e }); + } + }} + onGuard={(e) => { + if (serviceStatus !== "active" && e) { + Notice.error(t("Please Enable Service Mode")); + return Promise.resolve(); + } else { + return patchVerge({ enable_tun_mode: e }); + } }} - onGuard={(e) => patchVerge({ enable_tun_mode: e })} >