import { redirect } from "next/navigation"; import { ShellPage } from "@/components/page-templates"; import { Button, SectionCard } from "@/components/ui"; import { updateTenant } from "@/lib/admin-crud"; import { getSession } from "@/lib/auth"; import { prisma } from "@/lib/prisma"; function formatTenantLabel(tenant: { status: string }) { return tenant.status; } export default async function EditTenantPage({ params, searchParams }: { params: Promise<{ tenantId: string }>; searchParams?: Promise<{ error?: string }>; }) { const session = await getSession(); if (!session || session.role !== "super_admin") { redirect("/unauthorized"); } const { tenantId } = await params; const [tenant, plans, query] = await Promise.all([ prisma.tenant.findUnique({ where: { id: tenantId }, include: { plan: true } }), prisma.subscriptionPlan.findMany({ orderBy: { priceMonthly: "asc" } }), searchParams ?? Promise.resolve({ error: undefined }) ]); if (!tenant) { redirect("/super-admin/tenants?error=tenant_not_found"); } const error = query.error; const infoMessage = error === "missing_fields" ? "Semua field wajib diisi." : error === "slug_exists" ? "Slug sudah dipakai tenant lain." : error === "invalid_plan" ? "Plan tidak valid." : null; return (
{infoMessage ? (

{infoMessage}

) : null}
); }