feat(app): Dispatch support for all relevant Sonarr blocks

This commit is contained in:
2024-11-27 17:06:20 -07:00
parent 73a4129000
commit f139db07d9
86 changed files with 4075 additions and 3005 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ pub fn ui(f: &mut Frame<'_>, app: &mut App<'_>) {
draw_header_row(f, app, header_area);
if RadarrUi::accepts(*app.get_current_route()) {
if RadarrUi::accepts(app.get_current_route()) {
RadarrUi::draw_context_row(f, app, context_area);
RadarrUi::draw(f, app, table_area);
}
+2 -2
View File
@@ -31,7 +31,7 @@ impl DrawUi for BlocklistUi {
}
fn draw(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::Blocklist | ActiveRadarrBlock::BlocklistSortPrompt => {
draw_blocklist_table(f, app, area)
@@ -77,7 +77,7 @@ impl DrawUi for BlocklistUi {
}
fn draw_blocklist_table(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.blocklist.items.is_empty() {
BlocklistItem::default()
} else {
@@ -39,7 +39,7 @@ impl DrawUi for CollectionDetailsUi {
}
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_collection_details_popup =
|f: &mut Frame<'_>, app: &mut App<'_>, popup_area: Rect| match context_option
.unwrap_or(active_radarr_block)
@@ -41,7 +41,7 @@ impl DrawUi for EditCollectionUi {
}
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_collection_prompt =
|f: &mut Frame<'_>, app: &mut App<'_>, prompt_area: Rect| match active_radarr_block {
ActiveRadarrBlock::EditCollectionSelectMinimumAvailability => {
@@ -102,7 +102,7 @@ fn draw_edit_collection_confirmation_prompt(f: &mut Frame<'_>, app: &mut App<'_>
let title = format!("Edit - {collection_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::EditCollectionConfirmPrompt;
let highlight_yes_no = selected_block == ActiveRadarrBlock::EditCollectionConfirmPrompt;
let EditCollectionModal {
minimum_availability_list,
quality_profile_list,
@@ -135,30 +135,30 @@ fn draw_edit_collection_confirmation_prompt(f: &mut Frame<'_>, app: &mut App<'_>
let help_paragraph = Paragraph::new(help_text).centered();
let prompt_paragraph = layout_paragraph_borderless(&collection_overview);
let monitored_checkbox = Checkbox::new("Monitored")
.highlighted(selected_block == &ActiveRadarrBlock::EditCollectionToggleMonitored)
.highlighted(selected_block == ActiveRadarrBlock::EditCollectionToggleMonitored)
.checked(monitored.unwrap_or_default());
let min_availability_drop_down_button = Button::new()
.title(selected_minimum_availability.to_display_str())
.label("Minimum Availability")
.icon("")
.selected(selected_block == &ActiveRadarrBlock::EditCollectionSelectMinimumAvailability);
.selected(selected_block == ActiveRadarrBlock::EditCollectionSelectMinimumAvailability);
let quality_profile_drop_down_button = Button::new()
.title(selected_quality_profile)
.label("Quality Profile")
.icon("")
.selected(selected_block == &ActiveRadarrBlock::EditCollectionSelectQualityProfile);
.selected(selected_block == ActiveRadarrBlock::EditCollectionSelectQualityProfile);
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
let root_folder_input_box = InputBox::new(&path.text)
.offset(path.offset.load(Ordering::SeqCst))
.label("Root Folder")
.highlighted(selected_block == &ActiveRadarrBlock::EditCollectionRootFolderPathInput)
.highlighted(selected_block == ActiveRadarrBlock::EditCollectionRootFolderPathInput)
.selected(active_radarr_block == ActiveRadarrBlock::EditCollectionRootFolderPathInput);
render_selectable_input_box!(root_folder_input_box, f, root_folder_area);
}
let search_on_add_checkbox = Checkbox::new("Search on Add")
.highlighted(selected_block == &ActiveRadarrBlock::EditCollectionToggleSearchOnAdd)
.highlighted(selected_block == ActiveRadarrBlock::EditCollectionToggleSearchOnAdd)
.checked(search_on_add.unwrap_or_default());
let save_button = Button::new()
.title("Save")
+2 -2
View File
@@ -38,7 +38,7 @@ impl DrawUi for CollectionsUi {
}
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let route = *app.get_current_route();
let route = app.get_current_route();
let mut collections_ui_matcher = |active_radarr_block| match active_radarr_block {
ActiveRadarrBlock::Collections | ActiveRadarrBlock::CollectionsSortPrompt => {
draw_collections(f, app, area)
@@ -100,7 +100,7 @@ impl DrawUi for CollectionsUi {
}
pub(super) fn draw_collections(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.collections.items.is_empty() {
app.data.radarr_data.collections.current_selection().clone()
} else {
+1 -1
View File
@@ -30,7 +30,7 @@ impl DrawUi for DownloadsUi {
}
fn draw(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::Downloads => draw_downloads(f, app, area),
ActiveRadarrBlock::DeleteDownloadPrompt => {
+11 -13
View File
@@ -51,7 +51,7 @@ fn draw_edit_indexer_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let block = title_block_centered("Edit Indexer");
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::EditIndexerConfirmPrompt;
let highlight_yes_no = selected_block == ActiveRadarrBlock::EditIndexerConfirmPrompt;
let edit_indexer_modal_option = &app.data.radarr_data.edit_indexer_modal;
let protocol = &app.data.radarr_data.indexers.current_selection().protocol;
let help_text = Text::from(build_context_clue_string(&CONFIRMATION_PROMPT_CONTEXT_CLUES).help());
@@ -87,26 +87,26 @@ fn draw_edit_indexer_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
])
.areas(right_side_area);
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
let name_input_box = InputBox::new(&edit_indexer_modal.name.text)
.offset(edit_indexer_modal.name.offset.load(Ordering::SeqCst))
.label("Name")
.highlighted(selected_block == &ActiveRadarrBlock::EditIndexerNameInput)
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerNameInput)
.selected(active_radarr_block == ActiveRadarrBlock::EditIndexerNameInput);
let url_input_box = InputBox::new(&edit_indexer_modal.url.text)
.offset(edit_indexer_modal.url.offset.load(Ordering::SeqCst))
.label("URL")
.highlighted(selected_block == &ActiveRadarrBlock::EditIndexerUrlInput)
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerUrlInput)
.selected(active_radarr_block == ActiveRadarrBlock::EditIndexerUrlInput);
let api_key_input_box = InputBox::new(&edit_indexer_modal.api_key.text)
.offset(edit_indexer_modal.api_key.offset.load(Ordering::SeqCst))
.label("API Key")
.highlighted(selected_block == &ActiveRadarrBlock::EditIndexerApiKeyInput)
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerApiKeyInput)
.selected(active_radarr_block == ActiveRadarrBlock::EditIndexerApiKeyInput);
let tags_input_box = InputBox::new(&edit_indexer_modal.tags.text)
.offset(edit_indexer_modal.tags.offset.load(Ordering::SeqCst))
.label("Tags")
.highlighted(selected_block == &ActiveRadarrBlock::EditIndexerTagsInput)
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerTagsInput)
.selected(active_radarr_block == ActiveRadarrBlock::EditIndexerTagsInput);
render_selectable_input_box!(name_input_box, f, name_area);
@@ -117,12 +117,12 @@ fn draw_edit_indexer_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let seed_ratio_input_box = InputBox::new(&edit_indexer_modal.seed_ratio.text)
.offset(edit_indexer_modal.seed_ratio.offset.load(Ordering::SeqCst))
.label("Seed Ratio")
.highlighted(selected_block == &ActiveRadarrBlock::EditIndexerSeedRatioInput)
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerSeedRatioInput)
.selected(active_radarr_block == ActiveRadarrBlock::EditIndexerSeedRatioInput);
let tags_input_box = InputBox::new(&edit_indexer_modal.tags.text)
.offset(edit_indexer_modal.tags.offset.load(Ordering::SeqCst))
.label("Tags")
.highlighted(selected_block == &ActiveRadarrBlock::EditIndexerTagsInput)
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerTagsInput)
.selected(active_radarr_block == ActiveRadarrBlock::EditIndexerTagsInput);
render_selectable_input_box!(seed_ratio_input_box, f, seed_ratio_area);
@@ -133,23 +133,21 @@ fn draw_edit_indexer_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let rss_checkbox = Checkbox::new("Enable RSS")
.checked(edit_indexer_modal.enable_rss.unwrap_or_default())
.highlighted(selected_block == &ActiveRadarrBlock::EditIndexerToggleEnableRss);
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerToggleEnableRss);
let auto_search_checkbox = Checkbox::new("Enable Automatic Search")
.checked(
edit_indexer_modal
.enable_automatic_search
.unwrap_or_default(),
)
.highlighted(selected_block == &ActiveRadarrBlock::EditIndexerToggleEnableAutomaticSearch);
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerToggleEnableAutomaticSearch);
let interactive_search_checkbox = Checkbox::new("Enable Interactive Search")
.checked(
edit_indexer_modal
.enable_interactive_search
.unwrap_or_default(),
)
.highlighted(
selected_block == &ActiveRadarrBlock::EditIndexerToggleEnableInteractiveSearch,
);
.highlighted(selected_block == ActiveRadarrBlock::EditIndexerToggleEnableInteractiveSearch);
let [save_area, cancel_area] =
Layout::horizontal([Constraint::Percentage(25), Constraint::Percentage(25)])
@@ -54,7 +54,7 @@ fn draw_edit_indexer_settings_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area:
let block = title_block_centered("Configure All Indexer Settings");
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::IndexerSettingsConfirmPrompt;
let highlight_yes_no = selected_block == ActiveRadarrBlock::IndexerSettingsConfirmPrompt;
let indexer_settings_option = &app.data.radarr_data.indexer_settings;
let help_text = Text::from(build_context_clue_string(&CONFIRMATION_PROMPT_CONTEXT_CLUES).help());
let help_paragraph = Paragraph::new(help_text).centered();
@@ -90,7 +90,7 @@ fn draw_edit_indexer_settings_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area:
])
.areas(right_side_area);
if let Route::Radarr(active_radarr_block, _) = *app.get_current_route() {
if let Route::Radarr(active_radarr_block, _) = app.get_current_route() {
let min_age = indexer_settings.minimum_age.to_string();
let retention = indexer_settings.retention.to_string();
let max_size = indexer_settings.maximum_size.to_string();
@@ -100,27 +100,27 @@ fn draw_edit_indexer_settings_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area:
let min_age_text_box = InputBox::new(&min_age)
.cursor_after_string(false)
.label("Minimum Age (minutes) ▴▾")
.highlighted(selected_block == &ActiveRadarrBlock::IndexerSettingsMinimumAgeInput)
.highlighted(selected_block == ActiveRadarrBlock::IndexerSettingsMinimumAgeInput)
.selected(active_radarr_block == ActiveRadarrBlock::IndexerSettingsMinimumAgeInput);
let retention_input_box = InputBox::new(&retention)
.cursor_after_string(false)
.label("Retention (days) ▴▾")
.highlighted(selected_block == &ActiveRadarrBlock::IndexerSettingsRetentionInput)
.highlighted(selected_block == ActiveRadarrBlock::IndexerSettingsRetentionInput)
.selected(active_radarr_block == ActiveRadarrBlock::IndexerSettingsRetentionInput);
let max_size_input_box = InputBox::new(&max_size)
.cursor_after_string(false)
.label("Maximum Size (MB) ▴▾")
.highlighted(selected_block == &ActiveRadarrBlock::IndexerSettingsMaximumSizeInput)
.highlighted(selected_block == ActiveRadarrBlock::IndexerSettingsMaximumSizeInput)
.selected(active_radarr_block == ActiveRadarrBlock::IndexerSettingsMaximumSizeInput);
let availability_delay_input_box = InputBox::new(&availability_delay)
.cursor_after_string(false)
.label("Availability Delay (days) ▴▾")
.highlighted(selected_block == &ActiveRadarrBlock::IndexerSettingsAvailabilityDelayInput)
.highlighted(selected_block == ActiveRadarrBlock::IndexerSettingsAvailabilityDelayInput)
.selected(active_radarr_block == ActiveRadarrBlock::IndexerSettingsAvailabilityDelayInput);
let rss_sync_interval_input_box = InputBox::new(&rss_sync_interval)
.cursor_after_string(false)
.label("RSS Sync Interval (minutes) ▴▾")
.highlighted(selected_block == &ActiveRadarrBlock::IndexerSettingsRssSyncIntervalInput)
.highlighted(selected_block == ActiveRadarrBlock::IndexerSettingsRssSyncIntervalInput)
.selected(active_radarr_block == ActiveRadarrBlock::IndexerSettingsRssSyncIntervalInput);
let whitelisted_subs_input_box =
InputBox::new(&indexer_settings.whitelisted_hardcoded_subs.text)
@@ -132,7 +132,7 @@ fn draw_edit_indexer_settings_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area:
)
.label("Whitelisted Subtitle Tags")
.highlighted(
selected_block == &ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput,
selected_block == ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput,
)
.selected(
active_radarr_block == ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput,
@@ -147,10 +147,10 @@ fn draw_edit_indexer_settings_prompt(f: &mut Frame<'_>, app: &mut App<'_>, area:
}
let prefer_indexer_flags_checkbox = Checkbox::new("Prefer Indexer Flags")
.highlighted(selected_block == &ActiveRadarrBlock::IndexerSettingsTogglePreferIndexerFlags)
.highlighted(selected_block == ActiveRadarrBlock::IndexerSettingsTogglePreferIndexerFlags)
.checked(indexer_settings.prefer_indexer_flags);
let allow_hardcoded_subs_checkbox = Checkbox::new("Allow Hardcoded Subs")
.highlighted(selected_block == &ActiveRadarrBlock::IndexerSettingsToggleAllowHardcodedSubs)
.highlighted(selected_block == ActiveRadarrBlock::IndexerSettingsToggleAllowHardcodedSubs)
.checked(indexer_settings.allow_hardcoded_subs);
let [save_area, cancel_area] =
+1 -1
View File
@@ -43,7 +43,7 @@ impl DrawUi for IndexersUi {
}
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let route = *app.get_current_route();
let route = app.get_current_route();
let mut indexers_matchers = |active_radarr_block| match active_radarr_block {
ActiveRadarrBlock::Indexers => draw_indexers(f, app, area),
ActiveRadarrBlock::TestIndexer => {
+10 -10
View File
@@ -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);
}
+4 -4
View File
@@ -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);
+8 -8
View File
@@ -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 {
+2 -2
View File
@@ -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 {
+3 -3
View File
@@ -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
+1 -1
View File
@@ -51,7 +51,7 @@ impl DrawUi for RadarrUi {
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let content_area = draw_tabs(f, area, "Movies", &app.data.radarr_data.main_tabs);
let route = *app.get_current_route();
let route = app.get_current_route();
match route {
_ if LibraryUi::accepts(route) => LibraryUi::draw(f, app, content_area),
+1 -1
View File
@@ -30,7 +30,7 @@ impl DrawUi for RootFoldersUi {
}
fn draw(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::RootFolders => draw_root_folders(f, app, area),
ActiveRadarrBlock::AddRootFolderPrompt => draw_popup_over(
+1 -1
View File
@@ -61,7 +61,7 @@ impl DrawUi for SystemUi {
}
fn draw(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
let route = *app.get_current_route();
let route = app.get_current_route();
match route {
_ if SystemDetailsUi::accepts(route) => SystemDetailsUi::draw(f, app, area),
+1 -1
View File
@@ -39,7 +39,7 @@ impl DrawUi for SystemDetailsUi {
}
fn draw(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::SystemLogs => {
draw_system_ui_layout(f, app, area);