diff --git a/src/ui/radarr_ui/collections/collection_details_ui.rs b/src/ui/radarr_ui/collections/collection_details_ui.rs index cdd434f..2b16be6 100644 --- a/src/ui/radarr_ui/collections/collection_details_ui.rs +++ b/src/ui/radarr_ui/collections/collection_details_ui.rs @@ -33,7 +33,7 @@ impl DrawUi for CollectionDetailsUi { if let Route::Radarr(active_radarr_block, context_option) = route { if let Some(context) = context_option { return COLLECTION_DETAILS_BLOCKS.contains(&active_radarr_block) - && context == ActiveRadarrBlock::CollectionDetails; + || context == ActiveRadarrBlock::CollectionDetails; } return COLLECTION_DETAILS_BLOCKS.contains(&active_radarr_block); diff --git a/src/ui/radarr_ui/collections/collection_details_ui_tests.rs b/src/ui/radarr_ui/collections/collection_details_ui_tests.rs index b52d666..871c688 100644 --- a/src/ui/radarr_ui/collections/collection_details_ui_tests.rs +++ b/src/ui/radarr_ui/collections/collection_details_ui_tests.rs @@ -25,5 +25,12 @@ mod tests { ) .into() )); + assert!(CollectionDetailsUi::accepts( + ( + ActiveRadarrBlock::AddMoviePrompt, + Some(ActiveRadarrBlock::CollectionDetails) + ) + .into() + )); } } diff --git a/src/ui/radarr_ui/library/mod.rs b/src/ui/radarr_ui/library/mod.rs index 3afc071..25bec4e 100644 --- a/src/ui/radarr_ui/library/mod.rs +++ b/src/ui/radarr_ui/library/mod.rs @@ -44,25 +44,32 @@ impl DrawUi for LibraryUi { fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) { let route = app.get_current_route(); - draw_library(f, app, area); - - match route { - _ if MovieDetailsUi::accepts(route) => MovieDetailsUi::draw(f, app, area), - _ if AddMovieUi::accepts(route) => AddMovieUi::draw(f, app, area), - _ if EditMovieUi::accepts(route) => EditMovieUi::draw(f, app, area), - _ if DeleteMovieUi::accepts(route) => DeleteMovieUi::draw(f, app, area), - Route::Radarr(ActiveRadarrBlock::UpdateAllMoviesPrompt, _) => { - let confirmation_prompt = ConfirmationPrompt::new() - .title("Update All Movies") - .prompt("Do you want to update info and scan your disks for all of your movies?") - .yes_no_value(app.data.radarr_data.prompt_confirm); - - f.render_widget( - Popup::new(confirmation_prompt).size(Size::MediumPrompt), - f.area(), - ); + if let Route::Radarr(_, context_option) = route { + if context_option.is_some() && AddMovieUi::accepts(route) { + AddMovieUi::draw(f, app, area); + return; + } + + draw_library(f, app, area); + + match route { + _ if MovieDetailsUi::accepts(route) => MovieDetailsUi::draw(f, app, area), + _ if AddMovieUi::accepts(route) => AddMovieUi::draw(f, app, area), + _ if EditMovieUi::accepts(route) => EditMovieUi::draw(f, app, area), + _ if DeleteMovieUi::accepts(route) => DeleteMovieUi::draw(f, app, area), + Route::Radarr(ActiveRadarrBlock::UpdateAllMoviesPrompt, _) => { + let confirmation_prompt = ConfirmationPrompt::new() + .title("Update All Movies") + .prompt("Do you want to update info and scan your disks for all of your movies?") + .yes_no_value(app.data.radarr_data.prompt_confirm); + + f.render_widget( + Popup::new(confirmation_prompt).size(Size::MediumPrompt), + f.area(), + ); + } + _ => (), } - _ => (), } } }