TypeScript 97.4%
SQL 1%
JavaScript 0.9%
CSS 0.6%
1import type { Metadata } from "next";2import { redirect } from "next/navigation";3import { getSession } from "@/lib/session";4import { VerifyEmailView } from "../_components/verify-email-view";56export const metadata: Metadata = {7 title: "Verify your email",8 description: "Confirm your email address to activate your PolyLLM account.",9 robots: { index: false, follow: false },10};1112/**13 * Landing page for verification links (`callbackURL=/verify-email`) and for unverified users14 * redirected by `requireUser()`. A successful verification auto-signs the user in, so a verified15 * session here means we can continue straight into the app.16 */17export default async function VerifyEmailPage({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {18 const params = await searchParams;19 const error = Array.isArray(params.error) ? params.error[0] : params.error;20 const session = await getSession();21 if (session?.user.emailVerified && !error) redirect("/app/chat");2223 const fromQuery = Array.isArray(params.email) ? params.email[0] : params.email;24 const email = session?.user.email ?? (typeof fromQuery === "string" ? fromQuery.slice(0, 254) : "");25 return <VerifyEmailView initialEmail={email} errorCode={error && error.length > 0 ? error : null} />;26}27