import { redirect } from "next/navigation"; import { getServerSession } from "next-auth"; import { authOptions } from "@/lib/auth"; import { isAdminEmail } from "@/lib/admin"; import { refundRepo } from "@/server/repositories/refund.repo"; import { CreateRefundForm } from "@/features/refund/components/create-refund-form"; import { RefundReviewCard, type RefundCardData, } from "@/features/refund/components/refund-review-card"; type Tab = "PENDING" | "APPROVED" | "REJECTED" | "SUCCEEDED" | "FAILED"; const TABS: { key: Tab; label: string }[] = [ { key: "PENDING", label: "Pending" }, { key: "APPROVED", label: "Disetujui" }, { key: "SUCCEEDED", label: "Selesai" }, { key: "REJECTED", label: "Ditolak" }, { key: "FAILED", label: "Gagal" }, ]; interface PageProps { searchParams: Promise<{ tab?: string }>; } export default async function AdminRefundsPage({ searchParams }: PageProps) { const session = await getServerSession(authOptions); if (!session?.user) redirect("/login?callbackUrl=/admin/refunds"); if (!isAdminEmail(session.user.email)) { return (
Halaman ini hanya untuk admin SeTrip.
Tinjau laporan refund dari peserta dan organizer. Setiap refund harus melalui approval admin sebelum dieksekusi.
Tidak ada refund pada status ini.