Add new command for logging out of iamb session (#162)

This commit is contained in:
Aaditya Dhruv 2023-10-13 00:58:59 -05:00 committed by Ulyssa
parent b2b47ed7a0
commit 3b86be0545
No known key found for this signature in database
GPG key ID: F2873CA2997B83C5
4 changed files with 77 additions and 2 deletions

View file

@ -115,12 +115,12 @@ use modalkit::{
WindowAction,
WindowContainer,
},
base::{MoveDir1D, OpenTarget, RepeatType},
base::{CloseFlags, MoveDir1D, OpenTarget, RepeatType, TabTarget},
context::Resolve,
key::KeyManager,
store::Store,
},
input::{bindings::BindingMachine, dialog::Pager, key::TerminalKey},
input::{bindings::BindingMachine, dialog::Pager, dialog::PromptYesNo, key::TerminalKey},
widgets::{
cmdbar::CommandBarState,
screen::{FocusList, Screen, ScreenState, TabLayoutDescription},
@ -571,6 +571,21 @@ impl Application {
Ok(vec![(action.into(), ctx)])
},
HomeserverAction::Logout(user, true) => {
self.worker.logout(user)?;
let flags = CloseFlags::QUIT | CloseFlags::FORCE;
let act = TabAction::Close(TabTarget::All, flags);
Ok(vec![(act.into(), ctx)])
},
HomeserverAction::Logout(user, false) => {
let msg = "Would you like to logout?";
let act = IambAction::from(HomeserverAction::Logout(user, true));
let prompt = PromptYesNo::new(msg, vec![Action::from(act)]);
let prompt = Box::new(prompt);
Err(UIError::NeedConfirm(prompt))
},
}
}