import {useEffect, useRef} from 'react';
import {useCallback, useRef, useEffect} from 'react';
export default function useKeyPress(
key,
callback,
{ event = 'keydown', target = typeof window !== 'undefined' ? window : undefined } = {
event: 'keydown',
target: typeof window !== 'undefined' ? window : undefined,
},
) {
const savedCallback = useRef(callback);
useEffect(() => {
savedCallback.current = callback;
}, [callback]);
useEffect(() => {
if (!target || typeof target.addEventListener !== 'function') {
return;
}
const listener = (e) => {
if (e.key === key) {
savedCallback.current(e);
}
};
target.addEventListener(event, listener);
return () => {
target.removeEventListener(event, listener);
};
}, [event, key, target]);
}