From 1c3ba448a24d7ba80514681ed1a0d0327f6cf62f Mon Sep 17 00:00:00 2001 From: Danilo Leal Date: Sun, 2 Nov 2025 16:40:35 -0300 Subject: [PATCH] Take context menu out of the use_state --- crates/settings_ui/src/settings_ui.rs | 60 +++++++++++++-------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/crates/settings_ui/src/settings_ui.rs b/crates/settings_ui/src/settings_ui.rs index f78d7cd41a137d01fee09b5ef7dbee669c2d7e54..1c59c75ad5e9bf8d3292c80979a63b5236ab2b11 100644 --- a/crates/settings_ui/src/settings_ui.rs +++ b/crates/settings_ui/src/settings_ui.rs @@ -3453,37 +3453,35 @@ where } else { current_value_label.to_string() }, - window.use_state(cx, |window, cx| { - ContextMenu::new(window, cx, move |mut menu, _, _| { - for (&value, &label) in std::iter::zip(variants(), labels()) { - let file = file.clone(); - menu = menu.toggleable_entry( - if should_do_titlecase { - label.to_title_case() - } else { - label.to_string() - }, - value == current_value, - IconPosition::End, - None, - move |_, cx| { - if value == current_value { - return; - } - update_settings_file( - file.clone(), - field.json_path, - cx, - move |settings, _cx| { - (field.write)(settings, Some(value)); - }, - ) - .log_err(); // todo(settings_ui) don't log err - }, - ); - } - menu - }) + ContextMenu::build(window, cx, move |mut menu, _, _| { + for (&value, &label) in std::iter::zip(variants(), labels()) { + let file = file.clone(); + menu = menu.toggleable_entry( + if should_do_titlecase { + label.to_title_case() + } else { + label.to_string() + }, + value == current_value, + IconPosition::End, + None, + move |_, cx| { + if value == current_value { + return; + } + update_settings_file( + file.clone(), + field.json_path, + cx, + move |settings, _cx| { + (field.write)(settings, Some(value)); + }, + ) + .log_err(); // todo(settings_ui) don't log err + }, + ); + } + menu }), ) .tab_index(0)