Skip to content

Commit

Permalink
Implemented IP utils
Browse files Browse the repository at this point in the history
  • Loading branch information
KomelT committed Aug 7, 2024
1 parent 9f9e702 commit f0067e6
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
26 changes: 24 additions & 2 deletions src/components/PageComponents/Config/Network.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,27 @@ import type { NetworkValidation } from "@app/validation/config/network.js";
import { DynamicForm } from "@components/Form/DynamicForm.js";
import { useDevice } from "@core/stores/deviceStore.js";
import { Protobuf } from "@meshtastic/js";
import { convertIntToIpAddress, convertIpAddressToInt } from "@core/utils/ip.js";

export const Network = (): JSX.Element => {
const { config, setWorkingConfig } = useDevice();

const netConfig = {
wifiEnabled: config.network?.wifiEnabled,
wifiSsid: config.network?.wifiSsid,
wifiPsk: config.network?.wifiPsk,
ethEnabled: config.network?.ethEnabled,
addressMode: config.network?.addressMode,
ipv4Config: {
ip: convertIntToIpAddress(config.network?.ipv4Config?.ip ?? 0),
gateway: convertIntToIpAddress(config.network?.ipv4Config?.gateway ?? 0),
subnet: convertIntToIpAddress(config.network?.ipv4Config?.subnet ?? 0),
dns: convertIntToIpAddress(config.network?.ipv4Config?.dns ?? 0),
},
ntpServer: config.network?.ntpServer,
rsyslogServer: config.network?.rsyslogServer,
}

const onSubmit = (data: NetworkValidation) => {
setWorkingConfig(
new Protobuf.Config.Config({
Expand All @@ -14,7 +31,12 @@ export const Network = (): JSX.Element => {
value: {
...data,
ipv4Config: new Protobuf.Config.Config_NetworkConfig_IpV4Config(
data.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,
},
),
},
},
Expand All @@ -25,7 +47,7 @@ export const Network = (): JSX.Element => {
return (
<DynamicForm<NetworkValidation>
onSubmit={onSubmit}
defaultValues={config.network}
defaultValues={netConfig}
fieldGroups={[
{
label: "WiFi Config",
Expand Down
8 changes: 4 additions & 4 deletions src/validation/config/network.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,17 @@ export class NetworkValidationIpV4Config
{
@IsIP()
@IsOptional()
ip: number;
ip: string;

@IsIP()
@IsOptional()
gateway: number;
gateway: string;

@IsIP()
@IsOptional()
subnet: number;
subnet: string;

@IsIP()
@IsOptional()
dns: number;
dns: string;
}

0 comments on commit f0067e6

Please sign in to comment.