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', () => {