UNPKG

react-misc-toolbox

Version:

- [ ] diagramexample | optimize creating from blank slate

46 lines (38 loc) 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useKBListener = undefined; var _isInteger = require("babel-runtime/core-js/number/is-integer"); var _isInteger2 = _interopRequireDefault(_isInteger); var _react = require("react"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var useKBListener = exports.useKBListener = function useKBListener(_ref) { var keyCodes = _ref.keyCodes; var handleKBInput = function handleKBInput(e) { keyCodes.forEach(function (keyCode) { if ((0, _isInteger2.default)(keyCode[0])) { if (e.keyCode === keyCode[0]) { e.preventDefault(); keyCode[1](e); return; } } if (Array.isArray(keyCode[0])) { if (e.keyCode === keyCode[0][0] && e[keyCode[0][1]]) { e.preventDefault(); keyCode[1](e); return; } } }); }; (0, _react.useEffect)(function () { if (typeof document !== "undefined") { document.addEventListener("keydown", handleKBInput); } return function () { document.removeEventListener("keydown", handleKBInput); }; }); };