aboutsummaryrefslogtreecommitdiff
path: root/src/event/new_pl_keys.rs
diff options
context:
space:
mode:
authorkrolxon <krolyxon@tutanota.com>2024-06-12 18:13:05 +0530
committerkrolxon <krolyxon@tutanota.com>2024-06-12 18:13:05 +0530
commit65f76181d3cbee48096ebe0424869d4c78bac89b (patch)
tree6f2a6c54062f8111b0c7f88fdb4e947112ce72c7 /src/event/new_pl_keys.rs
parent8a8176e97b0b2e78b5c87573aa9598a79984af13 (diff)
new feature: add to new playlist
Diffstat (limited to 'src/event/new_pl_keys.rs')
-rw-r--r--src/event/new_pl_keys.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/event/new_pl_keys.rs b/src/event/new_pl_keys.rs
new file mode 100644
index 0000000..75c9e97
--- /dev/null
+++ b/src/event/new_pl_keys.rs
@@ -0,0 +1,45 @@
+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.reset_cursor();
+ app.inputmode = InputMode::Normal;
+ }
+
+ KeyCode::Backspace => {
+ app.delete_char();
+ }
+
+ KeyCode::Left => {
+ app.move_cursor_left();
+ }
+
+ KeyCode::Right => {
+ app.move_cursor_right();
+ }
+
+ _ => {}
+ }
+ Ok(())
+}