import { Suspense } from "react";
import { PageHeader } from "@/components/shared/PageHeader";
import { AdminElectionsTable } from "@/components/features/admin/AdminElectionsTable";
import { getAdminElections } from "@/lib/queries/election-queries";

interface AdminElectionsPageProps {
  searchParams: Record<string, string | string[] | undefined>;
}

export default async function AdminElectionsPage({
  searchParams,
}: AdminElectionsPageProps) {
  const status = String(searchParams.status ?? "all");
  const search = String(searchParams.search ?? "");

  const elections = await getAdminElections({
    status: status === "all" ? undefined : status,
    search: search || undefined,
  });

  return (
    <>
      <PageHeader
        title="Elections"
        subtitle="All elections across the platform"
      />
      <div className="flex-1 overflow-y-auto p-4 sm:p-[26px]">
        <Suspense fallback={null}>
          <AdminElectionsTable elections={elections} />
        </Suspense>
      </div>
    </>
  );
}
