UNPKG

@storm-stack/hooks

Version:

A collection of React hooks used by Storm Software in various client libraries and applications.

23 lines (22 loc) 845 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useEscapeKeydown = useEscapeKeydown; var _react = _interopRequireDefault(require("react")); var _useCallbackRef = require("./use-callback-ref.cjs"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) { const onEscapeKeyDown = (0, _useCallbackRef.useCallbackRef)(onEscapeKeyDownProp); _react.default.useEffect(() => { const handleKeyDown = event => { if (event.key === "Escape") { onEscapeKeyDown(event); } }; ownerDocument.addEventListener("keydown", handleKeyDown); return () => { ownerDocument.removeEventListener("keydown", handleKeyDown); }; }, [onEscapeKeyDown, ownerDocument]); }