UNPKG

@geneui/components

Version:

The Gene UI components library designed for BI tools

22 lines (19 loc) 769 B
import { useCallback, useEffect } from 'react'; const useKeyDown = function (callback, deps, ref) { let keys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; const handleKeyDown = useCallback(e => { if (!keys.length || keys.includes(e.key)) { callback(e); } }, [...keys, ...deps]); useEffect(() => { if (ref && ref.current) { ref.current.addEventListener('keydown', handleKeyDown); return () => { var _ref$current; return ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.removeEventListener('keydown', handleKeyDown); }; } }, [handleKeyDown, ref.current]); }; export { useKeyDown as default };