mirror of
https://github.com/streamich/react-use.git
synced 2026-01-18 14:06:52 +00:00
22 lines
560 B
TypeScript
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;
|