import Link from "next/link"; import Image from "next/image"; import { notFound, redirect } from "next/navigation"; import { getServerSession } from "next-auth"; import { authOptions } from "@/lib/auth"; import { isAdminEmail } from "@/lib/admin"; import { userRepo } from "@/server/repositories/user.repo"; import { formatRupiah } from "@/lib/utils"; import { SuspendUserButton } from "@/features/admin/components/suspend-user-button"; interface PageProps { params: Promise<{ id: string }>; } export default async function AdminUserDetailPage({ params }: PageProps) { const session = await getServerSession(authOptions); if (!session?.user) redirect("/login?callbackUrl=/admin/users"); if (!isAdminEmail(session.user.email)) { return (
Halaman ini hanya untuk admin SeTrip.
{user.email}
User ID:{" "}
{user.id}
Bergabung{" "} {user.createdAt.toLocaleDateString("id-ID", { day: "numeric", month: "long", year: "numeric", })} {user.acceptedAt && ( <> {" "} · Setuju T&C{" "} {user.acceptedAt.toLocaleDateString("id-ID", { day: "numeric", month: "short", year: "numeric", })} > )}
{user.suspendedReason ?? "Tidak ada alasan tercatat."}
{user.suspendedBy && (Disuspend oleh {user.suspendedBy.email} {user.suspendedAt && ( <> {" "} pada{" "} {user.suspendedAt.toLocaleString("id-ID", { day: "2-digit", month: "short", year: "numeric", hour: "2-digit", minute: "2-digit", })} > )}
)}Tidak bisa suspend akun sendiri.
) : (Status:{" "} {user.organizerVerification.status} {" · "} Buka di /admin/verifications →
{user.organizerVerification.rejectionReason && (Reason: {user.organizerVerification.rejectionReason}
)}User ini belum pernah membuat trip.
) : ({t.title}
{t.destination} ·{" "} {t.date.toLocaleDateString("id-ID", { day: "numeric", month: "short", year: "numeric", })}{" "} · {t.status}
{formatRupiah(t.price)}
Belum ada booking.
) : ({b.trip.title}
{b.trip.date.toLocaleDateString("id-ID", { day: "numeric", month: "short", year: "numeric", })}{" "} · status: {b.status}
{formatRupiah(b.amount)}
{label}
{value}