@reecelucas/react-use-hotkeys
Advanced tools
Comparing version 1.3.3 to 1.3.4
@@ -1,2 +0,1 @@ | ||
declare const _default: (arr1: any[], arr2: any[]) => boolean; | ||
/** | ||
@@ -9,2 +8,3 @@ * Check if two arrays contain the same items. | ||
*/ | ||
declare const _default: (arr1: any[], arr2: any[]) => boolean; | ||
export default _default; |
@@ -0,1 +1,10 @@ | ||
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
}; | ||
export default (function (hotkeys) { | ||
@@ -18,5 +27,5 @@ var hkeys = hotkeys.toLowerCase(); | ||
*/ | ||
return (hkeys.match(/[^\s"']+|"([^"]*)"|'([^']*)'/g) || []).slice().map(function (key) { | ||
return __spreadArray([], (hkeys.match(/[^\s"']+|"([^"]*)"|'([^']*)'/g) || []), true).map(function (key) { | ||
return key.replace(/("|').*?("|')/, ' '); | ||
}); | ||
}); |
@@ -1,2 +0,1 @@ | ||
declare const _default: (arr1: any[], arr2: any[]) => boolean; | ||
/** | ||
@@ -8,2 +7,3 @@ * Check if two arrays contain the same items. | ||
*/ | ||
declare const _default: (arr1: any[], arr2: any[]) => boolean; | ||
export default _default; |
@@ -1,3 +0,3 @@ | ||
import 'shim-keyboard-event-key'; | ||
declare const useHotkeys: (hotkeys: string | string[], callback: (event: KeyboardEvent) => void, eventListenerOptions?: boolean | AddEventListenerOptions | undefined) => void; | ||
import './vendor/shim-keyboard-event-key'; | ||
declare const useHotkeys: (hotkeys: string | string[], callback: (event: KeyboardEvent) => void, eventListenerOptions?: boolean | AddEventListenerOptions) => void; | ||
export default useHotkeys; |
@@ -10,3 +10,3 @@ import { useEffect, useMemo } from 'react'; | ||
import takeUntilLast from './helpers/takeUntilLast'; | ||
import 'shim-keyboard-event-key'; | ||
import './vendor/shim-keyboard-event-key'; | ||
var KEY_SEQUENCE_TIMEOUT = 1000; | ||
@@ -13,0 +13,0 @@ var ESCAPE_HATCH_KEY = '*'; |
@@ -1,2 +0,1 @@ | ||
declare const _default: (arr1: any[], arr2: any[]) => boolean; | ||
/** | ||
@@ -9,2 +8,3 @@ * Check if two arrays contain the same items. | ||
*/ | ||
declare const _default: (arr1: any[], arr2: any[]) => boolean; | ||
export default _default; |
"use strict"; | ||
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -20,5 +29,5 @@ exports.default = (function (hotkeys) { | ||
*/ | ||
return (hkeys.match(/[^\s"']+|"([^"]*)"|'([^']*)'/g) || []).slice().map(function (key) { | ||
return __spreadArray([], (hkeys.match(/[^\s"']+|"([^"]*)"|'([^']*)'/g) || []), true).map(function (key) { | ||
return key.replace(/("|').*?("|')/, ' '); | ||
}); | ||
}); |
@@ -1,2 +0,1 @@ | ||
declare const _default: (arr1: any[], arr2: any[]) => boolean; | ||
/** | ||
@@ -8,2 +7,3 @@ * Check if two arrays contain the same items. | ||
*/ | ||
declare const _default: (arr1: any[], arr2: any[]) => boolean; | ||
export default _default; |
@@ -1,3 +0,3 @@ | ||
import 'shim-keyboard-event-key'; | ||
declare const useHotkeys: (hotkeys: string | string[], callback: (event: KeyboardEvent) => void, eventListenerOptions?: boolean | AddEventListenerOptions | undefined) => void; | ||
import './vendor/shim-keyboard-event-key'; | ||
declare const useHotkeys: (hotkeys: string | string[], callback: (event: KeyboardEvent) => void, eventListenerOptions?: boolean | AddEventListenerOptions) => void; | ||
export default useHotkeys; |
@@ -12,12 +12,12 @@ "use strict"; | ||
var takeUntilLast_1 = require("./helpers/takeUntilLast"); | ||
require("shim-keyboard-event-key"); | ||
require("./vendor/shim-keyboard-event-key"); | ||
var KEY_SEQUENCE_TIMEOUT = 1000; | ||
var ESCAPE_HATCH_KEY = '*'; | ||
var useHotkeys = function (hotkeys, callback, eventListenerOptions) { | ||
var hotkeysArray = react_1.useMemo(function () { | ||
var hotkeysArray = (0, react_1.useMemo)(function () { | ||
return Array.isArray(hotkeys) | ||
? hotkeys.map(getHotkeysArray_1.default) | ||
: [getHotkeysArray_1.default(hotkeys)]; | ||
: [(0, getHotkeysArray_1.default)(hotkeys)]; | ||
}, [hotkeys]); | ||
react_1.useEffect(function () { | ||
(0, react_1.useEffect)(function () { | ||
var keySequences = {}; | ||
@@ -40,3 +40,3 @@ var sequenceTimers = {}; | ||
keySequence.push(event.key.toLowerCase()); | ||
if (arraysAreEqual_1.default(keySequence, keys)) { | ||
if ((0, arraysAreEqual_1.default)(keySequence, keys)) { | ||
resetKeySequence(index); | ||
@@ -47,6 +47,6 @@ callback(event); | ||
var handleModifierCombo = function (event, keys) { | ||
var actionKey = tail_1.default(keys); | ||
var modKeys = mapModifierKeys_1.default(takeUntilLast_1.default(keys)); | ||
var activeModKeys = getActiveModifierKeys_1.default(event); | ||
var allModKeysPressed = isSameSet_1.default(modKeys, activeModKeys); | ||
var actionKey = (0, tail_1.default)(keys); | ||
var modKeys = (0, mapModifierKeys_1.default)((0, takeUntilLast_1.default)(keys)); | ||
var activeModKeys = (0, getActiveModifierKeys_1.default)(event); | ||
var allModKeysPressed = (0, isSameSet_1.default)(modKeys, activeModKeys); | ||
if (allModKeysPressed && event.key.toLowerCase() === actionKey) { | ||
@@ -61,3 +61,3 @@ callback(event); | ||
*/ | ||
if (!event.key && !modifierKeyPressed_1.default(event)) { | ||
if (!event.key && !(0, modifierKeyPressed_1.default)(event)) { | ||
return; | ||
@@ -75,3 +75,3 @@ } | ||
// Handle modifier key combos | ||
if (modifierKeyPressed_1.default(event)) { | ||
if ((0, modifierKeyPressed_1.default)(event)) { | ||
handleModifierCombo(event, keysArray); | ||
@@ -81,3 +81,3 @@ return; | ||
// Handle key sequences | ||
if (keysArray.length > 1 && !modifierKeyPressed_1.default(event)) { | ||
if (keysArray.length > 1 && !(0, modifierKeyPressed_1.default)(event)) { | ||
handleKeySequence(event, keysArray, i); | ||
@@ -84,0 +84,0 @@ return; |
{ | ||
"name": "@reecelucas/react-use-hotkeys", | ||
"version": "1.3.3", | ||
"version": "1.3.4", | ||
"description": "React hook to create keyboard shortcuts", | ||
@@ -69,7 +69,4 @@ "main": "lib/index.js", | ||
"tslint-react": "^4.0.0", | ||
"typescript": "^3.4.1" | ||
"typescript": "^4.8.2" | ||
}, | ||
"dependencies": { | ||
"shim-keyboard-event-key": "^1.0.3" | ||
}, | ||
"husky": { | ||
@@ -76,0 +73,0 @@ "hooks": { |
@@ -17,4 +17,2 @@ # react-use-hotkeys | ||
This package has a single dependency, a tiny shim called [`shim-keyboard-event-key`](https://www.npmjs.com/package/shim-keyboard-event-key) that normalises the non-standard `KeyBoardEvent.key` [values](https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/) implemented in Edge and IE. | ||
## Example Usage | ||
@@ -21,0 +19,0 @@ |
25711
1
45
525
118
- Removedshim-keyboard-event-key@^1.0.3
- Removedshim-keyboard-event-key@1.0.3(transitive)