refactor(movie_details_handler): Use the new handle_table_events macro
This commit is contained in:
@@ -344,6 +344,9 @@ mod test_utils {
|
|||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_history
|
.movie_history
|
||||||
.set_items(vec![$crate::models::radarr_models::MovieHistoryItem::default()]);
|
.set_items(vec![$crate::models::radarr_models::MovieHistoryItem::default()]);
|
||||||
|
movie_details_modal.movie_cast.set_items(vec![$crate::models::radarr_models::Credit::default()]);
|
||||||
|
movie_details_modal.movie_crew.set_items(vec![$crate::models::radarr_models::Credit::default()]);
|
||||||
|
movie_details_modal.movie_releases.set_items(vec![$crate::models::radarr_models::RadarrRelease::default()]);
|
||||||
app.data.radarr_data.movie_details_modal = Some(movie_details_modal);
|
app.data.radarr_data.movie_details_modal = Some(movie_details_modal);
|
||||||
let mut series_history = $crate::models::stateful_table::StatefulTable::default();
|
let mut series_history = $crate::models::stateful_table::StatefulTable::default();
|
||||||
series_history.set_items(vec![
|
series_history.set_items(vec![
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
|
use crate::models::HorizontallyScrollableText;
|
||||||
use serde_json::Number;
|
use serde_json::Number;
|
||||||
|
|
||||||
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
|
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
|
||||||
use crate::app::App;
|
use crate::app::App;
|
||||||
use crate::event::Key;
|
use crate::event::Key;
|
||||||
|
use crate::handle_table_events;
|
||||||
|
use crate::handlers::table_handler::TableHandlingProps;
|
||||||
use crate::handlers::{handle_prompt_toggle, KeyEventHandler};
|
use crate::handlers::{handle_prompt_toggle, KeyEventHandler};
|
||||||
use crate::models::radarr_models::RadarrRelease;
|
use crate::models::radarr_models::{Credit, MovieHistoryItem, RadarrRelease};
|
||||||
use crate::models::servarr_data::radarr::radarr_data::{
|
use crate::models::servarr_data::radarr::radarr_data::{
|
||||||
ActiveRadarrBlock, EDIT_MOVIE_SELECTION_BLOCKS, MOVIE_DETAILS_BLOCKS,
|
ActiveRadarrBlock, EDIT_MOVIE_SELECTION_BLOCKS, MOVIE_DETAILS_BLOCKS,
|
||||||
};
|
};
|
||||||
@@ -24,7 +27,58 @@ pub(super) struct MovieDetailsHandler<'a, 'b> {
|
|||||||
_context: Option<ActiveRadarrBlock>,
|
_context: Option<ActiveRadarrBlock>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'a, 'b> MovieDetailsHandler<'a, 'b> {
|
||||||
|
handle_table_events!(
|
||||||
|
self,
|
||||||
|
movie_releases,
|
||||||
|
self
|
||||||
|
.app
|
||||||
|
.data
|
||||||
|
.radarr_data
|
||||||
|
.movie_details_modal
|
||||||
|
.as_mut()
|
||||||
|
.unwrap()
|
||||||
|
.movie_releases,
|
||||||
|
RadarrRelease
|
||||||
|
);
|
||||||
|
handle_table_events!(
|
||||||
|
self,
|
||||||
|
movie_history,
|
||||||
|
self
|
||||||
|
.app
|
||||||
|
.data
|
||||||
|
.radarr_data
|
||||||
|
.movie_details_modal
|
||||||
|
.as_mut()
|
||||||
|
.unwrap()
|
||||||
|
.movie_history,
|
||||||
|
MovieHistoryItem
|
||||||
|
);
|
||||||
|
handle_table_events!(self, movie_cast, self.app.data.radarr_data.movie_details_modal.as_mut().unwrap().movie_cast, Credit);
|
||||||
|
handle_table_events!(self, movie_crew, self.app.data.radarr_data.movie_details_modal.as_mut().unwrap().movie_crew, Credit);
|
||||||
|
}
|
||||||
|
|
||||||
impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<'a, 'b> {
|
impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<'a, 'b> {
|
||||||
|
fn handle(&mut self) {
|
||||||
|
let movie_history_table_handling_props =
|
||||||
|
TableHandlingProps::new(ActiveRadarrBlock::MovieHistory.into());
|
||||||
|
let movie_releases_table_handling_props =
|
||||||
|
TableHandlingProps::new(ActiveRadarrBlock::ManualSearch.into())
|
||||||
|
.sorting_block(ActiveRadarrBlock::ManualSearchSortPrompt.into())
|
||||||
|
.sort_options(releases_sorting_options());
|
||||||
|
let movie_cast_table_handling_props =
|
||||||
|
TableHandlingProps::new(ActiveRadarrBlock::Cast.into());
|
||||||
|
let movie_crew_table_handling_props = TableHandlingProps::new(ActiveRadarrBlock::Crew.into());
|
||||||
|
|
||||||
|
if !self.handle_movie_history_table_events(movie_history_table_handling_props)
|
||||||
|
&& !self.handle_movie_releases_table_events(movie_releases_table_handling_props)
|
||||||
|
&& !self.handle_movie_cast_table_events(movie_cast_table_handling_props)
|
||||||
|
&& !self.handle_movie_crew_table_events(movie_crew_table_handling_props)
|
||||||
|
{
|
||||||
|
self.handle_key_event();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn accepts(active_block: ActiveRadarrBlock) -> bool {
|
fn accepts(active_block: ActiveRadarrBlock) -> bool {
|
||||||
MOVIE_DETAILS_BLOCKS.contains(&active_block)
|
MOVIE_DETAILS_BLOCKS.contains(&active_block)
|
||||||
}
|
}
|
||||||
@@ -83,54 +137,6 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.movie_details
|
.movie_details
|
||||||
.scroll_up(),
|
.scroll_up(),
|
||||||
ActiveRadarrBlock::MovieHistory => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_history
|
|
||||||
.scroll_up(),
|
|
||||||
ActiveRadarrBlock::Cast => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_cast
|
|
||||||
.scroll_up(),
|
|
||||||
ActiveRadarrBlock::Crew => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_crew
|
|
||||||
.scroll_up(),
|
|
||||||
ActiveRadarrBlock::ManualSearch => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.scroll_up(),
|
|
||||||
ActiveRadarrBlock::ManualSearchSortPrompt => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.sort
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.scroll_up(),
|
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -146,54 +152,6 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.movie_details
|
.movie_details
|
||||||
.scroll_down(),
|
.scroll_down(),
|
||||||
ActiveRadarrBlock::MovieHistory => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_history
|
|
||||||
.scroll_down(),
|
|
||||||
ActiveRadarrBlock::Cast => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_cast
|
|
||||||
.scroll_down(),
|
|
||||||
ActiveRadarrBlock::Crew => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_crew
|
|
||||||
.scroll_down(),
|
|
||||||
ActiveRadarrBlock::ManualSearch => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.scroll_down(),
|
|
||||||
ActiveRadarrBlock::ManualSearchSortPrompt => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.sort
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.scroll_down(),
|
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -209,54 +167,6 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.movie_details
|
.movie_details
|
||||||
.scroll_to_top(),
|
.scroll_to_top(),
|
||||||
ActiveRadarrBlock::MovieHistory => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_history
|
|
||||||
.scroll_to_top(),
|
|
||||||
ActiveRadarrBlock::Cast => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_cast
|
|
||||||
.scroll_to_top(),
|
|
||||||
ActiveRadarrBlock::Crew => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_crew
|
|
||||||
.scroll_to_top(),
|
|
||||||
ActiveRadarrBlock::ManualSearch => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.scroll_to_top(),
|
|
||||||
ActiveRadarrBlock::ManualSearchSortPrompt => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.sort
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.scroll_to_top(),
|
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -272,54 +182,6 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.movie_details
|
.movie_details
|
||||||
.scroll_to_bottom(),
|
.scroll_to_bottom(),
|
||||||
ActiveRadarrBlock::MovieHistory => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_history
|
|
||||||
.scroll_to_bottom(),
|
|
||||||
ActiveRadarrBlock::Cast => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_cast
|
|
||||||
.scroll_to_bottom(),
|
|
||||||
ActiveRadarrBlock::Crew => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_crew
|
|
||||||
.scroll_to_bottom(),
|
|
||||||
ActiveRadarrBlock::ManualSearch => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.scroll_to_bottom(),
|
|
||||||
ActiveRadarrBlock::ManualSearchSortPrompt => self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.sort
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.scroll_to_bottom(),
|
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -385,18 +247,6 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<
|
|||||||
|
|
||||||
self.app.pop_navigation_stack();
|
self.app.pop_navigation_stack();
|
||||||
}
|
}
|
||||||
ActiveRadarrBlock::ManualSearchSortPrompt => {
|
|
||||||
self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.apply_sorting();
|
|
||||||
self.app.pop_navigation_stack();
|
|
||||||
}
|
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -414,8 +264,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<
|
|||||||
}
|
}
|
||||||
ActiveRadarrBlock::AutomaticallySearchMoviePrompt
|
ActiveRadarrBlock::AutomaticallySearchMoviePrompt
|
||||||
| ActiveRadarrBlock::UpdateAndScanPrompt
|
| ActiveRadarrBlock::UpdateAndScanPrompt
|
||||||
| ActiveRadarrBlock::ManualSearchConfirmPrompt
|
| ActiveRadarrBlock::ManualSearchConfirmPrompt => {
|
||||||
| ActiveRadarrBlock::ManualSearchSortPrompt => {
|
|
||||||
self.app.pop_navigation_stack();
|
self.app.pop_navigation_stack();
|
||||||
self.app.data.radarr_data.prompt_confirm = false;
|
self.app.data.radarr_data.prompt_confirm = false;
|
||||||
}
|
}
|
||||||
@@ -459,20 +308,6 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<
|
|||||||
.app
|
.app
|
||||||
.pop_and_push_navigation_stack(self.active_radarr_block.into());
|
.pop_and_push_navigation_stack(self.active_radarr_block.into());
|
||||||
}
|
}
|
||||||
_ if key == DEFAULT_KEYBINDINGS.sort.key => {
|
|
||||||
self
|
|
||||||
.app
|
|
||||||
.data
|
|
||||||
.radarr_data
|
|
||||||
.movie_details_modal
|
|
||||||
.as_mut()
|
|
||||||
.unwrap()
|
|
||||||
.movie_releases
|
|
||||||
.sorting(releases_sorting_options());
|
|
||||||
self
|
|
||||||
.app
|
|
||||||
.push_navigation_stack(ActiveRadarrBlock::ManualSearchSortPrompt.into());
|
|
||||||
}
|
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
ActiveRadarrBlock::AutomaticallySearchMoviePrompt => {
|
ActiveRadarrBlock::AutomaticallySearchMoviePrompt => {
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ mod tests {
|
|||||||
#[values(DEFAULT_KEYBINDINGS.up.key, DEFAULT_KEYBINDINGS.down.key)] key: Key,
|
#[values(DEFAULT_KEYBINDINGS.up.key, DEFAULT_KEYBINDINGS.down.key)] key: Key,
|
||||||
) {
|
) {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::MovieHistory.into());
|
||||||
let mut movie_details_modal = MovieDetailsModal::default();
|
let mut movie_details_modal = MovieDetailsModal::default();
|
||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_history
|
.movie_history
|
||||||
@@ -232,6 +233,7 @@ mod tests {
|
|||||||
#[values(DEFAULT_KEYBINDINGS.up.key, DEFAULT_KEYBINDINGS.down.key)] key: Key,
|
#[values(DEFAULT_KEYBINDINGS.up.key, DEFAULT_KEYBINDINGS.down.key)] key: Key,
|
||||||
) {
|
) {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::Cast.into());
|
||||||
let mut movie_details_modal = MovieDetailsModal::default();
|
let mut movie_details_modal = MovieDetailsModal::default();
|
||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_cast
|
.movie_cast
|
||||||
@@ -317,6 +319,7 @@ mod tests {
|
|||||||
#[values(DEFAULT_KEYBINDINGS.up.key, DEFAULT_KEYBINDINGS.down.key)] key: Key,
|
#[values(DEFAULT_KEYBINDINGS.up.key, DEFAULT_KEYBINDINGS.down.key)] key: Key,
|
||||||
) {
|
) {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::Crew.into());
|
||||||
let mut movie_details_modal = MovieDetailsModal::default();
|
let mut movie_details_modal = MovieDetailsModal::default();
|
||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_crew
|
.movie_crew
|
||||||
@@ -402,6 +405,7 @@ mod tests {
|
|||||||
#[values(DEFAULT_KEYBINDINGS.up.key, DEFAULT_KEYBINDINGS.down.key)] key: Key,
|
#[values(DEFAULT_KEYBINDINGS.up.key, DEFAULT_KEYBINDINGS.down.key)] key: Key,
|
||||||
) {
|
) {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::ManualSearch.into());
|
||||||
let mut movie_details_modal = MovieDetailsModal::default();
|
let mut movie_details_modal = MovieDetailsModal::default();
|
||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_releases
|
.movie_releases
|
||||||
@@ -666,6 +670,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_movie_history_home_end() {
|
fn test_movie_history_home_end() {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::MovieHistory.into());
|
||||||
let mut movie_details_modal = MovieDetailsModal::default();
|
let mut movie_details_modal = MovieDetailsModal::default();
|
||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_history
|
.movie_history
|
||||||
@@ -783,6 +788,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_cast_home_end() {
|
fn test_cast_home_end() {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::Cast.into());
|
||||||
let mut movie_details_modal = MovieDetailsModal::default();
|
let mut movie_details_modal = MovieDetailsModal::default();
|
||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_cast
|
.movie_cast
|
||||||
@@ -888,6 +894,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_crew_home_end() {
|
fn test_crew_home_end() {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::Crew.into());
|
||||||
let mut movie_details_modal = MovieDetailsModal::default();
|
let mut movie_details_modal = MovieDetailsModal::default();
|
||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_crew
|
.movie_crew
|
||||||
@@ -993,6 +1000,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_manual_search_home_end() {
|
fn test_manual_search_home_end() {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::ManualSearch.into());
|
||||||
let mut movie_details_modal = MovieDetailsModal::default();
|
let mut movie_details_modal = MovieDetailsModal::default();
|
||||||
movie_details_modal
|
movie_details_modal
|
||||||
.movie_releases
|
.movie_releases
|
||||||
@@ -1430,12 +1438,12 @@ mod tests {
|
|||||||
ActiveRadarrBlock::AutomaticallySearchMoviePrompt,
|
ActiveRadarrBlock::AutomaticallySearchMoviePrompt,
|
||||||
ActiveRadarrBlock::UpdateAndScanPrompt,
|
ActiveRadarrBlock::UpdateAndScanPrompt,
|
||||||
ActiveRadarrBlock::ManualSearchConfirmPrompt,
|
ActiveRadarrBlock::ManualSearchConfirmPrompt,
|
||||||
ActiveRadarrBlock::ManualSearchSortPrompt
|
|
||||||
)]
|
)]
|
||||||
prompt_block: ActiveRadarrBlock,
|
prompt_block: ActiveRadarrBlock,
|
||||||
#[values(true, false)] is_ready: bool,
|
#[values(true, false)] is_ready: bool,
|
||||||
) {
|
) {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.data.radarr_data = create_test_radarr_data();
|
||||||
app.is_loading = is_ready;
|
app.is_loading = is_ready;
|
||||||
app.data.radarr_data.prompt_confirm = true;
|
app.data.radarr_data.prompt_confirm = true;
|
||||||
app.push_navigation_stack(ActiveRadarrBlock::Movies.into());
|
app.push_navigation_stack(ActiveRadarrBlock::Movies.into());
|
||||||
@@ -1446,6 +1454,18 @@ mod tests {
|
|||||||
assert!(!app.data.radarr_data.prompt_confirm);
|
assert!(!app.data.radarr_data.prompt_confirm);
|
||||||
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
|
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[rstest]
|
||||||
|
fn test_manual_search_sort_prompt_esc() {
|
||||||
|
let mut app = App::default();
|
||||||
|
app.data.radarr_data = create_test_radarr_data();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::Movies.into());
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::ManualSearchSortPrompt.into());
|
||||||
|
|
||||||
|
MovieDetailsHandler::with(ESC_KEY, &mut app, ActiveRadarrBlock::ManualSearchSortPrompt, None).handle();
|
||||||
|
|
||||||
|
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mod test_handle_key_char {
|
mod test_handle_key_char {
|
||||||
@@ -1542,6 +1562,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_sort_key() {
|
fn test_sort_key() {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
app.push_navigation_stack(ActiveRadarrBlock::ManualSearch.into());
|
||||||
let mut modal = MovieDetailsModal::default();
|
let mut modal = MovieDetailsModal::default();
|
||||||
modal.movie_releases.set_items(release_vec());
|
modal.movie_releases.set_items(release_vec());
|
||||||
app.data.radarr_data.movie_details_modal = Some(modal);
|
app.data.radarr_data.movie_details_modal = Some(modal);
|
||||||
|
|||||||
@@ -216,9 +216,10 @@ macro_rules! handle_table_events {
|
|||||||
_ if props.sorting_block.is_some()
|
_ if props.sorting_block.is_some()
|
||||||
&& $self.app.get_current_route() == *props.sorting_block.as_ref().unwrap() =>
|
&& $self.app.get_current_route() == *props.sorting_block.as_ref().unwrap() =>
|
||||||
{
|
{
|
||||||
let sort_by_fn = props.sort_by_fn.expect("Sort by function is required");
|
if let Some(sort_by_fn) = props.sort_by_fn {
|
||||||
|
$table.items.sort_by(sort_by_fn);
|
||||||
|
}
|
||||||
|
|
||||||
$table.items.sort_by(sort_by_fn);
|
|
||||||
$table.apply_sorting();
|
$table.apply_sorting();
|
||||||
$self.app.pop_navigation_stack();
|
$self.app.pop_navigation_stack();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user