diff options
Diffstat (limited to 'src/event_handler/new_pl_keys.rs')
| -rw-r--r-- | src/event_handler/new_pl_keys.rs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/event_handler/new_pl_keys.rs b/src/event_handler/new_pl_keys.rs new file mode 100644 index 0000000..9150bec --- /dev/null +++ b/src/event_handler/new_pl_keys.rs @@ -0,0 +1,47 @@ +use crate::{ + app::{App, AppResult}, + ui::InputMode, +}; +use crossterm::event::{KeyCode, KeyEvent}; + +pub fn handle_new_pl_keys(key_event: KeyEvent, app: &mut App) -> AppResult<()> { + match key_event.code { + KeyCode::Esc => { + app.pl_new_pl_input.clear(); + app.reset_cursor(); + app.inputmode = InputMode::Normal; + } + KeyCode::Char(to_insert) => { + app.enter_char(to_insert); + } + KeyCode::Enter => { + let pl_name = &app.pl_new_pl_input; + + for song in app.pl_new_pl_songs_buffer.iter() { + app.conn.conn.pl_push(pl_name, song)?; + } + app.pl_new_pl_input.clear(); + + app.pl_list.list = App::get_playlist(&mut app.conn.conn)?; + app.append_list = App::get_append_list(&mut app.conn.conn)?; + + app.reset_cursor(); + app.inputmode = InputMode::Normal; + } + + KeyCode::Backspace => { + app.delete_char(); + } + + KeyCode::Left => { + app.move_cursor_left(); + } + + KeyCode::Right => { + app.move_cursor_right(); + } + + _ => {} + } + Ok(()) +} |
