From 3b8cf4a60a7477db349be46f95e131637154cc2c Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Tue, 12 Oct 2021 21:43:06 +0530 Subject: [PATCH] fix: single character shortcuts not working --- packages/hoppscotch-app/helpers/actions.ts | 2 -- .../hoppscotch-app/helpers/keybindings.ts | 25 +++++++++--------- packages/hoppscotch-app/helpers/shortcuts.js | 26 ------------------- packages/hoppscotch-app/layouts/default.vue | 6 ----- 4 files changed, 12 insertions(+), 47 deletions(-) diff --git a/packages/hoppscotch-app/helpers/actions.ts b/packages/hoppscotch-app/helpers/actions.ts index beee78e1b..329e54e6f 100644 --- a/packages/hoppscotch-app/helpers/actions.ts +++ b/packages/hoppscotch-app/helpers/actions.ts @@ -27,8 +27,6 @@ export type HoppAction = | "navigation.jump.realtime" // Jump to realtime page | "navigation.jump.documentation" // Jump to documentation page | "navigation.jump.settings" // Jump to settings page - | "navigation.jump.back" // Jump to previous page - | "navigation.jump.forward" // Jump to next page type BoundActionList = { // eslint-disable-next-line no-unused-vars diff --git a/packages/hoppscotch-app/helpers/keybindings.ts b/packages/hoppscotch-app/helpers/keybindings.ts index e7426c802..5a3473b90 100644 --- a/packages/hoppscotch-app/helpers/keybindings.ts +++ b/packages/hoppscotch-app/helpers/keybindings.ts @@ -57,8 +57,6 @@ export const bindings: { "alt-w": "navigation.jump.realtime", "alt-d": "navigation.jump.documentation", "alt-s": "navigation.jump.settings", - "ctrl-left": "navigation.jump.back", - "ctrl-right": "navigation.jump.forward", } /** @@ -91,22 +89,23 @@ function handleKeyDown(ev: KeyboardEvent) { } function generateKeybindingString(ev: KeyboardEvent): ShortcutKey | null { - // All our keybinds need to have one modifier pressed atleast + // We may or may not have a modifier key const modifierKey = getActiveModifier(ev) - const target = ev.target - // override default behaviour if element is typable - if (modifierKey && isDOMElement(target) && isTypableElement(target)) { - const key = getPressedKey(ev) - - if (!key) return null - else return `${key}` as ShortcutKey - } - + // We will always have a non-modifier key const key = getPressedKey(ev) if (!key) return null - return `${modifierKey}-${key}` as ShortcutKey + // All key combos backed by modifiers are valid shortcuts (whether currently typing or not) + if (modifierKey) return `${modifierKey}-${key}` + + const target = ev.target + + // no modifier key here then we do not do anything while on input + if (isDOMElement(target) && isTypableElement(target)) return null + + // single key while not input + return `${key}` } function getPressedKey(ev: KeyboardEvent): Key | null { diff --git a/packages/hoppscotch-app/helpers/shortcuts.js b/packages/hoppscotch-app/helpers/shortcuts.js index 2a72b065d..8cc81ea8b 100644 --- a/packages/hoppscotch-app/helpers/shortcuts.js +++ b/packages/hoppscotch-app/helpers/shortcuts.js @@ -136,18 +136,6 @@ export const spotlight = [ { section: "shortcut.navigation.title", shortcuts: [ - { - keys: [getPlatformSpecialKey(), "←"], - label: "shortcut.navigation.back", - action: "navigation.jump.back", - icon: "arrow-right", - }, - { - keys: [getPlatformSpecialKey(), "→"], - label: "shortcut.navigation.forward", - action: "navigation.jump.forward", - icon: "arrow-right", - }, { keys: [getPlatformAlternateKey(), "R"], label: "shortcut.navigation.rest", @@ -223,20 +211,6 @@ export const fuse = [ icon: "zap", tags: ["keyboard", "shortcuts"], }, - { - keys: [getPlatformSpecialKey(), "←"], - label: "shortcut.navigation.back", - action: "navigation.jump.back", - icon: "arrow-right", - tags: ["back", "jump", "page", "navigation", "go"], - }, - { - keys: [getPlatformSpecialKey(), "→"], - label: "shortcut.navigation.forward", - action: "navigation.jump.forward", - icon: "arrow-right", - tags: ["forward", "jump", "next", "forward", "page", "navigation", "go"], - }, { keys: [getPlatformAlternateKey(), "R"], label: "shortcut.navigation.rest", diff --git a/packages/hoppscotch-app/layouts/default.vue b/packages/hoppscotch-app/layouts/default.vue index 90444a5c8..563783d76 100644 --- a/packages/hoppscotch-app/layouts/default.vue +++ b/packages/hoppscotch-app/layouts/default.vue @@ -125,12 +125,6 @@ function defineJumpActions() { defineActionHandler("navigation.jump.settings", () => { router.push({ path: localePath("/settings") }) }) - defineActionHandler("navigation.jump.back", () => { - router.go(-1) - }) - defineActionHandler("navigation.jump.forward", () => { - router.go(1) - }) } export default defineComponent({