//! settings-screen key-input handler (split out of tui/input.rs). use super::{App, AppEvent, KeyCode, KeyEvent, MnwApiClient, Screen, load_settings, mpsc}; pub(crate) async fn handle_settings_input( key: KeyEvent, app: &mut App, screen: &mut Screen, api: &MnwApiClient, tx: &mpsc::Sender, ) { match key.code { KeyCode::Char('j') | KeyCode::Down => app.move_down(screen), KeyCode::Char('k') | KeyCode::Up => app.move_up(screen), KeyCode::Esc => { *screen = Screen::Home; app.ssh_keys.clear(); app.settings_status = None; app.selected_index = 0; } KeyCode::Char('r' | 'R') => { app.loading = true; app.settings_status = None; let api = api.clone(); let user_id = app.user.user_id.clone(); let tx = tx.clone(); tokio::spawn(async move { load_settings(&api, &user_id, &tx).await; }); } _ => {} } }