Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@kv/react-hooks / lib / keyboardEvent.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useKeyboardEvent = void 0;
var react_1 = require("react");
// NOTE: https://medium.com/@nicolaslopezj/reusing-logic-with-react-hooks-8e691f7352fa
var useKeyboardEvent = function (key, callback) {
    var handler = react_1.useCallback(function (event) {
        if (event.key === key) {
            callback();
        }
    }, [key, callback]);
    react_1.useEffect(function () {
        window.addEventListener('keydown', handler);
        return function () {
            window.removeEventListener('keydown', handler);
        };
        // this dependency array must be present AND empty - ignoring the warning
        // eslint-disable-next-line react-hooks/exhaustive-deps
    }, []);
};
exports.useKeyboardEvent = useKeyboardEvent;