diff --git a/src/input/main_input.rs b/src/input/main_input.rs index 4bdae92..fcc4f39 100644 --- a/src/input/main_input.rs +++ b/src/input/main_input.rs @@ -939,10 +939,10 @@ pub async fn handle(app: &mut App, key: KeyEvent) { } else { // В режиме списка чатов - навигация стрелками и переключение папок match key.code { - KeyCode::Down => { + KeyCode::Down | KeyCode::Char('j') | KeyCode::Char('о') => { app.next_chat(); } - KeyCode::Up => { + KeyCode::Up | KeyCode::Char('k') | KeyCode::Char('ц') => { app.previous_chat(); } // Цифры 1-9 - переключение папок @@ -972,4 +972,3 @@ pub async fn handle(app: &mut App, key: KeyEvent) { } } } - diff --git a/tests/input_navigation.rs b/tests/input_navigation.rs index 6eb5a42..de3b8b4 100644 --- a/tests/input_navigation.rs +++ b/tests/input_navigation.rs @@ -39,17 +39,17 @@ async fn test_arrow_navigation_in_chat_list() { handle_main_input(&mut app, key(KeyCode::Down)).await; assert_eq!(app.chat_list_state.selected(), Some(0)); - // Up - возвращаемся на второй - handle_main_input(&mut app, key(KeyCode::Up)).await; - assert_eq!(app.chat_list_state.selected(), Some(1)); - - // Up - возвращаемся на первый - handle_main_input(&mut app, key(KeyCode::Up)).await; - assert_eq!(app.chat_list_state.selected(), Some(0)); - // Up - циклим в конец (циклическая навигация) handle_main_input(&mut app, key(KeyCode::Up)).await; assert_eq!(app.chat_list_state.selected(), Some(2)); + + // Up - на второй чат + handle_main_input(&mut app, key(KeyCode::Up)).await; + assert_eq!(app.chat_list_state.selected(), Some(1)); + + // Up - на первый чат + handle_main_input(&mut app, key(KeyCode::Up)).await; + assert_eq!(app.chat_list_state.selected(), Some(0)); } /// Test: Vim-style j/k навигация по списку чатов