import { SignupForm } from "@/components/signup-form";
import { env } from "@/env";

/** Only allow same-origin relative redirects (avoid open-redirect). */
function safeNext(v: string | string[] | undefined): string | undefined {
  return typeof v === "string" && v.startsWith("/") && !v.startsWith("//")
    ? v
    : undefined;
}

export default async function SignupPage({
  searchParams,
}: {
  searchParams: Promise<Record<string, string | string[] | undefined>>;
}) {
  const sp = await searchParams;
  const redirectTo = safeNext(sp.next);
  const defaultEmail = typeof sp.email === "string" ? sp.email : undefined;
  return (
    <div className="flex min-h-svh flex-col items-center justify-center bg-muted p-6 md:p-10">
      <div className="w-full max-w-sm">
        <SignupForm
          googleEnabled={env.googleEnabled}
          githubEnabled={env.githubEnabled}
          emailVerificationRequired={env.emailEnabled}
          redirectTo={redirectTo}
          defaultEmail={defaultEmail}
        />
      </div>
    </div>
  );
}
