Skip to content

Commit 6421a7a

Browse files
committed
fix(useHotKey): try to detect non-latin keys from key codes
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
1 parent 12613c9 commit 6421a7a

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/composables/useHotKey/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import { onKeyStroke } from '@vueuse/core'
66

77
const disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.()
88
const isMac = /mac|ipad|iphone|darwin/i.test(navigator.userAgent)
9+
const latinLettersRegex = /^[a-zA-Z]$/
10+
const nonLatinLettersRegex = /^[^\x00-\x7F]$/
911

1012
export interface UseHotKeyOptions {
1113
/** Make key filter case sensitive */
@@ -134,6 +136,13 @@ export function useHotKey(
134136
if (options.caseSensitive) {
135137
return event.key === key
136138
}
139+
140+
if (latinLettersRegex.test(key) && nonLatinLettersRegex.test(event.key)) {
141+
// If received key is a single letter, but non-Latin, derive it from key code
142+
const parsedKey = event.code.replace('Key', '').toLowerCase()
143+
return parsedKey === key.toLowerCase()
144+
}
145+
137146
return event.key.toLowerCase() === key.toLowerCase()
138147
|| event.code === key
139148
}

0 commit comments

Comments
 (0)