summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2024-09-21 14:38:49 +0200
committerYuval Adam <_@yuv.al>2024-09-21 15:13:25 +0200
commitfd74c1d7c34e104117fe9f0e2c1b9bc0e6662750 (patch)
treeb0aa2501e2b0ec055854019c2d8c691304c6096e /app
parentc43a0845260f79604703a6d83809ba780d1a246c (diff)
Implement handleKeyDown() event
Diffstat (limited to 'app')
-rw-r--r--app/page.tsx22
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}
/>