UNPKG

@storm-stack/hooks

Version:

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

17 lines (16 loc) 586 B
import React from "react"; import { useCallbackRef } from "./use-callback-ref.mjs"; export function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) { const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp); React.useEffect(() => { const handleKeyDown = (event) => { if (event.key === "Escape") { onEscapeKeyDown(event); } }; ownerDocument.addEventListener("keydown", handleKeyDown); return () => { ownerDocument.removeEventListener("keydown", handleKeyDown); }; }, [onEscapeKeyDown, ownerDocument]); }