hooks promises

This commit is contained in:
headlesdev
2025-05-20 00:06:32 +02:00
parent 6301997eac
commit ca1d60b058
7 changed files with 88 additions and 46 deletions

View File

@@ -2,6 +2,7 @@
import Sidebar from "@/components/Sidebar"
import useSite from "@/hooks/useSite"
import { useEffect, useState } from "react"
import { Network } from "@/app/types"
import Loading from "@/components/Loading"
import { EditModeToggle } from "@/components/EditModeToggle"
import AddNetwork from "@/components/dialogues/AddNetwork"
@@ -20,6 +21,9 @@ interface SitesPageProps {
export default function SitesPage({ username, name, siteId }: SitesPageProps) {
const { site, loadSite, setSiteId, loading } = useSite()
const [isEditMode, setIsEditMode] = useState(false)
const [selectedNetwork, setSelectedNetwork] = useState<Network | null>(null)
const [selectedNetworkId, setSelectedNetworkId] = useState('')
useEffect(() => {
if (siteId) {
@@ -114,19 +118,23 @@ export default function SitesPage({ username, name, siteId }: SitesPageProps) {
<div className="flex gap-1 justify-center">
<button
className="btn btn-primary btn-s px-2"
onClick={() => (document.getElementById('edit_network') as HTMLDialogElement)?.showModal()}
onClick={() => {
setSelectedNetwork(network);
(document.getElementById('edit_network') as HTMLDialogElement)?.showModal();
}}
>
<Pencil className="h-3 w-3" />
</button>
<button
className="btn btn-error btn-s px-2"
onClick={() => (document.getElementById('delete_network') as HTMLDialogElement)?.showModal()}
onClick={() => {
setSelectedNetworkId(network.id);
(document.getElementById('delete_network') as HTMLDialogElement)?.showModal();
}}
>
<Trash className="h-3 w-3" />
</button>
</div>
<EditNetwork siteId={site.id} network={network} onNetworkEdited={loadSite}/>
<DeleteNetwork networkId={network.id} onNetworkDeleted={loadSite}/>
</td>
)}
</tr>
@@ -155,11 +163,25 @@ export default function SitesPage({ username, name, siteId }: SitesPageProps) {
</div>
</div>
<AddNetwork siteId={site.id} onNetworkAdded={loadSite}/>
<EditSite site={site} onSiteEdited={loadSite} />
<DeleteSite siteId={site.id} />
</div>
)}
<AddNetwork siteId={site.id} onNetworkAdded={loadSite}/>
<EditSite site={site} onSiteEdited={loadSite} />
<DeleteSite siteId={site.id} />
{selectedNetwork && (
<EditNetwork
siteId={site.id}
network={selectedNetwork}
onNetworkEdited={loadSite}
/>
)}
{selectedNetworkId && (
<DeleteNetwork
networkId={selectedNetworkId}
onNetworkDeleted={loadSite}
/>
)}
</main>
</Sidebar>
)