From a0720eddcde5f581616949e6fa2ae77cbd316c43 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 7 Aug 2023 16:57:28 +0200 Subject: [PATCH] refactor: simplify the creation of menu actions --- src/main.rs | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/src/main.rs b/src/main.rs index 3e23d6a..6fd72cb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -318,26 +318,33 @@ impl SimpleComponent for App { let widgets = view_output!(); // create the header bar menu and its actions - let instance_sender = sender.clone(); - let instance_action: RelmAction = + let instance_action: RelmAction = { + let sender = sender.clone(); RelmAction::new_stateless(move |_| { - instance_sender.input(AppMsg::ChooseInstance); - }); - let accounts_sender = sender.clone(); - let accounts_action: RelmAction = RelmAction::new_stateless(move |_| { - accounts_sender.input(AppMsg::UpdateState(AppState::AccountsPage)); - }); - let profile_sender = sender.clone(); - let profile_action: RelmAction = RelmAction::new_stateless(move |_| { - let person = settings::get_current_account(); - if !person.name.is_empty() { - profile_sender.input(AppMsg::OpenPerson(PersonId(person.id))); - } - }); - let sender = sender.clone(); - let login_action: RelmAction = RelmAction::new_stateless(move |_| { - sender.input(AppMsg::UpdateState(AppState::Login)); - }); + sender.input(AppMsg::ChooseInstance); + }) + }; + let accounts_action: RelmAction = { + let sender = sender.clone(); + RelmAction::new_stateless(move |_| { + sender.input(AppMsg::UpdateState(AppState::AccountsPage)); + }) + }; + let profile_action: RelmAction = { + let sender = sender.clone(); + RelmAction::new_stateless(move |_| { + let person = settings::get_current_account(); + if !person.name.is_empty() { + sender.input(AppMsg::OpenPerson(PersonId(person.id))); + } + }) + }; + let login_action: RelmAction = { + let sender = sender.clone(); + RelmAction::new_stateless(move |_| { + sender.input(AppMsg::UpdateState(AppState::Login)); + }) + }; let site_info_action: RelmAction = { let sender = model.site_info.sender().clone(); RelmAction::new_stateless(move |_| {