@enact/sandstone
Version:
Large-screen/TV support library for Enact, containing a variety of UI components.
39 lines (33 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useEventKey = exports["default"] = void 0;
var _utilEvent = _interopRequireDefault(require("@enact/ui/useScroll/utilEvent"));
var _react = require("react");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var useEventKey = exports.useEventKey = function useEventKey() {
// Mutable value
var mutableRef = (0, _react.useRef)({
fn: null
});
// Functions
function addGlobalKeyDownEventListener(fn) {
mutableRef.current.fn = fn;
(0, _utilEvent["default"])('keydown').addEventListener(document, mutableRef.current.fn, {
capture: true
});
}
function removeGlobalKeyDownEventListener() {
(0, _utilEvent["default"])('keydown').removeEventListener(document, mutableRef.current.fn, {
capture: true
});
mutableRef.current.fn = null;
}
// Return
return {
addGlobalKeyDownEventListener: addGlobalKeyDownEventListener,
removeGlobalKeyDownEventListener: removeGlobalKeyDownEventListener
};
};
var _default = exports["default"] = useEventKey;