From 35bc6cf31ced4ac3ebdd89ea7e9e52917c40fa16 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Sun, 8 Dec 2024 12:35:12 -0700 Subject: [PATCH] refactor(downloads_handler): Use the new handle_table_events macro --- src/handlers/sonarr_handlers/downloads/mod.rs | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/handlers/sonarr_handlers/downloads/mod.rs b/src/handlers/sonarr_handlers/downloads/mod.rs index 1d08deb..c4990c6 100644 --- a/src/handlers/sonarr_handlers/downloads/mod.rs +++ b/src/handlers/sonarr_handlers/downloads/mod.rs @@ -1,10 +1,14 @@ +use crate::models::HorizontallyScrollableText; use crate::app::key_binding::DEFAULT_KEYBINDINGS; use crate::app::App; use crate::event::Key; +use crate::handle_table_events; use crate::handlers::sonarr_handlers::handle_change_tab_left_right_keys; use crate::handlers::{handle_clear_errors, handle_prompt_toggle, KeyEventHandler}; +use crate::handlers::table_handler::TableHandlingProps; use crate::models::servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, DOWNLOADS_BLOCKS}; use crate::models::Scrollable; +use crate::models::sonarr_models::DownloadRecord; use crate::network::sonarr_network::SonarrEvent; #[cfg(test)] @@ -18,7 +22,19 @@ pub(super) struct DownloadsHandler<'a, 'b> { _context: Option, } +impl<'a, 'b> DownloadsHandler<'a, 'b> { + handle_table_events!(self, downloads, self.app.data.sonarr_data.downloads, DownloadRecord); +} + impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for DownloadsHandler<'a, 'b> { + fn handle(&mut self) { + let download_table_handling_props = TableHandlingProps::new(ActiveSonarrBlock::Downloads.into()); + + if !self.handle_downloads_table_events(download_table_handling_props) { + self.handle_key_event(); + } + } + fn accepts(active_block: ActiveSonarrBlock) -> bool { DOWNLOADS_BLOCKS.contains(&active_block) } @@ -46,27 +62,15 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for DownloadsHandler<'a, } fn handle_scroll_up(&mut self) { - if self.active_sonarr_block == ActiveSonarrBlock::Downloads { - self.app.data.sonarr_data.downloads.scroll_up() - } } fn handle_scroll_down(&mut self) { - if self.active_sonarr_block == ActiveSonarrBlock::Downloads { - self.app.data.sonarr_data.downloads.scroll_down() - } } fn handle_home(&mut self) { - if self.active_sonarr_block == ActiveSonarrBlock::Downloads { - self.app.data.sonarr_data.downloads.scroll_to_top() - } } fn handle_end(&mut self) { - if self.active_sonarr_block == ActiveSonarrBlock::Downloads { - self.app.data.sonarr_data.downloads.scroll_to_bottom() - } } fn handle_delete(&mut self) {