From 60c4cf1098f1ae2fd0ff1ae4ed51d2e21f5f4719 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Wed, 7 Jan 2026 14:00:02 -0700 Subject: [PATCH] fix: Fixed a bug in all Servarr implementations to not try to get the current selection of a search table when an error is returned from the API --- src/models/mod.rs | 4 ++++ src/models/model_tests.rs | 5 +++++ src/ui/radarr_ui/library/add_movie_ui.rs | 2 +- src/ui/sonarr_ui/library/add_series_ui.rs | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/models/mod.rs b/src/models/mod.rs index 3eea7c3..b887941 100644 --- a/src/models/mod.rs +++ b/src/models/mod.rs @@ -272,6 +272,10 @@ impl HorizontallyScrollableText { } } } + + pub fn is_empty(&self) -> bool { + self.text.is_empty() + } } #[derive(Clone, PartialEq, Eq, Debug)] diff --git a/src/models/model_tests.rs b/src/models/model_tests.rs index 1b8dc3e..95b6dd8 100644 --- a/src/models/model_tests.rs +++ b/src/models/model_tests.rs @@ -176,6 +176,11 @@ mod tests { assert_str_eq!(horizontally_scrollable_text.text, test_text); } + #[test] + fn test_horizontally_scrollable_text_is_empty() { + assert_is_empty!(HorizontallyScrollableText::from("")) + } + #[test] fn test_horizontally_scrollable_text_scroll_text_left() { let horizontally_scrollable_text = HorizontallyScrollableText::from("Test string"); diff --git a/src/ui/radarr_ui/library/add_movie_ui.rs b/src/ui/radarr_ui/library/add_movie_ui.rs index f3ad937..eef00b3 100644 --- a/src/ui/radarr_ui/library/add_movie_ui.rs +++ b/src/ui/radarr_ui/library/add_movie_ui.rs @@ -70,7 +70,7 @@ impl DrawUi for AddMovieUi { fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) { let is_loading = app.is_loading || app.data.radarr_data.add_searched_movies.is_none(); let current_selection = - if let Some(add_searched_movies) = app.data.radarr_data.add_searched_movies.as_ref() { + if let Some(add_searched_movies) = app.data.radarr_data.add_searched_movies.as_ref() && app.error.is_empty() { add_searched_movies.current_selection().clone() } else { AddMovieSearchResult::default() diff --git a/src/ui/sonarr_ui/library/add_series_ui.rs b/src/ui/sonarr_ui/library/add_series_ui.rs index 6d09c02..8fd733c 100644 --- a/src/ui/sonarr_ui/library/add_series_ui.rs +++ b/src/ui/sonarr_ui/library/add_series_ui.rs @@ -65,7 +65,7 @@ impl DrawUi for AddSeriesUi { fn draw_add_series_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) { let is_loading = app.is_loading || app.data.sonarr_data.add_searched_series.is_none(); let current_selection = - if let Some(add_searched_series) = app.data.sonarr_data.add_searched_series.as_ref() { + if let Some(add_searched_series) = app.data.sonarr_data.add_searched_series.as_ref() && app.error.is_empty() { add_searched_series.current_selection().clone() } else { AddSeriesSearchResult::default()