diff options
| author | Yuval Adam <_@yuv.al> | 2024-09-23 21:10:52 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2024-09-23 21:10:52 +0200 |
| commit | 13f72ed52414e1319f71e5216b1ca5843be53bfc (patch) | |
| tree | 48fdceb5d84553a1e25ca82885c01203511701f5 | |
| parent | 3d8a09359c46eb5b9a85616eeb02e8a6a3986e0a (diff) | |
Restore focus behavior on . and / keydown, fixes #91
| -rw-r--r-- | app/page.tsx | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/app/page.tsx b/app/page.tsx index 7f702a4..0c8eaa0 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -50,12 +50,30 @@ export default function Cidr() { const target = event.currentTarget as HTMLInputElement; let value = parseInt(target.value); - if (event.key == "ArrowDown" && value > min) { + if (event.key === "ArrowDown" && value > min) { value -= 1; } - if (event.key == "ArrowUp" && value < max) { + else if (event.key === "ArrowUp" && value < max) { value += 1; } + else if (event.key === '.') { + event.preventDefault(); + const parent = (event.target as Node).parentNode; + const next = parent?.nextSibling?.firstChild; + if (next instanceof HTMLInputElement) { + next.select(); + next.focus(); + } + } + else if (event.key === "/") { + event.preventDefault(); + const parent = (event.target as Node).parentNode; + const mask = parent?.nextSibling; + if (mask instanceof HTMLInputElement) { + mask.select(); + mask.focus(); + } + } if (i == 4) { setCidr(value); |
