diff --git a/components/dialogues/AddNetwork.tsx b/components/dialogues/AddNetwork.tsx
index 692a3e8..4d12210 100644
--- a/components/dialogues/AddNetwork.tsx
+++ b/components/dialogues/AddNetwork.tsx
@@ -21,30 +21,26 @@ export default function AddNetwork({ onNetworkAdded, siteId }: AddNetworkProps)
const { addNetwork } = useNetworks();
const handleAddNetwork = async () => {
+ const response = addNetwork({
+ id: "0",
+ siteId,
+ name,
+ ipv4Subnet,
+ ipv6Subnet,
+ gateway
+ });
+ if (typeof response === "string") {
+ setError(response)
+ return
+ }
try {
- const response = addNetwork({
- id: "0",
- siteId,
- name,
- ipv4Subnet,
- ipv6Subnet,
- gateway
- });
- if (typeof response === "string") {
- setError(response)
- return
+ const successMessage = await response
+ if (onNetworkAdded && successMessage) {
+ onNetworkAdded()
+ setSuccess("Network added successfully")
}
- try {
- const successMessage = await response
- if (onNetworkAdded && successMessage) {
- onNetworkAdded()
- setSuccess("Network added successfully")
- }
- } catch (apiError: any) {
- setError(apiError)
- }
- } catch (err) {
- setError("Failed to add network")
+ } catch (apiError: any) {
+ setError(apiError)
}
};
diff --git a/components/dialogues/AddSite.tsx b/components/dialogues/AddSite.tsx
index d96f83c..c4ee511 100644
--- a/components/dialogues/AddSite.tsx
+++ b/components/dialogues/AddSite.tsx
@@ -5,6 +5,7 @@ import axios from "axios";
import ErrorToast from "@/components/Error";
import SuccessToast from "@/components/Success";
import { Building2, MapPin, FileText } from "lucide-react";
+import useSite from "@/hooks/useSite";
interface AddSiteProps {
onSiteAdded?: () => void;
@@ -15,30 +16,22 @@ export default function AddSite({ onSiteAdded }: AddSiteProps) {
const [description, setDescription] = useState("");
const [error, setError] = useState("");
const [success, setSuccess] = useState("");
+ const { addSite } = useSite();
- const addSite = async () => {
+ const addSiteHandler = async () => {
+ const response = addSite({ id: "", name, description, networks: [] });
+ if (typeof response === "string") {
+ setError(response)
+ return
+ }
try {
- const response = await axios.post("/api/sites/add", { name, description });
- if (response.status === 201) {
- const site = response.data.site;
- if (site) {
- setName("");
- setDescription("");
- setSuccess("Site added successfully");
-
- document.getElementById('add_site')?.querySelector('form')?.dispatchEvent(
- new Event('submit', { cancelable: true })
- );
-
- if (onSiteAdded) {
- onSiteAdded();
- }
- } else {
- setError("No site received");
- }
+ const successMessage = await response
+ if (onSiteAdded && successMessage) {
+ onSiteAdded()
+ setSuccess("Site added successfully")
}
- } catch (error: any) {
- setError(error.response.data.error);
+ } catch (apiError: any) {
+ setError(apiError)
}
};
@@ -96,7 +89,7 @@ export default function AddSite({ onSiteAdded }: AddSiteProps) {