113 lines
3.4 KiB
Rust
113 lines
3.4 KiB
Rust
use crate::app::key_binding::{KeyBinding, DEFAULT_KEYBINDINGS};
|
|
use crate::app::radarr::radarr_context_clues::RadarrContextClueProvider;
|
|
use crate::app::sonarr::sonarr_context_clues::SonarrContextClueProvider;
|
|
use crate::app::App;
|
|
use crate::models::Route;
|
|
|
|
#[cfg(test)]
|
|
#[path = "context_clues_tests.rs"]
|
|
mod context_clues_tests;
|
|
|
|
pub type ContextClue = (KeyBinding, &'static str);
|
|
|
|
pub trait ContextClueProvider {
|
|
fn get_context_clues(_app: &mut App<'_>) -> Option<&'static [ContextClue]>;
|
|
}
|
|
|
|
pub struct ServarrContextClueProvider;
|
|
|
|
impl ContextClueProvider for ServarrContextClueProvider {
|
|
fn get_context_clues(app: &mut App<'_>) -> Option<&'static [ContextClue]> {
|
|
match app.get_current_route() {
|
|
Route::Radarr(_, _) => RadarrContextClueProvider::get_context_clues(app),
|
|
Route::Sonarr(_, _) => SonarrContextClueProvider::get_context_clues(app),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub static SERVARR_CONTEXT_CLUES: [ContextClue; 10] = [
|
|
(DEFAULT_KEYBINDINGS.up, "scroll up"),
|
|
(DEFAULT_KEYBINDINGS.down, "scroll down"),
|
|
(DEFAULT_KEYBINDINGS.left, "previous tab"),
|
|
(DEFAULT_KEYBINDINGS.right, "next tab"),
|
|
(DEFAULT_KEYBINDINGS.pg_up, DEFAULT_KEYBINDINGS.pg_up.desc),
|
|
(
|
|
DEFAULT_KEYBINDINGS.pg_down,
|
|
DEFAULT_KEYBINDINGS.pg_down.desc,
|
|
),
|
|
(
|
|
DEFAULT_KEYBINDINGS.next_servarr,
|
|
DEFAULT_KEYBINDINGS.next_servarr.desc,
|
|
),
|
|
(
|
|
DEFAULT_KEYBINDINGS.previous_servarr,
|
|
DEFAULT_KEYBINDINGS.previous_servarr.desc,
|
|
),
|
|
(DEFAULT_KEYBINDINGS.quit, DEFAULT_KEYBINDINGS.quit.desc),
|
|
(DEFAULT_KEYBINDINGS.help, DEFAULT_KEYBINDINGS.help.desc),
|
|
];
|
|
|
|
pub static BARE_POPUP_CONTEXT_CLUES: [ContextClue; 1] =
|
|
[(DEFAULT_KEYBINDINGS.esc, DEFAULT_KEYBINDINGS.esc.desc)];
|
|
|
|
pub static BLOCKLIST_CONTEXT_CLUES: [ContextClue; 5] = [
|
|
(
|
|
DEFAULT_KEYBINDINGS.refresh,
|
|
DEFAULT_KEYBINDINGS.refresh.desc,
|
|
),
|
|
(DEFAULT_KEYBINDINGS.sort, DEFAULT_KEYBINDINGS.sort.desc),
|
|
(DEFAULT_KEYBINDINGS.submit, "details"),
|
|
(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc),
|
|
(DEFAULT_KEYBINDINGS.clear, "clear blocklist"),
|
|
];
|
|
|
|
pub static CONFIRMATION_PROMPT_CONTEXT_CLUES: [ContextClue; 2] = [
|
|
(DEFAULT_KEYBINDINGS.confirm, "submit"),
|
|
(DEFAULT_KEYBINDINGS.esc, "cancel"),
|
|
];
|
|
|
|
pub static DOWNLOADS_CONTEXT_CLUES: [ContextClue; 3] = [
|
|
(
|
|
DEFAULT_KEYBINDINGS.refresh,
|
|
DEFAULT_KEYBINDINGS.refresh.desc,
|
|
),
|
|
(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc),
|
|
(DEFAULT_KEYBINDINGS.update, "update downloads"),
|
|
];
|
|
|
|
pub static ROOT_FOLDERS_CONTEXT_CLUES: [ContextClue; 3] = [
|
|
(DEFAULT_KEYBINDINGS.add, DEFAULT_KEYBINDINGS.add.desc),
|
|
(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc),
|
|
(
|
|
DEFAULT_KEYBINDINGS.refresh,
|
|
DEFAULT_KEYBINDINGS.refresh.desc,
|
|
),
|
|
];
|
|
|
|
pub static INDEXERS_CONTEXT_CLUES: [ContextClue; 6] = [
|
|
(DEFAULT_KEYBINDINGS.submit, "edit indexer"),
|
|
(
|
|
DEFAULT_KEYBINDINGS.settings,
|
|
DEFAULT_KEYBINDINGS.settings.desc,
|
|
),
|
|
(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc),
|
|
(DEFAULT_KEYBINDINGS.test, "test indexer"),
|
|
(DEFAULT_KEYBINDINGS.test_all, "test all indexers"),
|
|
(
|
|
DEFAULT_KEYBINDINGS.refresh,
|
|
DEFAULT_KEYBINDINGS.refresh.desc,
|
|
),
|
|
];
|
|
|
|
pub static SYSTEM_CONTEXT_CLUES: [ContextClue; 5] = [
|
|
(DEFAULT_KEYBINDINGS.tasks, "open tasks"),
|
|
(DEFAULT_KEYBINDINGS.events, "open events"),
|
|
(DEFAULT_KEYBINDINGS.logs, "open logs"),
|
|
(DEFAULT_KEYBINDINGS.update, "open updates"),
|
|
(
|
|
DEFAULT_KEYBINDINGS.refresh,
|
|
DEFAULT_KEYBINDINGS.refresh.desc,
|
|
),
|
|
];
|