Skip to content

Commit 42c7ce6

Browse files
committed
Refactor useKeypress
1 parent 1914229 commit 42c7ce6

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

index.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -741,20 +741,23 @@ export function useIsFirstRender() {
741741

742742
export function useKeyPress(key, cb, options = {}) {
743743
const { event = "keydown", target = window ?? null, eventOptions } = options;
744-
const eventOptionsRef = React.useRef(eventOptions);
745744

746-
const onEvent = React.useEffectEvent((event) => {
747-
if (event.key === key) {
748-
cb(event);
749-
}
750-
});
745+
const onListen = React.useEffectEvent((target, event) => {
746+
const handler = (event) => {
747+
if (event.key === key) {
748+
cb(event);
749+
}
750+
};
751751

752-
React.useEffect(() => {
753-
target.addEventListener(event, onEvent, eventOptionsRef.current);
752+
target.addEventListener(event, handler, eventOptions);
754753

755754
return () => {
756-
target.removeEventListener(event, onEvent);
755+
target.removeEventListener(event, handler);
757756
};
757+
});
758+
759+
React.useEffect(() => {
760+
return onListen(target, event);
758761
}, [target, event]);
759762
}
760763

0 commit comments

Comments
 (0)