react-misc-toolbox
Version:
- [ ] diagramexample | optimize creating from blank slate
46 lines (38 loc) • 1.21 kB
JavaScript
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);
};
});
};
;