perf(tray): avoid cloning runtime config

This commit is contained in:
Tunglies
2026-08-10 22:13:33 +08:00
parent a1c27f5e8b
commit c11791137f
+6 -22
View File
@@ -614,18 +614,8 @@ async fn create_tray_menu(
.await
.map_or(None, |res| res.ok());
let runtime_proxy_groups_order = cmd::get_runtime_config()
.await
.map_err(|e| {
logging!(
error,
Type::Cmd,
"Failed to fetch runtime proxy groups for tray menu: {e}"
);
})
.ok()
.flatten()
.map(|config| {
let runtime = Config::runtime().await.latest_arc();
let runtime_proxy_groups_order = runtime.config.as_ref().map(|config| {
config
.get("proxy-groups")
.and_then(|groups| groups.as_sequence())
@@ -634,8 +624,9 @@ async fn create_tray_menu(
.iter()
.filter_map(|group| group.get("name"))
.filter_map(|name| name.as_str())
.map(|name| name.into())
.collect::<Vec<String>>()
.enumerate()
.map(|(index, name)| (name.into(), index))
.collect::<HashMap<String, usize>>()
})
.unwrap_or_default()
});
@@ -645,14 +636,7 @@ async fn create_tray_menu(
(None, None)
};
let proxy_group_order_map: Option<HashMap<smartstring::SmartString<smartstring::LazyCompact>, usize>> =
runtime_proxy_groups_order.as_ref().map(|group_names| {
group_names
.iter()
.enumerate()
.map(|(index, name)| (name.clone(), index))
.collect::<HashMap<String, usize>>()
});
let proxy_group_order_map = runtime_proxy_groups_order;
let verge_settings = Config::verge().await.latest_arc();
let tray_proxy_groups_display_mode = verge_settings