import SignupForm from "@app/app/auth/signup/SignupForm"; import { verifySession } from "@app/lib/auth/verifySession"; import { cleanRedirect } from "@app/lib/cleanRedirect"; import { pullEnv } from "@app/lib/pullEnv"; import { Mail } from "lucide-react"; import Link from "next/link"; import { redirect } from "next/navigation"; import { cache } from "react"; import { useTranslations } from "next-intl"; export const dynamic = "force-dynamic"; export default async function Page(props: { searchParams: Promise<{ redirect: string | undefined }>; }) { const searchParams = await props.searchParams; const getUser = cache(verifySession); const user = await getUser(); const env = pullEnv(); const isInvite = searchParams?.redirect?.includes("/invite"); const t = useTranslations(); if (env.flags.disableSignupWithoutInvite && !isInvite) { redirect("/"); } if (user) { redirect("/"); } let inviteId; let inviteToken; if (searchParams.redirect && isInvite) { const parts = searchParams.redirect.split("token="); if (parts.length) { const token = parts[1]; const tokenParts = token.split("-"); if (tokenParts.length === 2) { inviteId = tokenParts[0]; inviteToken = tokenParts[1]; } } } let redirectUrl: string | undefined; if (searchParams.redirect) { redirectUrl = cleanRedirect(searchParams.redirect); } return ( <> {isInvite && (

{t('inviteAlready')}

{t('inviteAlreadyDescription')}

)}

{t('signupQuestion')}{" "} {t('login')}

); }