purple_ssh/app/
pickers.rs1use ratatui::widgets::ListState;
7
8use crate::app::App;
9
10impl App {
11 pub fn close_password_picker(&mut self) {
13 log::debug!("[purple] close_password_picker");
14 self.ui.password_picker.open = false;
15 }
16
17 pub fn close_key_picker(&mut self) {
19 log::debug!("[purple] close_key_picker");
20 self.ui.key_picker.open = false;
21 }
22
23 pub fn close_proxyjump_picker(&mut self) {
25 log::debug!("[purple] close_proxyjump_picker");
26 self.ui.proxyjump_picker.open = false;
27 }
28
29 pub fn close_vault_role_picker(&mut self) {
31 log::debug!("[purple] close_vault_role_picker");
32 self.ui.vault_role_picker.open = false;
33 }
34
35 pub fn close_region_picker(&mut self) {
37 log::debug!("[purple] close_region_picker");
38 self.ui.region_picker.open = false;
39 }
40
41 pub fn open_password_picker(&mut self) {
43 log::debug!("[purple] open_password_picker");
44 self.ui.password_picker.open = true;
45 self.ui.password_picker.list = ListState::default();
46 self.ui.password_picker.list.select(Some(0));
47 }
48
49 pub fn open_key_picker(&mut self) {
53 log::debug!("[purple] open_key_picker");
54 self.scan_keys();
55 self.ui.key_picker.open = true;
56 self.ui.key_picker.list = ListState::default();
57 if !self.keys.list.is_empty() {
58 self.ui.key_picker.list.select(Some(0));
59 }
60 }
61
62 pub fn open_proxyjump_picker(&mut self) {
66 log::debug!("[purple] open_proxyjump_picker");
67 self.ui.proxyjump_picker.open = true;
68 self.ui.proxyjump_picker.list = ListState::default();
69 if let Some(idx) = self.proxyjump_first_host_index() {
70 self.ui.proxyjump_picker.list.select(Some(idx));
71 }
72 }
73
74 pub fn open_vault_role_picker(&mut self) {
78 log::debug!("[purple] open_vault_role_picker");
79 self.ui.vault_role_picker.open = true;
80 self.ui.vault_role_picker.list = ListState::default();
81 self.ui.vault_role_picker.list.select(Some(0));
82 }
83
84 pub fn open_region_picker(&mut self) {
88 log::debug!("[purple] open_region_picker");
89 self.ui.region_picker.open = true;
90 self.ui.region_picker.cursor = 0;
91 }
92}