fix: single character shortcuts not working

This commit is contained in:
Andrew Bastin
2021-10-12 21:43:06 +05:30
parent b7ccb9a34c
commit 3b8cf4a60a
4 changed files with 12 additions and 47 deletions

View File

@@ -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

View File

@@ -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 {

View File

@@ -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",

View File

@@ -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({