server: Improve type for keyboard shortcut scope

This commit is contained in:
Elian Doran 2024-10-12 10:31:12 +03:00
parent e45c5f429d
commit 2c5a5acffa
No known key found for this signature in database
2 changed files with 9 additions and 10 deletions

View File

@ -9,15 +9,6 @@ import { t } from "i18next";
const isMac = process.platform === "darwin"; const isMac = process.platform === "darwin";
const isElectron = utils.isElectron(); const isElectron = utils.isElectron();
/**
* Scope here means on which element the keyboard shortcuts are attached - this means that for the shortcut to work,
* the focus has to be inside the element.
*
* So e.g. shortcuts with "note-tree" scope work only when the focus is in note tree.
* This allows to have the same shortcut have different actions attached based on the context
* e.g. CTRL-C in note tree does something a bit different from CTRL-C in the text editor.
*/
function getDefaultKeyboardActions() { function getDefaultKeyboardActions() {
if (!t("keyboard_actions.note-navigation")) { if (!t("keyboard_actions.note-navigation")) {
throw new Error("Keyboard actions loaded before translations."); throw new Error("Keyboard actions loaded before translations.");

View File

@ -4,7 +4,15 @@ export interface KeyboardShortcut {
description?: string; description?: string;
defaultShortcuts?: string[]; defaultShortcuts?: string[];
effectiveShortcuts?: string[]; effectiveShortcuts?: string[];
scope?: string; /**
* Scope here means on which element the keyboard shortcuts are attached - this means that for the shortcut to work,
* the focus has to be inside the element.
*
* So e.g. shortcuts with "note-tree" scope work only when the focus is in note tree.
* This allows to have the same shortcut have different actions attached based on the context
* e.g. CTRL-C in note tree does something a bit different from CTRL-C in the text editor.
*/
scope?: "window" | "note-tree" | "text-detail" | "code-detail";
} }
export interface KeyboardShortcutWithRequiredActionName extends KeyboardShortcut { export interface KeyboardShortcutWithRequiredActionName extends KeyboardShortcut {