import { db } from "@/db"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Badge } from "@/components/ui/badge"; import { Plus } from "lucide-react"; import { redirect } from "next/navigation"; import { DeleteFormButton } from "@/components/delete-buttons"; import { AdminShellServer } from "@/components/admin-shell-server"; export const dynamic = "force-dynamic"; export default async function AdminFormsPage() { const formsList = await db.query.forms.findMany({ orderBy: (f, { desc }) => [desc(f.createdAt)], }); return (

Forms

Manage your custom forms and view submissions.

{ "use server"; const { forms } = await import("@/db/schema"); const [newForm] = await db.insert(forms).values({ title: "New Form", description: "", }).returning(); redirect(`/admin/form/${newForm.id}`); }}>
Title Status Created Actions {formsList.length === 0 ? ( No forms found. Create one to get started. ) : ( formsList.map((form) => ( {form.title} {form.isOpen ? ( Open ) : ( Closed )} {form.createdAt ? new Date(form.createdAt).toLocaleDateString() : 'N/A'} )) )}
); }