diff --git a/package.json b/package.json
index 50b6139..6cb37a7 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "kevins-data-toolbox",
- "version": "2.4.3",
+ "version": "2.4.4",
"private": true,
"dependencies": {
"@loadable/component": "^5.15.0",
diff --git a/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.module.scss b/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.module.scss
index 3da84d9..27a815a 100644
--- a/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.module.scss
+++ b/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.module.scss
@@ -21,6 +21,15 @@
}
}
+.inputGrid {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+
+ @media(max-width: 800px) {
+ grid-template-columns: 1fr;
+ }
+}
+
.combiInput {
@include boxStyle;
diff --git a/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.module.scss.d.ts b/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.module.scss.d.ts
index 06ae574..9067c54 100644
--- a/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.module.scss.d.ts
+++ b/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.module.scss.d.ts
@@ -3,5 +3,6 @@ export const combiInput: string;
export const fakeField: string;
export const fakeLabel: string;
export const flexList: string;
+export const inputGrid: string;
export const layoutBox: string;
export const title: string;
diff --git a/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.tsx b/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.tsx
index ee65fa8..8061cf7 100644
--- a/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.tsx
+++ b/src/tools/networking/ipv4subnetting/IPv4SubnettingTool.tsx
@@ -228,50 +228,59 @@ const IPv4SubnettingTool = () => {
-
{setIPPart1(e.currentTarget.value); if((e.currentTarget.value.length >= 3 && e.currentTarget.value.length > ipPart1.length) || e.currentTarget.value[e.currentTarget.value.length - 1] === ".") ipInput2.current?.focus()}} value={ipPart1} />
-
.
-
{setIPPart2(e.currentTarget.value); if((e.currentTarget.value.length >= 3 && e.currentTarget.value.length > ipPart2.length) || e.currentTarget.value[e.currentTarget.value.length - 1] === ".") ipInput3.current?.focus()}} value={ipPart2} />
-
.
-
{setIPPart3(e.currentTarget.value); if((e.currentTarget.value.length >= 3 && e.currentTarget.value.length > ipPart3.length) || e.currentTarget.value[e.currentTarget.value.length - 1] === ".") ipInput4.current?.focus()}} value={ipPart3} />
-
.
-
{setIPPart4(e.currentTarget.value); if((e.currentTarget.value.length >= 3 && e.currentTarget.value.length > ipPart4.length) || e.currentTarget.value[e.currentTarget.value.length - 1] === "/" || e.currentTarget.value[e.currentTarget.value.length - 1] === ".") subnetInput.current?.focus()}} value={ipPart4} />
-
/
-
{setSubnet(e.currentTarget.value);}} value={subnet} />
+
+
+
+
+ {t("tools.networking.common.subnetMask")}
+ {subnetMask || subnetMask === 0 ? intToIPv4String(subnetMask) : "???"}
+
+
+ {t("tools.networking.common.firstAddr")}
+ {firstAddr ? intToIPv4String(firstAddr) : "???"}
+
+
+ {t("tools.networking.common.lastAddr")}
+ {lastAddr ? intToIPv4String(lastAddr) : "???"}
+
+
+ {t("tools.networking.common.netAddr")}
+ {isPeerNet ? "n/a" : (firstAddr ? intToIPv4String(firstAddr - 1) : "???")}
+
+
+ {t("tools.networking.common.broadcastAddr")}
+ {isPeerNet ? "n/a" : (lastAddr ? intToIPv4String(lastAddr + 1) : "???")}
+
+
+ {t("tools.networking.common.ipv4addr")} ({t("tools.networking.common.binary")})
+
+ {ipBinary || ipBinary === 0 ? ipBinary.toString(2).padStart(32, "0").split("").map((bit, index) => {
+ return = (subnetNumber||32) ? "red" : undefined}} key={"bit"+index}>{bit}
+ }) : "???"}
+
+
+
+ {t("tools.networking.common.subnetMask")} ({t("tools.networking.common.binary")})
+
+ {subnetMask || subnetMask === 0 ? subnetMask.toString(2).padStart(32, "0").split("").map((bit, index) => {
+ return {bit}
+ }) : "???"}
+
+
-
-
{t("tools.networking.common.subnetMask")}
-
{subnetMask || subnetMask === 0 ? intToIPv4String(subnetMask) : "???"}
-
-
{t("tools.networking.common.firstAddr")}
-
{firstAddr ? intToIPv4String(firstAddr) : "???"}
-
-
{t("tools.networking.common.lastAddr")}
-
{lastAddr ? intToIPv4String(lastAddr) : "???"}
-
-
{t("tools.networking.common.netAddr")}
-
{isPeerNet ? "n/a" : (firstAddr ? intToIPv4String(firstAddr - 1) : "???")}
-
-
{t("tools.networking.common.broadcastAddr")}
-
{isPeerNet ? "n/a" : (lastAddr ? intToIPv4String(lastAddr + 1) : "???")}
-
-
{t("tools.networking.common.ipv4addr")} ({t("tools.networking.common.binary")})
-
- {ipBinary || ipBinary === 0 ? ipBinary.toString(2).padStart(32, "0").split("").map((bit, index) => {
- return = (subnetNumber||32) ? "red" : undefined}} key={"bit"+index}>{bit}
- }) : "???"}
-
-
-
{t("tools.networking.common.subnetMask")} ({t("tools.networking.common.binary")})
-
- {subnetMask || subnetMask === 0 ? subnetMask.toString(2).padStart(32, "0").split("").map((bit, index) => {
- return {bit}
- }) : "???"}
-
-
-
-
)