"use client"; import { Globe, Plus, Server, ServerCog } from "lucide-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { ConfirmDialog } from "@/components/confirm-dialog"; import { PageHeader, PageShell, StatePanel } from "@/components/page-layout"; import { ResourceSection } from "@/components/section-card"; import { ServerTable } from "@/components/servers/server-table"; import { Button } from "@/components/ui/button"; import { useServerList } from "@/hooks/use-server-list"; export default function ServersPage() { const router = useRouter(); const { normalServers, reverseProxies, loading, error, deleteServer } = useServerList(); const [deleteTarget, setDeleteTarget] = useState<{ id: string; type: "normal" | "proxy"; } | null>(null); const handleDelete = async () => { if (!deleteTarget) return; try { await deleteServer(deleteTarget.id, deleteTarget.type); setDeleteTarget(null); } catch (_error) {} }; return ( router.push("/dashboard/servers/create")}> Create Server } /> {loading ? ( ) : error ? ( ) : ( <> } count={normalServers.length} emptyIcon={} emptyTitle="No workloads" emptyDescription="Create a server to begin." > router.push(`/dashboard/servers/edit/${id}`)} onDelete={(id) => setDeleteTarget({ id, type: "normal" })} /> } count={reverseProxies.length} emptyIcon={} emptyTitle="No edge proxies" emptyDescription="Proxy workloads will appear here." > router.push(`/dashboard/servers/edit/${id}`)} onDelete={(id) => setDeleteTarget({ id, type: "proxy" })} /> )} Are you sure you want to delete this{" "} {deleteTarget?.type === "normal" ? "server" : "reverse proxy"}? This action cannot be undone. } confirmLabel="Delete" onConfirm={handleDelete} onOpenChange={(open) => !open && setDeleteTarget(null)} /> ); }