@geneui/components
Version:
The Gene UI components library designed for BI tools
22 lines (19 loc) • 769 B
JavaScript
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 };