import type { Metadata } from "next"; import { notFound, redirect } from "next/navigation"; import messages from "../../../messages/en/index"; import { routeMetadata } from "../../../lib/siteMetadata"; import { isDatabaseConfigured } from "../../../lib/server/env"; import { prisma } from "../../../lib/server/db"; import { grantWorkshopInquiryAdmin, isWorkshopInquiryAdmin, workshopInquiryAdminToken, } from "../../../lib/server/workshopInquiryAdmin"; export const metadata: Metadata = routeMetadata("/workshop-inquiries", { title: messages.metadata.workshopInquiries.title, }); async function unlock(formData: FormData) { "use server"; const password = String(formData.get("password") ?? ""); const ok = await grantWorkshopInquiryAdmin(password); redirect(ok ? "/workshop-inquiries" : "/workshop-inquiries?denied=1"); } export default async function WorkshopInquiriesPage({ searchParams, }: { searchParams: Promise<{ denied?: string }>; }) { if (!workshopInquiryAdminToken()) notFound(); const copy = messages.pages.workshopInquiries; const params = await searchParams; const allowed = await isWorkshopInquiryAdmin(); if (!allowed) { return (

{copy.title}

{params.denied ? (

{copy.unlockError}

) : null}
); } const rows = isDatabaseConfigured() ? await prisma.workshopInquiry.findMany({ orderBy: { createdAt: "desc" }, take: 200 }) : []; return (

{copy.title}

{copy.export}
{rows.length === 0 ? (

{copy.empty}

) : (
{rows.map((row) => ( ))}
{copy.columns.when} {copy.columns.organization} {copy.columns.kind} {copy.columns.members} {copy.columns.route} {copy.columns.contact}
{row.createdAt.toISOString().slice(0, 10)} {row.organizationName} {row.organizationKind} {row.memberCount} {row.routeSuggestion} {row.contactName}
{row.email}
)}
); }