react-use/src/useKeyPressEvent.ts
2019-04-12 23:18:11 +10:00

22 lines
560 B
TypeScript

import { Handler, KeyFilter } from './useKey';
import useKeyPressDefault from './useKeyPress';
import useUpdateEffect from './useUpdateEffect';
const useKeyPressEvent = (
key: string | KeyFilter,
keydown?: Handler | null | undefined,
keyup?: Handler | null | undefined,
useKeyPress = useKeyPressDefault
) => {
const [pressed, event] = useKeyPress(key);
useUpdateEffect(() => {
if (!pressed && keyup) {
keyup(event!);
} else if (pressed && keydown) {
keydown(event!);
}
}, [pressed]);
};
export default useKeyPressEvent;