diff --git a/src/components/SettingForms/WiFi&Modem/ModemCard.tsx b/src/components/SettingForms/WiFi&Modem/ModemCard.tsx
index dcc2dfc..46cbb16 100644
--- a/src/components/SettingForms/WiFi&Modem/ModemCard.tsx
+++ b/src/components/SettingForms/WiFi&Modem/ModemCard.tsx
@@ -6,7 +6,6 @@ const ModemCard = () => {
return (
-
);
diff --git a/src/components/SettingForms/WiFi&Modem/ModemSettings.tsx b/src/components/SettingForms/WiFi&Modem/ModemSettings.tsx
index 56cc831..ca43bba 100644
--- a/src/components/SettingForms/WiFi&Modem/ModemSettings.tsx
+++ b/src/components/SettingForms/WiFi&Modem/ModemSettings.tsx
@@ -6,6 +6,8 @@ import { useEffect, useState } from "react";
import ModemToggle from "./ModemToggle";
import { faEyeSlash, faEye } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { ValidateIPaddress } from "../../../utils/utils";
+import { toast, Toaster } from "sonner";
const ModemSettings = () => {
const [showSettings, setShowSettings] = useState(false);
@@ -16,6 +18,8 @@ const ModemSettings = () => {
const username = modemQuery?.data?.propUsername.value;
const password = modemQuery?.data?.propPassword?.value;
const mode = modemQuery?.data?.propMode?.value;
+ const serverPrimary = modemQuery?.data?.propNameServerPrimary?.value;
+ const serverSecondary = modemQuery?.data?.propNameServerSecondary?.value;
useEffect(() => {
setShowSettings(mode === "AUTO");
@@ -26,6 +30,8 @@ const ModemSettings = () => {
username: username ?? "",
password: password ?? "",
authenticationType: "PAP",
+ serverPrimary: serverPrimary ?? "",
+ serverSecondary: serverSecondary ?? "",
};
const handleSubmit = async (values: ModemSettingsType) => {
@@ -49,9 +55,24 @@ const ModemSettings = () => {
property: "propMode",
value: showSettings ? "AUTO" : "MANUAL",
},
+ {
+ property: "propNameServerPrimary",
+ value: values.serverPrimary,
+ },
+ {
+ property: "propNameServerSecondary",
+ value: values.serverSecondary,
+ },
],
};
- await modemMutation.mutateAsync(modemConfig);
+
+ const response = await modemMutation.mutateAsync(modemConfig);
+
+ if (response?.id) {
+ toast.success("Modem settings updated successfully", {
+ id: "modemSettings",
+ });
+ }
};
return (
@@ -107,9 +128,35 @@ const ModemSettings = () => {
/>
+
+
+
+
+
+
+
+
{
)}
+
>
);
};
diff --git a/src/types/types.ts b/src/types/types.ts
index fbf4f0e..9d5cfdf 100644
--- a/src/types/types.ts
+++ b/src/types/types.ts
@@ -403,6 +403,8 @@ export type ModemSettingsType = {
username: string;
password: string;
authenticationType: string;
+ serverPrimary: string;
+ serverSecondary: string;
};
export type HitKind = "NPED" | "HOTLIST";
diff --git a/src/utils/utils.ts b/src/utils/utils.ts
index ed80a28..9707968 100644
--- a/src/utils/utils.ts
+++ b/src/utils/utils.ts
@@ -184,3 +184,16 @@ export const reverseZoomMapping = (magnification: string) => {
break;
}
};
+
+export function ValidateIPaddress(ipaddress: string) {
+ if (!ipaddress) {
+ return undefined;
+ } else if (
+ !/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(
+ ipaddress
+ )
+ ) {
+ return "Invalid IP";
+ }
+ return undefined;
+}