AddSite useSite

This commit is contained in:
headlesdev 2025-05-20 19:53:23 +02:00
parent d1a289c4fa
commit 4f182ca21d
2 changed files with 33 additions and 44 deletions

View File

@ -21,7 +21,6 @@ export default function AddNetwork({ onNetworkAdded, siteId }: AddNetworkProps)
const { addNetwork } = useNetworks(); const { addNetwork } = useNetworks();
const handleAddNetwork = async () => { const handleAddNetwork = async () => {
try {
const response = addNetwork({ const response = addNetwork({
id: "0", id: "0",
siteId, siteId,
@ -43,9 +42,6 @@ export default function AddNetwork({ onNetworkAdded, siteId }: AddNetworkProps)
} catch (apiError: any) { } catch (apiError: any) {
setError(apiError) setError(apiError)
} }
} catch (err) {
setError("Failed to add network")
}
}; };
return ( return (

View File

@ -5,6 +5,7 @@ import axios from "axios";
import ErrorToast from "@/components/Error"; import ErrorToast from "@/components/Error";
import SuccessToast from "@/components/Success"; import SuccessToast from "@/components/Success";
import { Building2, MapPin, FileText } from "lucide-react"; import { Building2, MapPin, FileText } from "lucide-react";
import useSite from "@/hooks/useSite";
interface AddSiteProps { interface AddSiteProps {
onSiteAdded?: () => void; onSiteAdded?: () => void;
@ -15,30 +16,22 @@ export default function AddSite({ onSiteAdded }: AddSiteProps) {
const [description, setDescription] = useState(""); const [description, setDescription] = useState("");
const [error, setError] = useState(""); const [error, setError] = useState("");
const [success, setSuccess] = 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 { try {
const response = await axios.post("/api/sites/add", { name, description }); const successMessage = await response
if (response.status === 201) { if (onSiteAdded && successMessage) {
const site = response.data.site; onSiteAdded()
if (site) { setSuccess("Site added successfully")
setName("");
setDescription("");
setSuccess("Site added successfully");
document.getElementById('add_site')?.querySelector('form')?.dispatchEvent(
new Event('submit', { cancelable: true })
);
if (onSiteAdded) {
onSiteAdded();
} }
} else { } catch (apiError: any) {
setError("No site received"); setError(apiError)
}
}
} catch (error: any) {
setError(error.response.data.error);
} }
}; };
@ -96,7 +89,7 @@ export default function AddSite({ onSiteAdded }: AddSiteProps) {
<button className="btn btn-outline">Cancel</button> <button className="btn btn-outline">Cancel</button>
<button <button
className="btn btn-success text-success-content" className="btn btn-success text-success-content"
onClick={addSite} onClick={addSiteHandler}
> >
Add Site Add Site
</button> </button>