diff --git a/hotkey.js b/hotkey.js
index 7ba8389..b7bbc51 100644
--- a/hotkey.js
+++ b/hotkey.js
@@ -83,9 +83,9 @@ function findHotKey(event, window, transformers) {
if (
!hotkey &&
(event.key.length > 1 || NON_ENGLISH_LAYOUT.test(event.key)) &&
- /^Key.$/.test(event.code)
+ /^(Key.|Digit\d)$/.test(event.code)
) {
- let enKey = event.code.replace(/^Key/, '').toLowerCase()
+ let enKey = event.code.replace(/^Key|^Digit/, '').toLowerCase()
hotkey = checkHotkey(window, prefix + enKey, transformers)
}
diff --git a/package.json b/package.json
index 164003b..7c4e56e 100644
--- a/package.json
+++ b/package.json
@@ -85,7 +85,7 @@
"import": {
"./index.js": "{ startKeyUX, hotkeyKeyUX, pressKeyUX, focusGroupKeyUX, jumpKeyUX, hiddenKeyUX, likelyWithKeyboard, getHotKeyHint, hotkeyOverrides, hotkeyMacCompat }"
},
- "limit": "2202 B"
+ "limit": "2210 B"
}
],
"clean-publish": {
diff --git a/test/demo/index.tsx b/test/demo/index.tsx
index 100751f..127c7a1 100644
--- a/test/demo/index.tsx
+++ b/test/demo/index.tsx
@@ -85,6 +85,23 @@ const Counter: FC = () => {
)
}
+const Numbers: FC = () => {
+ return (
+
+
+ {Array(10)
+ .fill(0)
+ .map((_, i) => (
+
+ ))}
+
+
+ )
+}
+
const Search: FC = () => {
return (
@@ -481,6 +498,7 @@ const App: FC = () => {
+
>
)
}
diff --git a/test/hotkey.test.ts b/test/hotkey.test.ts
index 8e1c111..95e4401 100644
--- a/test/hotkey.test.ts
+++ b/test/hotkey.test.ts
@@ -143,18 +143,28 @@ test('does not ignore hotkeys with Alt on focus in text field', () => {
test('supports non-English keyboard layouts', () => {
let window = new JSDOM().window
startKeyUX(window, [hotkeyKeyUX()])
- window.document.body.innerHTML = ''
+ window.document.body.innerHTML =
+ '' +
+ ''
let clicked = 0
- window.document.querySelector('button')!.addEventListener('click', () => {
+ window.document.querySelector('#button1')!.addEventListener('click', () => {
clicked += 1
})
+ let digitClicked = 0
+ window.document.querySelector('#button2')!.addEventListener('click', () => {
+ digitClicked += 1
+ })
+
press(window, { altKey: true, code: 'KeyB', key: 'и' })
equal(clicked, 1)
press(window, { altKey: true, code: 'KeyB', key: 'Unidentified' })
equal(clicked, 2)
+
+ press(window, { altKey: true, code: 'Digit0', key: 'º' })
+ equal(digitClicked, 1)
})
test('allows to override hotkeys', () => {