refactor: simplify the creation of menu actions

This commit is contained in:
Bnyro 2023-08-07 16:57:28 +02:00
parent 7908213245
commit a0720eddcd
1 changed files with 26 additions and 19 deletions

View File

@ -318,26 +318,33 @@ impl SimpleComponent for App {
let widgets = view_output!(); let widgets = view_output!();
// create the header bar menu and its actions // create the header bar menu and its actions
let instance_sender = sender.clone(); let instance_action: RelmAction<ChangeInstanceAction> = {
let instance_action: RelmAction<ChangeInstanceAction> = let sender = sender.clone();
RelmAction::new_stateless(move |_| { RelmAction::new_stateless(move |_| {
instance_sender.input(AppMsg::ChooseInstance); sender.input(AppMsg::ChooseInstance);
}); })
let accounts_sender = sender.clone(); };
let accounts_action: RelmAction<AccountsAction> = RelmAction::new_stateless(move |_| { let accounts_action: RelmAction<AccountsAction> = {
accounts_sender.input(AppMsg::UpdateState(AppState::AccountsPage)); let sender = sender.clone();
}); RelmAction::new_stateless(move |_| {
let profile_sender = sender.clone(); sender.input(AppMsg::UpdateState(AppState::AccountsPage));
let profile_action: RelmAction<ProfileAction> = RelmAction::new_stateless(move |_| { })
let person = settings::get_current_account(); };
if !person.name.is_empty() { let profile_action: RelmAction<ProfileAction> = {
profile_sender.input(AppMsg::OpenPerson(PersonId(person.id))); let sender = sender.clone();
} RelmAction::new_stateless(move |_| {
}); let person = settings::get_current_account();
let sender = sender.clone(); if !person.name.is_empty() {
let login_action: RelmAction<LoginAction> = RelmAction::new_stateless(move |_| { sender.input(AppMsg::OpenPerson(PersonId(person.id)));
sender.input(AppMsg::UpdateState(AppState::Login)); }
}); })
};
let login_action: RelmAction<LoginAction> = {
let sender = sender.clone();
RelmAction::new_stateless(move |_| {
sender.input(AppMsg::UpdateState(AppState::Login));
})
};
let site_info_action: RelmAction<SiteInfoAction> = { let site_info_action: RelmAction<SiteInfoAction> = {
let sender = model.site_info.sender().clone(); let sender = model.site_info.sender().clone();
RelmAction::new_stateless(move |_| { RelmAction::new_stateless(move |_| {