diff --git a/src/components/PageComponents/Config/Network.tsx b/src/components/PageComponents/Config/Network.tsx index df6bd78e..564f22a3 100644 --- a/src/components/PageComponents/Config/Network.tsx +++ b/src/components/PageComponents/Config/Network.tsx @@ -1,8 +1,11 @@ import type { NetworkValidation } from "@app/validation/config/network.js"; import { DynamicForm } from "@components/Form/DynamicForm.js"; import { useDevice } from "@core/stores/deviceStore.js"; +import { + convertIntToIpAddress, + convertIpAddressToInt, +} from "@core/utils/ip.js"; import { Protobuf } from "@meshtastic/js"; -import { convertIntToIpAddress, convertIpAddressToInt } from "@core/utils/ip.js"; export const Network = (): JSX.Element => { const { config, setWorkingConfig } = useDevice(); @@ -21,7 +24,7 @@ export const Network = (): JSX.Element => { }, ntpServer: config.network?.ntpServer, rsyslogServer: config.network?.rsyslogServer, - } + }; const onSubmit = (data: NetworkValidation) => { setWorkingConfig( @@ -30,14 +33,12 @@ export const Network = (): JSX.Element => { case: "network", value: { ...data, - ipv4Config: new Protobuf.Config.Config_NetworkConfig_IpV4Config( - { - ip: convertIpAddressToInt(data.ipv4Config.ip) ?? 0, - gateway: convertIpAddressToInt(data.ipv4Config.gateway) ?? 0, - subnet: convertIpAddressToInt(data.ipv4Config.subnet) ?? 0, - dns: convertIpAddressToInt(data.ipv4Config.dns) ?? 0, - }, - ), + ipv4Config: new Protobuf.Config.Config_NetworkConfig_IpV4Config({ + ip: convertIpAddressToInt(data.ipv4Config.ip) ?? 0, + gateway: convertIpAddressToInt(data.ipv4Config.gateway) ?? 0, + subnet: convertIpAddressToInt(data.ipv4Config.subnet) ?? 0, + dns: convertIpAddressToInt(data.ipv4Config.dns) ?? 0, + }), }, }, }), diff --git a/src/core/utils/ip.ts b/src/core/utils/ip.ts index 09f7c935..3fcc9686 100644 --- a/src/core/utils/ip.ts +++ b/src/core/utils/ip.ts @@ -3,11 +3,11 @@ export function convertIntToIpAddress(int: number): string { } export function convertIpAddressToInt(ip: string): number | null { - const parts = ip.split('.').map(Number).reverse(); // little-endian byte order + const parts = ip.split(".").map(Number).reverse(); // little-endian byte order if (parts.some(Number.isNaN)) { - return null; + return null; } return parts.reduce((total, part) => (total << 8) | part, 0); -} \ No newline at end of file +} diff --git a/src/validation/config/network.ts b/src/validation/config/network.ts index 65953aae..41db88d7 100644 --- a/src/validation/config/network.ts +++ b/src/validation/config/network.ts @@ -41,7 +41,10 @@ export class NetworkValidation export class NetworkValidationIpV4Config implements - Omit + Omit< + Protobuf.Config.Config_NetworkConfig_IpV4Config, + keyof Message | "ip" | "gateway" | "subnet" | "dns" + > { @IsIP() @IsOptional()