feat: Refactor all keybinding tips into a dynamically changing menu that can be invoked via '?' [#32]

This commit is contained in:
2025-08-12 16:27:34 -06:00
parent 1f4870d082
commit 00ab0f27f7
64 changed files with 1627 additions and 903 deletions
+11 -24
View File
@@ -1,16 +1,12 @@
use strum::IntoEnumIterator;
use super::sonarr_data::{ActiveSonarrBlock, SonarrData};
use crate::app::sonarr::sonarr_context_clues::SELECTABLE_EPISODE_DETAILS_CONTEXT_CLUES;
use crate::models::sonarr_models::EpisodeFile;
use crate::{
app::{
context_clues::build_context_clue_string,
sonarr::sonarr_context_clues::{
DETAILS_CONTEXTUAL_CONTEXT_CLUES, EPISODE_DETAILS_CONTEXT_CLUES,
MANUAL_EPISODE_SEARCH_CONTEXT_CLUES, MANUAL_SEASON_SEARCH_CONTEXT_CLUES,
SEASON_DETAILS_CONTEXTUAL_CONTEXT_CLUES, SEASON_DETAILS_CONTEXT_CLUES,
SEASON_HISTORY_CONTEXT_CLUES,
},
app::sonarr::sonarr_context_clues::{
EPISODE_DETAILS_CONTEXT_CLUES, MANUAL_EPISODE_SEARCH_CONTEXT_CLUES,
MANUAL_SEASON_SEARCH_CONTEXT_CLUES, SEASON_DETAILS_CONTEXT_CLUES, SEASON_HISTORY_CONTEXT_CLUES,
},
models::{
servarr_data::modals::EditIndexerModal,
@@ -282,29 +278,25 @@ impl Default for EpisodeDetailsModal {
TabRoute {
title: "Details".to_string(),
route: ActiveSonarrBlock::EpisodeDetails.into(),
help: build_context_clue_string(&EPISODE_DETAILS_CONTEXT_CLUES),
contextual_help: None,
contextual_help: Some(&EPISODE_DETAILS_CONTEXT_CLUES),
config: None,
},
TabRoute {
title: "History".to_string(),
route: ActiveSonarrBlock::EpisodeHistory.into(),
help: build_context_clue_string(&EPISODE_DETAILS_CONTEXT_CLUES),
contextual_help: Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES)),
contextual_help: Some(&SELECTABLE_EPISODE_DETAILS_CONTEXT_CLUES),
config: None,
},
TabRoute {
title: "File".to_string(),
route: ActiveSonarrBlock::EpisodeFile.into(),
help: build_context_clue_string(&EPISODE_DETAILS_CONTEXT_CLUES),
contextual_help: None,
contextual_help: Some(&EPISODE_DETAILS_CONTEXT_CLUES),
config: None,
},
TabRoute {
title: "Manual Search".to_string(),
route: ActiveSonarrBlock::ManualEpisodeSearch.into(),
help: build_context_clue_string(&MANUAL_EPISODE_SEARCH_CONTEXT_CLUES),
contextual_help: Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES)),
contextual_help: Some(&MANUAL_EPISODE_SEARCH_CONTEXT_CLUES),
config: None,
},
]),
@@ -333,24 +325,19 @@ impl Default for SeasonDetailsModal {
TabRoute {
title: "Episodes".to_string(),
route: ActiveSonarrBlock::SeasonDetails.into(),
help: build_context_clue_string(&SEASON_DETAILS_CONTEXT_CLUES),
contextual_help: Some(build_context_clue_string(
&SEASON_DETAILS_CONTEXTUAL_CONTEXT_CLUES,
)),
contextual_help: Some(&SEASON_DETAILS_CONTEXT_CLUES),
config: None,
},
TabRoute {
title: "History".to_string(),
route: ActiveSonarrBlock::SeasonHistory.into(),
help: build_context_clue_string(&SEASON_HISTORY_CONTEXT_CLUES),
contextual_help: Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES)),
contextual_help: Some(&SEASON_HISTORY_CONTEXT_CLUES),
config: None,
},
TabRoute {
title: "Manual Search".to_string(),
route: ActiveSonarrBlock::ManualSeasonSearch.into(),
help: build_context_clue_string(&MANUAL_SEASON_SEARCH_CONTEXT_CLUES),
contextual_help: Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES)),
contextual_help: Some(&MANUAL_SEASON_SEARCH_CONTEXT_CLUES),
config: None,
},
]),