import { redirect } from "next/navigation"; import { getServerSession } from "next-auth"; import { authOptions } from "@/lib/auth"; import { isAdminEmail } from "@/lib/admin"; import { organizerRepo } from "@/server/repositories/organizer.repo"; import { ReviewCard } from "@/features/organizer/components/review-card"; type Tab = "PENDING" | "APPROVED" | "REJECTED"; interface PageProps { searchParams: Promise<{ tab?: string }>; } export default async function AdminVerificationsPage({ searchParams }: PageProps) { const session = await getServerSession(authOptions); if (!session?.user) redirect("/login?callbackUrl=/admin/verifications"); if (!isAdminEmail(session.user.email)) { return (

Halaman ini hanya untuk admin SeTrip.

); } const params = await searchParams; const tab: Tab = params.tab === "APPROVED" || params.tab === "REJECTED" ? params.tab : "PENDING"; const items = await organizerRepo.listByStatus(tab); const tabs: { key: Tab; label: string }[] = [ { key: "PENDING", label: "Pending" }, { key: "APPROVED", label: "Disetujui" }, { key: "REJECTED", label: "Ditolak" }, ]; return (

Review Verifikasi Organizer

Periksa data KTP, selfie, dan rekening sebelum menyetujui.

{tabs.map((t) => ( {t.label} ))}
{items.length === 0 ? (

Tidak ada data.

) : (
{items.map((v) => ( ))}
)}
); }