import { redirect } from 'react-router'; import { IS_GOOGLE_SSO_ENABLED, IS_MICROSOFT_SSO_ENABLED, IS_OIDC_SSO_ENABLED, } from '@documenso/lib/constants/auth'; import { env } from '@documenso/lib/utils/env'; import { isValidReturnTo, normalizeReturnTo } from '@documenso/lib/utils/is-valid-return-to'; import { SignUpForm } from '~/components/forms/signup'; import { appMetaTags } from '~/utils/meta'; import type { Route } from './+types/signup'; export function meta() { return appMetaTags('Sign Up'); } export function loader({ request }: Route.LoaderArgs) { const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP'); // SSR env variables. const isGoogleSSOEnabled = IS_GOOGLE_SSO_ENABLED; const isMicrosoftSSOEnabled = IS_MICROSOFT_SSO_ENABLED; const isOIDCSSOEnabled = IS_OIDC_SSO_ENABLED; if (NEXT_PUBLIC_DISABLE_SIGNUP === 'true') { throw redirect('/signin'); } let returnTo = new URL(request.url).searchParams.get('returnTo') ?? undefined; returnTo = isValidReturnTo(returnTo) ? normalizeReturnTo(returnTo) : undefined; return { isGoogleSSOEnabled, isMicrosoftSSOEnabled, isOIDCSSOEnabled, returnTo, }; } export default function SignUp({ loaderData }: Route.ComponentProps) { const { isGoogleSSOEnabled, isMicrosoftSSOEnabled, isOIDCSSOEnabled, returnTo } = loaderData; return ( ); }