Skip to content

Commit 66b1ab6

Browse files
Make numpad '+' and '-' mimic up and down arrows (#216)
1 parent 2cfe192 commit 66b1ab6

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

client/src/components/admin/ResultAttemptsForm/useKeyNavigation.jsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ export default function useKeyNavigation(containerRef) {
88
if (
99
!["ArrowUp", "ArrowDown", "Enter", "Tab", "Escape", " "].includes(
1010
event.key
11-
)
11+
) &&
12+
!["NumpadAdd", "NumpadSubtract"].includes(event.code)
1213
) {
1314
return;
1415
}
@@ -29,7 +30,10 @@ export default function useKeyNavigation(containerRef) {
2930
return;
3031
}
3132

32-
if (["ArrowUp", "ArrowDown"].includes(event.key)) {
33+
if (
34+
["ArrowUp", "ArrowDown"].includes(event.key) ||
35+
["NumpadAdd", "NumpadSubtract"].includes(event.code)
36+
) {
3337
// Prevent page scrolling.
3438
event.preventDefault();
3539
// Prevent from opening autocomplete popup.
@@ -81,11 +85,12 @@ export default function useKeyNavigation(containerRef) {
8185
const index = inputs.findIndex((input) => event.target === input);
8286
if (index === -1) return;
8387
const mod = (n) => (n + inputs.length) % inputs.length;
84-
if (event.key === "ArrowUp") {
88+
if (event.key === "ArrowUp" || event.code === "NumpadSubtract") {
8589
const previousElement = inputs[mod(index - 1)];
8690
focusAndSelect(previousElement);
8791
} else if (
8892
event.key === "ArrowDown" ||
93+
event.code === "NumpadAdd" ||
8994
(event.target.tagName === "INPUT" && event.key === "Enter")
9095
) {
9196
const nextElement = inputs[mod(index + 1)];
@@ -103,7 +108,8 @@ export default function useKeyNavigation(containerRef) {
103108

104109
function handleKeyDown(event) {
105110
if (
106-
["ArrowUp", "ArrowDown", "Enter", " "].includes(event.key) &&
111+
(["ArrowUp", "ArrowDown", "Enter", " "].includes(event.key) ||
112+
["NumpadAdd", "NumpadSubtract"].includes(event.code)) &&
107113
event.target === document.body
108114
) {
109115
// Focus the form if no input is focused and one of the above keys gets pressed.

0 commit comments

Comments
 (0)