Fix tenant creation page error handling and logging
Some checks failed
CI - Production Readiness / Verify (push) Has been cancelled
Some checks failed
CI - Production Readiness / Verify (push) Has been cancelled
This commit is contained in:
@ -15,10 +15,22 @@ export default async function NewTenantPage({
|
||||
redirect("/unauthorized");
|
||||
}
|
||||
|
||||
const [plans, params] = await Promise.all([
|
||||
prisma.subscriptionPlan.findMany({ orderBy: { priceMonthly: "asc" } }),
|
||||
searchParams ?? Promise.resolve({ error: undefined })
|
||||
]);
|
||||
const params = await (searchParams ?? Promise.resolve({ error: undefined }));
|
||||
let plans: Array<{
|
||||
id: string;
|
||||
name: string;
|
||||
code: string;
|
||||
priceMonthly: number;
|
||||
}> = [];
|
||||
|
||||
try {
|
||||
plans = await prisma.subscriptionPlan.findMany({ orderBy: { priceMonthly: "asc" } });
|
||||
} catch (error) {
|
||||
console.error("[tenant/new] load plans failed", {
|
||||
actorUserId: session.userId,
|
||||
error: error instanceof Error ? error.message : String(error)
|
||||
});
|
||||
}
|
||||
|
||||
const error = params.error;
|
||||
const errorMessage =
|
||||
@ -30,6 +42,10 @@ export default async function NewTenantPage({
|
||||
? "Slug tenant sudah dipakai."
|
||||
: error === "admin_email_exists"
|
||||
? "Email admin awal sudah terpakai."
|
||||
: error === "tenant_creation_failed"
|
||||
? "Tidak bisa membuat tenant, silakan cek log server untuk detail error."
|
||||
: error === "plans_fetch_failed"
|
||||
? "Tidak dapat memuat daftar plan. Cek log server/DB koneksi."
|
||||
: null;
|
||||
|
||||
return (
|
||||
@ -37,6 +53,11 @@ export default async function NewTenantPage({
|
||||
<SectionCard title="Tenant form">
|
||||
<form action={createTenant} className="grid gap-4 md:max-w-3xl md:grid-cols-2">
|
||||
{errorMessage ? <p className="col-span-2 rounded-xl border border-warning/30 bg-warning/10 p-3 text-sm text-warning">{errorMessage}</p> : null}
|
||||
{plans.length === 0 ? (
|
||||
<p className="col-span-2 rounded-xl border border-warning/30 bg-warning/10 p-3 text-sm text-warning">
|
||||
Belum ada data plan. Isi dulu plan pada <a href="/super-admin/billing/plans" className="underline">Catalog Plan</a> sebelum membuat tenant.
|
||||
</p>
|
||||
) : null}
|
||||
<input name="name" className="rounded-xl border border-line px-4 py-3" placeholder="Company name" required />
|
||||
<input name="slug" className="rounded-xl border border-line px-4 py-3" placeholder="Tenant slug" required />
|
||||
<input name="timezone" className="rounded-xl border border-line px-4 py-3" placeholder="Timezone" required />
|
||||
|
||||
Reference in New Issue
Block a user