UNPKG

react-pdf-ner-annotator

Version:

A React component to annotate named entities directly onto a PDF.

36 lines 1.55 kB
"use strict"; exports.__esModule = true; var react_1 = require("react"); var useKeyPressedListener = function (targetKey) { if (targetKey === void 0) { targetKey = 'CONTROL'; } var _a = (0, react_1.useState)(false), keyPressed = _a[0], setKeyPressed = _a[1]; var getTargetKeys = (0, react_1.useCallback)(function () { if (targetKey.toUpperCase() === 'CONTROL' || targetKey.toUpperCase() === 'META') { return ['CONTROL', 'META']; } return [targetKey.toUpperCase()]; }, [targetKey]); var downHandler = (0, react_1.useCallback)(function (_a) { var key = _a.key; if (getTargetKeys().includes(key === null || key === void 0 ? void 0 : key.toUpperCase())) { setKeyPressed(true); } }, [getTargetKeys]); var upHandler = (0, react_1.useCallback)(function (_a) { var key = _a.key; if (getTargetKeys().includes(key === null || key === void 0 ? void 0 : key.toUpperCase())) { setKeyPressed(false); } }, [getTargetKeys]); (0, react_1.useEffect)(function () { window.addEventListener('keydown', downHandler); window.addEventListener('keyup', upHandler); return function () { window.removeEventListener('keydown', downHandler); window.removeEventListener('keyup', upHandler); }; }, [downHandler, upHandler]); return keyPressed; }; exports["default"] = useKeyPressedListener; //# sourceMappingURL=useKeyPressedListener.js.map