Browse Source

Error & Format fixing

pull/269/head
Tilen Komel 2 years ago
parent
commit
8ed3ce8203
  1. 21
      src/components/PageComponents/Config/Network.tsx
  2. 6
      src/core/utils/ip.ts
  3. 5
      src/validation/config/network.ts

21
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,
}),
},
},
}),

6
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);
}
}

5
src/validation/config/network.ts

@ -41,7 +41,10 @@ export class NetworkValidation
export class NetworkValidationIpV4Config
implements
Omit<Protobuf.Config.Config_NetworkConfig_IpV4Config, keyof Message>
Omit<
Protobuf.Config.Config_NetworkConfig_IpV4Config,
keyof Message | "ip" | "gateway" | "subnet" | "dns"
>
{
@IsIP()
@IsOptional()

Loading…
Cancel
Save