UNPKG

mui-tiptap

Version:

A Material-UI (MUI) styled WYSIWYG rich text editor, using Tiptap

21 lines (20 loc) 688 B
import { useEffect, useRef } from "react"; /** When the given key is pressed down, execute the given callback. */ export default function useKeyDown(key, callback) { // Use a ref in case `callback` isn't memoized const callbackRef = useRef(callback); useEffect(() => { callbackRef.current = callback; }, [callback]); useEffect(() => { function handleKeyDown(event) { if (key === event.key) { callbackRef.current(event); } } document.addEventListener("keydown", handleKeyDown); return () => { document.removeEventListener("keydown", handleKeyDown); }; }, [key]); }