Implemented IP utils
This commit is contained in:
@@ -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({
|
||||
@@ -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,
|
||||
},
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -25,7 +47,7 @@ export const Network = (): JSX.Element => {
|
||||
return (
|
||||
<DynamicForm<NetworkValidation>
|
||||
onSubmit={onSubmit}
|
||||
defaultValues={config.network}
|
||||
defaultValues={netConfig}
|
||||
fieldGroups={[
|
||||
{
|
||||
label: "WiFi Config",
|
||||
|
||||
Reference in New Issue
Block a user