From baf74d95e13e111afc691861cff073cb8ee33b22 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Thu, 3 Sep 2026 01:49:28 -0600 Subject: [PATCH] fix(readarr): render the update all authors confirmation prompt --- src/ui/readarr_ui/library/library_ui_tests.rs | 13 +++++++ src/ui/readarr_ui/library/mod.rs | 15 ++++++++ ..._ui_renders_update_all_authors_prompt.snap | 38 +++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 src/ui/readarr_ui/library/snapshots/managarr__ui__readarr_ui__library__library_ui_tests__tests__snapshot_tests__library_ui_renders_update_all_authors_prompt.snap diff --git a/src/ui/readarr_ui/library/library_ui_tests.rs b/src/ui/readarr_ui/library/library_ui_tests.rs index 3714711e..2f51fddf 100644 --- a/src/ui/readarr_ui/library/library_ui_tests.rs +++ b/src/ui/readarr_ui/library/library_ui_tests.rs @@ -237,6 +237,19 @@ mod tests { insta::assert_snapshot!(output); } + #[test] + fn test_library_ui_renders_update_all_authors_prompt() { + let mut app = App::test_default_fully_populated(); + app.push_navigation_stack(ActiveReadarrBlock::Authors.into()); + app.push_navigation_stack(ActiveReadarrBlock::UpdateAllAuthorsPrompt.into()); + + let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| { + LibraryUi::draw(f, app, f.area()); + }); + + insta::assert_snapshot!(output); + } + #[test] fn test_library_ui_renders_author_details_over_library() { let mut app = App::test_default_fully_populated(); diff --git a/src/ui/readarr_ui/library/mod.rs b/src/ui/readarr_ui/library/mod.rs index cb0f901d..49190511 100644 --- a/src/ui/readarr_ui/library/mod.rs +++ b/src/ui/readarr_ui/library/mod.rs @@ -6,6 +6,10 @@ use ratatui::{ }; use crate::ui::widgets::managarr_table::ManagarrTable; +use crate::ui::widgets::{ + confirmation_prompt::ConfirmationPrompt, + popup::{Popup, Size}, +}; use crate::utils::convert_to_gb; use crate::{ app::App, @@ -44,6 +48,17 @@ impl DrawUi for LibraryUi { match route { _ if AuthorDetailsUi::accepts(route) => AuthorDetailsUi::draw(f, app, area), + Route::Readarr(ActiveReadarrBlock::UpdateAllAuthorsPrompt, _) => { + let confirmation_prompt = ConfirmationPrompt::new() + .title("Update All Authors") + .prompt("Do you want to update info and scan your disks for all of your authors?") + .yes_no_value(app.data.readarr_data.prompt_confirm); + + f.render_widget( + Popup::new(confirmation_prompt).size(Size::MediumPrompt), + f.area(), + ); + } _ => (), } } diff --git a/src/ui/readarr_ui/library/snapshots/managarr__ui__readarr_ui__library__library_ui_tests__tests__snapshot_tests__library_ui_renders_update_all_authors_prompt.snap b/src/ui/readarr_ui/library/snapshots/managarr__ui__readarr_ui__library__library_ui_tests__tests__snapshot_tests__library_ui_renders_update_all_authors_prompt.snap new file mode 100644 index 00000000..ced04cc7 --- /dev/null +++ b/src/ui/readarr_ui/library/snapshots/managarr__ui__readarr_ui__library__library_ui_tests__tests__snapshot_tests__library_ui_renders_update_all_authors_prompt.snap @@ -0,0 +1,38 @@ +--- +source: src/ui/readarr_ui/library/library_ui_tests.rs +expression: output +--- +───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + Name ▼ Status Quality Profile Metadata Profile Books Size Monitored Tags +=> Test Author Continuing Standard Standard 0 0.00 GB 🏷 alex + + + + + + + + + + + + + + ╭────────────────── Update All Authors ───────────────────╮ + │ Do you want to update info and scan your disks for all of │ + │ your authors? │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │╭────────────────────────────╮╭───────────────────────────╮│ + ││ Yes ││ No ││ + │╰────────────────────────────╯╰───────────────────────────╯│ + ╰───────────────────────────────────────────────────────────╯