import { redirect } from "next/navigation"; import { eq } from "drizzle-orm"; import { getDb } from "@/db"; import { users } from "@/db/schema"; import { SiteHeader } from "@/components/public/site-header"; import { isAuthorizedAdmin } from "@/lib/auth/authorization"; import { getCustomerSession } from "@/lib/auth/server"; import { safeAuthReturnPath } from "@/lib/auth/return-path"; import { AccountForm } from "./account-form"; import { ProfileForm } from "./profile-form"; export async function AccountPage({ mode, next, verified, verificationError, setup = false }: { mode: "login" | "register"; next: unknown; verified?: boolean; verificationError?: boolean; setup?: boolean; }) { const nextPath = safeAuthReturnPath(next); const session = await getCustomerSession(); if (session) { const returnPath = nextPath.startsWith("/admin") && !isAuthorizedAdmin(session.user) ? "/" : nextPath; if (mode === "register" && setup) { const [user] = await getDb().select({ name: users.name, email: users.email, image: users.image }) .from(users).where(eq(users.id, session.user.id)).limit(1); if (!user) redirect("/auth/login"); return