feat(readarr): add the indexers UI

Render the indexers table with its delete and test popups, the edit
indexer prompt with separate torrent and usenet field grids, the prompt
for configuring all indexer settings, and the test all indexers results
table. All four are dispatched from the Readarr UI.

Extract indexer_flag_text, decorate_test_result_row_with_style and the
two prompt highlight builders as named functions so their branches can
be unit tested. Rendering to a string discards colour, so a snapshot
cannot tell a success style from a failure style.
This commit is contained in:
Dark-Alex-17 committed 2026-09-08 10:38:52 -06:00
1 parent a7178a481b
commit 59346973fc
48 files changed
+2975 -3

No files matched your search

+3
View File
@@ -24,6 +24,7 @@ use super::{
};
use crate::ui::readarr_ui::blocklist::BlocklistUi;
use crate::ui::readarr_ui::downloads::DownloadsUi;
use crate::ui::readarr_ui::indexers::IndexersUi;
use crate::ui::readarr_ui::root_folders::RootFoldersUi;
use crate::ui::readarr_ui::system::SystemUi;
use crate::ui::utils::{extract_monitored_disk_space_vec, extract_monitored_root_folders};
@@ -42,6 +43,7 @@ use crate::{
mod blocklist;
mod downloads;
mod history;
mod indexers;
mod library;
mod readarr_ui_utils;
mod root_folders;
@@ -68,6 +70,7 @@ impl DrawUi for ReadarrUi {
_ if BlocklistUi::accepts(route) => BlocklistUi::draw(f, app, content_area),
_ if HistoryUi::accepts(route) => HistoryUi::draw(f, app, content_area),
_ if RootFoldersUi::accepts(route) => RootFoldersUi::draw(f, app, content_area),
_ if IndexersUi::accepts(route) => IndexersUi::draw(f, app, content_area),
_ if SystemUi::accepts(route) => SystemUi::draw(f, app, content_area),
_ => (),
}