refactored managarr table initializer so a mutable app reference can be passed
This commit is contained in:
@@ -80,13 +80,14 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
Layout::vertical([Constraint::Length(3), Constraint::Fill(0)])
|
||||
.margin(1)
|
||||
.areas(area);
|
||||
let block_content = &app
|
||||
let block_content = app
|
||||
.data
|
||||
.radarr_data
|
||||
.add_movie_search
|
||||
.as_ref()
|
||||
.expect("add_movie_search must be populated")
|
||||
.text;
|
||||
.text
|
||||
.clone();
|
||||
let offset = app
|
||||
.data
|
||||
.radarr_data
|
||||
@@ -95,6 +96,16 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
.expect("add_movie_search must be populated")
|
||||
.offset
|
||||
.load(Ordering::SeqCst);
|
||||
let ui_scroll_tick_count = app.ui_scroll_tick_count;
|
||||
let library_tmdb_ids: Vec<i64> = app
|
||||
.data
|
||||
.radarr_data
|
||||
.movies
|
||||
.items
|
||||
.iter()
|
||||
.map(|m| m.tmdb_id)
|
||||
.collect();
|
||||
|
||||
let search_results_row_mapping = |movie: &AddMovieSearchResult| {
|
||||
let (hours, minutes) = convert_runtime(movie.runtime);
|
||||
let imdb_rating = movie
|
||||
@@ -123,14 +134,7 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
} else {
|
||||
format!("{rotten_tomatoes_rating}%")
|
||||
};
|
||||
let in_library = if app
|
||||
.data
|
||||
.radarr_data
|
||||
.movies
|
||||
.items
|
||||
.iter()
|
||||
.any(|mov| mov.tmdb_id == movie.tmdb_id)
|
||||
{
|
||||
let in_library = if library_tmdb_ids.contains(&movie.tmdb_id) {
|
||||
"✔"
|
||||
} else {
|
||||
""
|
||||
@@ -139,7 +143,7 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
movie.title.scroll_left_or_reset(
|
||||
get_width_from_percentage(area, 27),
|
||||
*movie == current_selection,
|
||||
app.ui_scroll_tick_count == 0,
|
||||
ui_scroll_tick_count == 0,
|
||||
);
|
||||
|
||||
Row::new(vec![
|
||||
@@ -157,7 +161,7 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
|
||||
match active_radarr_block {
|
||||
ActiveRadarrBlock::AddMovieSearchInput => {
|
||||
let search_box = InputBox::new(block_content)
|
||||
let search_box = InputBox::new(&block_content)
|
||||
.offset(offset)
|
||||
.block(title_block_centered("Add Movie"));
|
||||
|
||||
@@ -181,7 +185,8 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
| ActiveRadarrBlock::AddMovieAlreadyInLibrary
|
||||
| ActiveRadarrBlock::AddMovieTagsInput => {
|
||||
let search_results_table = ManagarrTable::new(
|
||||
app.data.radarr_data.add_searched_movies.as_mut(),
|
||||
app,
|
||||
|app| app.data.radarr_data.add_searched_movies.as_mut(),
|
||||
search_results_row_mapping,
|
||||
)
|
||||
.loading(is_loading)
|
||||
@@ -212,7 +217,7 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
}
|
||||
|
||||
f.render_widget(
|
||||
InputBox::new(block_content)
|
||||
InputBox::new(&block_content)
|
||||
.offset(offset)
|
||||
.block(title_block_centered("Add Movie")),
|
||||
search_box_area,
|
||||
|
||||
Reference in New Issue
Block a user