aboutsummaryrefslogtreecommitdiff
path: root/src/event_handler/new_pl_keys.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/event_handler/new_pl_keys.rs')
-rw-r--r--src/event_handler/new_pl_keys.rs47
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(())
+}