1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | var React = require('react');
|
8 | var React__default = _interopDefault(React);
|
9 |
|
10 | function useKeyDown(key, callback) {
|
11 | var keys = React.useMemo(function () {
|
12 | return Array.isArray(key) ? key : [key];
|
13 | }, [key]);
|
14 | var handleKeyDown = React.useCallback(function (event) {
|
15 | if (keys.includes(event.keyCode)) {
|
16 | callback(event.keyCode, event);
|
17 | }
|
18 | }, [callback, keys]);
|
19 | React.useEffect(function () {
|
20 | if (typeof window === 'undefined') {
|
21 | return;
|
22 | }
|
23 |
|
24 | window.addEventListener('keydown', handleKeyDown);
|
25 | return function () {
|
26 | window.removeEventListener('keydown', handleKeyDown);
|
27 | };
|
28 | }, [handleKeyDown]);
|
29 | }
|
30 |
|
31 | exports.useKeyDown = useKeyDown;
|
32 |
|