diff options
| author | Yuval Adam <_@yuv.al> | 2024-09-21 14:35:55 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2024-09-21 15:13:25 +0200 |
| commit | c43a0845260f79604703a6d83809ba780d1a246c (patch) | |
| tree | 6a0c6bb0eedd52552b3e0bc482581e5c46f0953a | |
| parent | 44fa4def06148c3f899b0b8dd4e5b4485c8833cd (diff) | |
Implement handleWheel() event
| -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 459609b..29f70be 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -23,6 +23,26 @@ export default function Cidr() { setIp(newIp); } + const handleWheel = (event: React.WheelEvent<HTMLInputElement>, i: number, max: number) => { + const min = 0; + let target = event.currentTarget as HTMLInputElement; + let value = parseInt(target.value); + + if (event.deltaY > 0 && value > min) { + value -= 1; + } + if (event.deltaY < 0 && value < max) { + value += 1; + } + + if (i == 4) { + setCidr(value); + } + else { + setIpOctet(i, value); + } + } + const pretty = ip.join('.') + '/' + cidr; const netmask = new Netmask(pretty); @@ -60,6 +80,7 @@ export default function Cidr() { type="text" value={octet} onChange={(e) => setIpOctet(i, parseOctet(e.target.value, 255))} + onWheel={(e) => handleWheel(e, i, 255)} className={`w-20 h-20 text-3xl text-center rounded-md ${cols[i]}`} maxLength={3} /> @@ -71,6 +92,7 @@ export default function Cidr() { key={`inp-cidr`} value={cidr} onChange={(e) => setCidr(parseOctet(e.target.value, 32))} + onWheel={(e) => handleWheel(e, 4, 32)} className="w-20 h-20 text-3xl text-center rounded-md bg-slate-300" maxLength={2} /> |
