feat(web/input): submit on enter press

This commit is contained in:
Luke
2022-06-19 15:13:43 +02:00
parent 5183607279
commit a3b8154b3e
2 changed files with 41 additions and 1 deletions

View File

@@ -0,0 +1,35 @@
import React from "react";
export const useKeyPress = (targetKey: KeyboardEvent["key"]) => {
const [keyPressed, setKeyPressed] = React.useState(false);
const downHandler = React.useCallback(
({ key }: KeyboardEvent) => {
if (key === targetKey) {
setKeyPressed(true);
}
},
[targetKey]
);
const upHandler = React.useCallback(
({ key }: KeyboardEvent) => {
if (key === targetKey) {
setKeyPressed(false);
}
},
[targetKey]
);
React.useEffect(() => {
window.addEventListener("keydown", downHandler);
window.addEventListener("keyup", upHandler);
return () => {
window.removeEventListener("keydown", downHandler);
window.removeEventListener("keyup", upHandler);
};
}, [downHandler, upHandler]);
return keyPressed;
};