import GuestsView from "@/components/admin/GuestsView";
import { readSession } from "@/lib/api/admin-server";

export const dynamic = "force-dynamic";

export default async function GuestsPage({
  searchParams,
}: {
  searchParams: Promise<Record<string, string | string[] | undefined>>;
}) {
  const session = await readSession();
  const permissions = session?.permissions ?? [];

  // Seeded from the address rather than read in the client, so `GuestsView` stays a plain
  // component with no Suspense boundary to remember (design D6). This is what makes the
  // events screen's Guests button a link instead of a second guest table.
  const eventId = (await searchParams).event_id;

  return (
    <>
      <h1 className="mb-4 text-lg font-semibold tracking-tight">Guests</h1>
      <GuestsView
        initialEventId={Array.isArray(eventId) ? eventId[0] : (eventId ?? "")}
        canEdit={permissions.includes("add_edit_guests")}
        canDelete={permissions.includes("delete_guests")}
        canExport={permissions.includes("export_csv")}
        canSend={permissions.includes("send_messages")}
        canImport={permissions.includes("import_guests")}
      />
    </>
  );
}
