import SignupForm from "@app/components/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 { getTranslations } from "next-intl/server"; export const dynamic = "force-dynamic"; export default async function Page(props: { searchParams: Promise<{ redirect: string | undefined; email: string | undefined; fromSmartLogin: string | undefined; skipVerificationEmail: string | undefined; }>; }) { const searchParams = await props.searchParams; const getUser = cache(verifySession); const user = await getUser({ skipCheckVerifyEmail: true }); const t = await getTranslations(); const env = pullEnv(); const isInvite = searchParams?.redirect?.includes("/invite"); 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("inviteAlreadyDescription")}
{t("signupQuestion")}{" "} {t("login")}
> ); }