feat(app): Dispatch support for all relevant Sonarr blocks
This commit is contained in:
@@ -46,7 +46,7 @@ impl DrawUi for AddMovieUi {
|
||||
}
|
||||
|
||||
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
if let Route::Radarr(active_radarr_block, context_option) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, context_option) = app.get_current_route() {
|
||||
let draw_add_movie_search_popup =
|
||||
|f: &mut Frame<'_>, app: &mut App<'_>, area: Rect| match active_radarr_block {
|
||||
ActiveRadarrBlock::AddMovieSearchInput
|
||||
@@ -202,7 +202,7 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
.primary()
|
||||
};
|
||||
|
||||
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
|
||||
match active_radarr_block {
|
||||
ActiveRadarrBlock::AddMovieSearchInput => {
|
||||
let search_box = InputBox::new(block_content)
|
||||
@@ -284,7 +284,7 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
}
|
||||
|
||||
fn draw_confirmation_popup(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
|
||||
match active_radarr_block {
|
||||
ActiveRadarrBlock::AddMovieSelectMonitor => {
|
||||
draw_confirmation_prompt(f, app, area);
|
||||
@@ -354,7 +354,7 @@ fn draw_confirmation_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
let prompt = movie_overview;
|
||||
let yes_no_value = app.data.radarr_data.prompt_confirm;
|
||||
let selected_block = app.data.radarr_data.selected_block.get_active_block();
|
||||
let highlight_yes_no = selected_block == &ActiveRadarrBlock::AddMovieConfirmPrompt;
|
||||
let highlight_yes_no = selected_block == ActiveRadarrBlock::AddMovieConfirmPrompt;
|
||||
let AddMovieModal {
|
||||
monitor_list,
|
||||
minimum_availability_list,
|
||||
@@ -400,33 +400,33 @@ fn draw_confirmation_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
.title(&selected_root_folder.path)
|
||||
.label("Root Folder")
|
||||
.icon("▼")
|
||||
.selected(selected_block == &ActiveRadarrBlock::AddMovieSelectRootFolder);
|
||||
.selected(selected_block == ActiveRadarrBlock::AddMovieSelectRootFolder);
|
||||
let monitor_drop_down_button = Button::new()
|
||||
.title(selected_monitor.to_display_str())
|
||||
.label("Monitor")
|
||||
.icon("▼")
|
||||
.selected(selected_block == &ActiveRadarrBlock::AddMovieSelectMonitor);
|
||||
.selected(selected_block == ActiveRadarrBlock::AddMovieSelectMonitor);
|
||||
let min_availability_drop_down_button = Button::new()
|
||||
.title(selected_minimum_availability.to_display_str())
|
||||
.label("Minimum Availability")
|
||||
.icon("▼")
|
||||
.selected(selected_block == &ActiveRadarrBlock::AddMovieSelectMinimumAvailability);
|
||||
.selected(selected_block == ActiveRadarrBlock::AddMovieSelectMinimumAvailability);
|
||||
let quality_profile_drop_down_button = Button::new()
|
||||
.title(selected_quality_profile)
|
||||
.label("Quality Profile")
|
||||
.icon("▼")
|
||||
.selected(selected_block == &ActiveRadarrBlock::AddMovieSelectQualityProfile);
|
||||
.selected(selected_block == ActiveRadarrBlock::AddMovieSelectQualityProfile);
|
||||
|
||||
f.render_widget(root_folder_drop_down_button, root_folder_area);
|
||||
f.render_widget(monitor_drop_down_button, monitor_area);
|
||||
f.render_widget(min_availability_drop_down_button, min_availability_area);
|
||||
f.render_widget(quality_profile_drop_down_button, quality_profile_area);
|
||||
|
||||
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
|
||||
let tags_input_box = InputBox::new(&tags.text)
|
||||
.offset(tags.offset.load(Ordering::SeqCst))
|
||||
.label("Tags")
|
||||
.highlighted(selected_block == &ActiveRadarrBlock::AddMovieTagsInput)
|
||||
.highlighted(selected_block == ActiveRadarrBlock::AddMovieTagsInput)
|
||||
.selected(active_radarr_block == ActiveRadarrBlock::AddMovieTagsInput);
|
||||
render_selectable_input_box!(tags_input_box, f, tags_area);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ impl DrawUi for DeleteMovieUi {
|
||||
|
||||
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
if matches!(
|
||||
*app.get_current_route(),
|
||||
app.get_current_route(),
|
||||
Route::Radarr(ActiveRadarrBlock::DeleteMoviePrompt, _)
|
||||
) {
|
||||
let selected_block = app.data.radarr_data.selected_block.get_active_block();
|
||||
@@ -38,16 +38,16 @@ impl DrawUi for DeleteMovieUi {
|
||||
let checkboxes = vec![
|
||||
Checkbox::new("Delete Movie File")
|
||||
.checked(app.data.radarr_data.delete_movie_files)
|
||||
.highlighted(selected_block == &ActiveRadarrBlock::DeleteMovieToggleDeleteFile),
|
||||
.highlighted(selected_block == ActiveRadarrBlock::DeleteMovieToggleDeleteFile),
|
||||
Checkbox::new("Add List Exclusion")
|
||||
.checked(app.data.radarr_data.add_list_exclusion)
|
||||
.highlighted(selected_block == &ActiveRadarrBlock::DeleteMovieToggleAddListExclusion),
|
||||
.highlighted(selected_block == ActiveRadarrBlock::DeleteMovieToggleAddListExclusion),
|
||||
];
|
||||
let confirmation_prompt = ConfirmationPrompt::new()
|
||||
.title("Delete Movie")
|
||||
.prompt(&prompt)
|
||||
.checkboxes(checkboxes)
|
||||
.yes_no_highlighted(selected_block == &ActiveRadarrBlock::DeleteMovieConfirmPrompt)
|
||||
.yes_no_highlighted(selected_block == ActiveRadarrBlock::DeleteMovieConfirmPrompt)
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_library(f, app, area);
|
||||
|
||||
@@ -43,7 +43,7 @@ impl DrawUi for EditMovieUi {
|
||||
}
|
||||
|
||||
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
if let Route::Radarr(active_radarr_block, context_option) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, context_option) = app.get_current_route() {
|
||||
let draw_edit_movie_prompt =
|
||||
|f: &mut Frame<'_>, app: &mut App<'_>, prompt_area: Rect| match active_radarr_block {
|
||||
ActiveRadarrBlock::EditMovieSelectMinimumAvailability => {
|
||||
@@ -105,7 +105,7 @@ fn draw_edit_movie_confirmation_prompt(f: &mut Frame<'_>, app: &mut App<'_>, are
|
||||
let title = format!("Edit - {movie_title}");
|
||||
let yes_no_value = app.data.radarr_data.prompt_confirm;
|
||||
let selected_block = app.data.radarr_data.selected_block.get_active_block();
|
||||
let highlight_yes_no = selected_block == &ActiveRadarrBlock::EditMovieConfirmPrompt;
|
||||
let highlight_yes_no = selected_block == ActiveRadarrBlock::EditMovieConfirmPrompt;
|
||||
let EditMovieModal {
|
||||
minimum_availability_list,
|
||||
quality_profile_list,
|
||||
@@ -139,28 +139,28 @@ fn draw_edit_movie_confirmation_prompt(f: &mut Frame<'_>, app: &mut App<'_>, are
|
||||
let prompt_paragraph = layout_paragraph_borderless(&movie_overview);
|
||||
let monitored_checkbox = Checkbox::new("Monitored")
|
||||
.checked(monitored.unwrap_or_default())
|
||||
.highlighted(selected_block == &ActiveRadarrBlock::EditMovieToggleMonitored);
|
||||
.highlighted(selected_block == ActiveRadarrBlock::EditMovieToggleMonitored);
|
||||
let min_availability_drop_down_button = Button::new()
|
||||
.title(selected_minimum_availability.to_display_str())
|
||||
.label("Minimum Availability")
|
||||
.icon("▼")
|
||||
.selected(selected_block == &ActiveRadarrBlock::EditMovieSelectMinimumAvailability);
|
||||
.selected(selected_block == ActiveRadarrBlock::EditMovieSelectMinimumAvailability);
|
||||
let quality_profile_drop_down_button = Button::new()
|
||||
.title(selected_quality_profile)
|
||||
.label("Quality Profile")
|
||||
.icon("▼")
|
||||
.selected(selected_block == &ActiveRadarrBlock::EditMovieSelectQualityProfile);
|
||||
.selected(selected_block == ActiveRadarrBlock::EditMovieSelectQualityProfile);
|
||||
|
||||
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
|
||||
let path_input_box = InputBox::new(&path.text)
|
||||
.offset(path.offset.load(Ordering::SeqCst))
|
||||
.label("Path")
|
||||
.highlighted(selected_block == &ActiveRadarrBlock::EditMoviePathInput)
|
||||
.highlighted(selected_block == ActiveRadarrBlock::EditMoviePathInput)
|
||||
.selected(active_radarr_block == ActiveRadarrBlock::EditMoviePathInput);
|
||||
let tags_input_box = InputBox::new(&tags.text)
|
||||
.offset(tags.offset.load(Ordering::SeqCst))
|
||||
.label("Tags")
|
||||
.highlighted(selected_block == &ActiveRadarrBlock::EditMovieTagsInput)
|
||||
.highlighted(selected_block == ActiveRadarrBlock::EditMovieTagsInput)
|
||||
.selected(active_radarr_block == ActiveRadarrBlock::EditMovieTagsInput);
|
||||
|
||||
match active_radarr_block {
|
||||
|
||||
@@ -44,7 +44,7 @@ impl DrawUi for LibraryUi {
|
||||
}
|
||||
|
||||
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
let route = *app.get_current_route();
|
||||
let route = app.get_current_route();
|
||||
let mut library_ui_matchers = |active_radarr_block: ActiveRadarrBlock| match active_radarr_block
|
||||
{
|
||||
ActiveRadarrBlock::Movies | ActiveRadarrBlock::MoviesSortPrompt => draw_library(f, app, area),
|
||||
@@ -103,7 +103,7 @@ impl DrawUi for LibraryUi {
|
||||
}
|
||||
|
||||
pub(super) fn draw_library(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
|
||||
let current_selection = if !app.data.radarr_data.movies.items.is_empty() {
|
||||
app.data.radarr_data.movies.current_selection().clone()
|
||||
} else {
|
||||
|
||||
@@ -39,7 +39,7 @@ impl DrawUi for MovieDetailsUi {
|
||||
}
|
||||
|
||||
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
if let Route::Radarr(active_radarr_block, context_option) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, context_option) = app.get_current_route() {
|
||||
let draw_movie_info_popup = |f: &mut Frame<'_>, app: &mut App<'_>, popup_area: Rect| {
|
||||
let content_area = draw_tabs(
|
||||
f,
|
||||
@@ -371,7 +371,7 @@ fn draw_movie_crew(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
}
|
||||
|
||||
fn draw_movie_releases(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
|
||||
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
|
||||
let (current_selection, is_empty) = match app.data.radarr_data.movie_details_modal.as_ref() {
|
||||
Some(movie_details_modal) if !movie_details_modal.movie_releases.items.is_empty() => (
|
||||
movie_details_modal
|
||||
@@ -382,7 +382,7 @@ fn draw_movie_releases(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
),
|
||||
_ => (RadarrRelease::default(), true),
|
||||
};
|
||||
let current_route = *app.get_current_route();
|
||||
let current_route = app.get_current_route();
|
||||
let mut default_movie_details_modal = MovieDetailsModal::default();
|
||||
let help_footer = app
|
||||
.data
|
||||
|
||||
Reference in New Issue
Block a user