refactor: Added accessor methods to servarr_data structs, replaced for loops with functional iterator chains, eliminated mutable state tracking, and updated network module to use get_or_insert_default() for modal options

This commit is contained in:
2025-12-04 10:02:32 -07:00
parent cba53e0841
commit a0073b65ad
10 changed files with 109 additions and 197 deletions
+9 -31
View File
@@ -225,26 +225,14 @@ impl Network<'_, '_> {
.cloned()
.collect();
if app.data.radarr_data.movie_details_modal.is_none() {
app.data.radarr_data.movie_details_modal = Some(MovieDetailsModal::default());
}
let modal = app
.data
.radarr_data
.movie_details_modal
.get_or_insert_default();
app
.data
.radarr_data
.movie_details_modal
.as_mut()
.unwrap()
.movie_cast
.set_items(cast_vec);
app
.data
.radarr_data
.movie_details_modal
.as_mut()
.unwrap()
.movie_crew
.set_items(crew_vec);
modal.movie_cast.set_items(cast_vec);
modal.movie_crew.set_items(crew_vec);
})
.await
}
@@ -452,16 +440,11 @@ impl Network<'_, '_> {
let mut reversed_movie_history_vec = movie_history_vec.to_vec();
reversed_movie_history_vec.reverse();
if app.data.radarr_data.movie_details_modal.is_none() {
app.data.radarr_data.movie_details_modal = Some(MovieDetailsModal::default())
}
app
.data
.radarr_data
.movie_details_modal
.as_mut()
.unwrap()
.get_or_insert_default()
.movie_history
.set_items(reversed_movie_history_vec)
})
@@ -487,16 +470,11 @@ impl Network<'_, '_> {
self
.handle_request::<(), Vec<RadarrRelease>>(request_props, |release_vec, mut app| {
if app.data.radarr_data.movie_details_modal.is_none() {
app.data.radarr_data.movie_details_modal = Some(MovieDetailsModal::default());
}
app
.data
.radarr_data
.movie_details_modal
.as_mut()
.unwrap()
.get_or_insert_default()
.movie_releases
.set_items(release_vec);
})
@@ -307,29 +307,21 @@ impl Network<'_, '_> {
self
.handle_request::<(), Vec<SonarrHistoryItem>>(request_props, |mut history_vec, mut app| {
if app.data.sonarr_data.series_history.is_none() {
app.data.sonarr_data.series_history = Some(StatefulTable::default());
}
if !matches!(
let is_sorting = matches!(
app.get_current_route(),
Route::Sonarr(ActiveSonarrBlock::SeriesHistorySortPrompt, _)
) {
);
let series_history = app
.data
.sonarr_data
.series_history
.get_or_insert_default();
if !is_sorting {
history_vec.sort_by(|a, b| a.id.cmp(&b.id));
app
.data
.sonarr_data
.series_history
.as_mut()
.unwrap()
.set_items(history_vec);
app
.data
.sonarr_data
.series_history
.as_mut()
.unwrap()
.apply_sorting_toggle(false);
series_history.set_items(history_vec);
series_history.apply_sorting_toggle(false);
}
})
.await