UI Fixes & reload

This commit is contained in:
headlesdev
2025-05-19 00:23:43 +02:00
parent 6f7d65bcda
commit 58ae03b535
8 changed files with 44 additions and 16 deletions

View File

@@ -24,8 +24,6 @@ export default function SitesPage({ username, name }: SitesPageProps) {
setItemPerPage, setItemPerPage,
loadSites loadSites
} = useSites(); } = useSites();
console.log(sites);
return ( return (
<Sidebar <Sidebar
username={username} username={username}

View File

@@ -119,8 +119,8 @@ export default function SitesPage({ username, name, siteId }: SitesPageProps) {
<Trash className="h-3 w-3" /> <Trash className="h-3 w-3" />
</button> </button>
</div> </div>
<EditNetwork siteId={site.id} network={network} /> <EditNetwork siteId={site.id} network={network} onNetworkEdited={loadSite}/>
<DeleteNetwork networkId={network.id} /> <DeleteNetwork networkId={network.id} onNetworkDeleted={loadSite}/>
</td> </td>
)} )}
</tr> </tr>
@@ -149,8 +149,8 @@ export default function SitesPage({ username, name, siteId }: SitesPageProps) {
</div> </div>
</div> </div>
<AddNetwork siteId={site.id} /> <AddNetwork siteId={site.id} onNetworkAdded={loadSite}/>
<EditSite site={site} /> <EditSite site={site} onSiteEdited={loadSite} />
<DeleteSite siteId={site.id} /> <DeleteSite siteId={site.id} />
</div> </div>
</main> </main>

View File

@@ -30,9 +30,11 @@ export default function AddNetwork({ onNetworkAdded, siteId }: AddNetworkProps)
gateway gateway
}); });
if (onNetworkAdded) { setTimeout(() => {
onNetworkAdded(); if (onNetworkAdded) {
} onNetworkAdded();
}
}, 500);
}; };
return ( return (

View File

@@ -4,13 +4,19 @@ import { Trash2, AlertTriangle } from "lucide-react";
interface DeleteNetworkProps { interface DeleteNetworkProps {
networkId: string; networkId: string;
onNetworkDeleted?: () => void;
} }
export default function DeleteNetwork({ networkId }: DeleteNetworkProps) { export default function DeleteNetwork({ networkId, onNetworkDeleted }: DeleteNetworkProps) {
const { deleteNetwork } = useNetworks(); const { deleteNetwork } = useNetworks();
const handleDelete = () => { const handleDelete = () => {
deleteNetwork(networkId); deleteNetwork(networkId);
setTimeout(() => {
if (onNetworkDeleted) {
onNetworkDeleted();
}
}, 500);
}; };
return ( return (

View File

@@ -11,6 +11,11 @@ interface DeleteSiteProps {
export default function DeleteSite({ siteId }: DeleteSiteProps) { export default function DeleteSite({ siteId }: DeleteSiteProps) {
const router = useRouter() const router = useRouter()
const { deleteSite } = useSite() const { deleteSite } = useSite()
const handleDeleteSite = () => {
deleteSite(siteId)
router.push("/dashboard/sites")
}
return ( return (
<div> <div>
@@ -41,7 +46,7 @@ export default function DeleteSite({ siteId }: DeleteSiteProps) {
<button className="btn btn-outline">Cancel</button> <button className="btn btn-outline">Cancel</button>
<button <button
className="btn btn-error text-error-content" className="btn btn-error text-error-content"
onClick={() => deleteSite(siteId)} onClick={handleDeleteSite}
> >
Delete Site Delete Site
</button> </button>

View File

@@ -8,12 +8,12 @@ import { Network } from "@/app/types";
import { PencilLine, Network as NetworkIcon, Globe, Wifi } from "lucide-react"; import { PencilLine, Network as NetworkIcon, Globe, Wifi } from "lucide-react";
interface EditNetworkProps { interface EditNetworkProps {
onNetworkAdded?: () => void; onNetworkEdited?: () => void;
siteId: string; siteId: string;
network: Network; network: Network;
} }
export default function EditNetwork({ onNetworkAdded, siteId, network }: EditNetworkProps) { export default function EditNetwork({ onNetworkEdited, siteId, network }: EditNetworkProps) {
const [editName, setEditName] = useState(network.name); const [editName, setEditName] = useState(network.name);
const [editIpv4Subnet, setEditIpv4Subnet] = useState(network.ipv4Subnet); const [editIpv4Subnet, setEditIpv4Subnet] = useState(network.ipv4Subnet);
const [editIpv6Subnet, setEditIpv6Subnet] = useState(network.ipv6Subnet); const [editIpv6Subnet, setEditIpv6Subnet] = useState(network.ipv6Subnet);
@@ -31,6 +31,11 @@ export default function EditNetwork({ onNetworkAdded, siteId, network }: EditNet
ipv6Subnet: editIpv6Subnet, ipv6Subnet: editIpv6Subnet,
gateway: editGateway gateway: editGateway
}); });
setTimeout(() => {
if (onNetworkEdited) {
onNetworkEdited();
}
}, 500);
}; };
return ( return (

View File

@@ -9,9 +9,10 @@ import useSite from "@/hooks/useSite"
interface EditSiteProps { interface EditSiteProps {
site: Site site: Site
onSiteEdited?: () => void
} }
export default function EditSite({ site }: EditSiteProps) { export default function EditSite({ site, onSiteEdited }: EditSiteProps) {
const [name, setName] = useState(site.name) const [name, setName] = useState(site.name)
const [description, setDescription] = useState(site.description || "") const [description, setDescription] = useState(site.description || "")
const [error, setError] = useState("") const [error, setError] = useState("")
@@ -23,6 +24,17 @@ export default function EditSite({ site }: EditSiteProps) {
setDescription(site.description || "") setDescription(site.description || "")
}, [site]) }, [site])
const handleEditSite = () => {
editSite({ id: site.id, name, description, networks: site.networks })
setTimeout(() => {
if (onSiteEdited) {
console.log("onSiteEdited")
onSiteEdited()
}
}, 500)
}
return ( return (
<div> <div>
<dialog id="edit_site" className="modal"> <dialog id="edit_site" className="modal">
@@ -75,7 +87,7 @@ export default function EditSite({ site }: EditSiteProps) {
<button className="btn btn-outline">Cancel</button> <button className="btn btn-outline">Cancel</button>
<button <button
className="btn btn-primary" className="btn btn-primary"
onClick={() => editSite({ id: site.id, name, description, networks: site.networks })} onClick={handleEditSite}
disabled={!name} disabled={!name}
> >
Save Changes Save Changes

View File

@@ -27,7 +27,7 @@ const useSite = () => {
const editSite = (site: Site) => { const editSite = (site: Site) => {
axios.post('/api/sites/edit', site) axios.post('/api/sites/edit', site)
.then(() => { .then(() => {
setSite(site); console.log("Site edited successfully");
}) })
.catch(err => { .catch(err => {
console.error(err); console.error(err);