diff options
| author | Yuval Adam <_@yuv.al> | 2024-09-21 14:38:49 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2024-09-21 15:13:25 +0200 |
| commit | fd74c1d7c34e104117fe9f0e2c1b9bc0e6662750 (patch) | |
| tree | b0aa2501e2b0ec055854019c2d8c691304c6096e /app | |
| parent | c43a0845260f79604703a6d83809ba780d1a246c (diff) | |
Implement handleKeyDown() event
Diffstat (limited to 'app')
| -rw-r--r-- | app/page.tsx | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/page.tsx b/app/page.tsx index 29f70be..a61dd81 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -43,6 +43,26 @@ export default function Cidr() { } } + const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>, i: number, max: number) => { + const min = 0; + let target = event.currentTarget as HTMLInputElement; + let value = parseInt(target.value); + + if (event.key == "ArrowDown" && value > min) { + value -= 1; + } + if (event.key == "ArrowUp" && value < max) { + value += 1; + } + + if (i == 4) { + setCidr(value); + } + else { + setIpOctet(i, value); + } + } + const pretty = ip.join('.') + '/' + cidr; const netmask = new Netmask(pretty); @@ -81,6 +101,7 @@ export default function Cidr() { value={octet} onChange={(e) => setIpOctet(i, parseOctet(e.target.value, 255))} onWheel={(e) => handleWheel(e, i, 255)} + onKeyDown={(e) => handleKeyDown(e, i, 255)} className={`w-20 h-20 text-3xl text-center rounded-md ${cols[i]}`} maxLength={3} /> @@ -93,6 +114,7 @@ export default function Cidr() { value={cidr} onChange={(e) => setCidr(parseOctet(e.target.value, 32))} onWheel={(e) => handleWheel(e, 4, 32)} + onKeyDown={(e) => handleKeyDown(e, 4, 32)} className="w-20 h-20 text-3xl text-center rounded-md bg-slate-300" maxLength={2} /> |
