perf(tray): skip proxy data when menu groups are disabled

This commit is contained in:
Tunglies
2026-08-17 00:42:59 +08:00
parent ac37945ee4
commit 1feba6f073
+13 -4
View File
@@ -607,8 +607,12 @@ async fn create_tray_menu(
) -> Result<tauri::menu::Menu<Wry>> {
let current_proxy_mode = mode.unwrap_or("");
let mut verge_settings = Config::verge().await.latest_arc();
let fetch_proxy_groups =
options.include_proxy_groups && verge_settings.tray_proxy_groups_display_mode.as_deref() != Some("disable");
// TODO: should update tray menu again when it was timeout error
let (proxy_nodes_data, runtime_proxy_groups_order) = if options.include_proxy_groups {
let (proxy_nodes_data, runtime_proxy_groups_order) = if fetch_proxy_groups {
let proxy_nodes_data =
tokio::time::timeout(Duration::from_millis(1000), handle::Handle::mihomo().get_proxies())
.await
@@ -636,13 +640,18 @@ async fn create_tray_menu(
(None, None)
};
let proxy_group_order_map = runtime_proxy_groups_order;
if fetch_proxy_groups {
verge_settings = Config::verge().await.latest_arc();
}
let verge_settings = Config::verge().await.latest_arc();
let tray_proxy_groups_display_mode = verge_settings
.tray_proxy_groups_display_mode
.as_deref()
.unwrap_or("default");
let include_proxy_groups = options.include_proxy_groups && tray_proxy_groups_display_mode != "disable";
let proxy_group_order_map = runtime_proxy_groups_order;
let show_outbound_modes_inline = verge_settings.tray_inline_outbound_modes.unwrap_or(false);
let version = env!("CARGO_PKG_VERSION");
@@ -724,7 +733,7 @@ async fn create_tray_menu(
&profile_menu_items_refs,
)?;
let (proxies_menu, inline_proxy_items) = if options.include_proxy_groups {
let (proxies_menu, inline_proxy_items) = if include_proxy_groups {
let proxy_sub_menus =
create_subcreate_proxy_menu_item(app_handle, current_proxy_mode, proxy_group_order_map, proxy_nodes_data);