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} /> +
+
+ +
+ {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} - }) : "???"} - - - -
)