Skip to content

A signup form with email, first name, and last name fields. There is no password step here: the user activates the account through the verification email, then signs in with whichever method your app enables.

Props:

PropTypeDefaultDescription
onSignup() => void(none)Called after successful signup
onError(error: Error) => void(none)Called on signup error
showLoginLinkbooleantrueShow a link to the login page
loginHrefstring'/auth/login'Login page URL
headingstring'Create your account'Custom heading text
headingSlotReactNode(none)The heading as a node, on the form step only (the “Check your email” step keeps its own)
footerReactNode(none)Custom footer content

You may not need to write this page. <BridgeAuthRoutes> mounted at /auth/* already serves /auth/signup with this form. Render SignupForm yourself only to take that page over: <BridgeAuthRoutes pages={{ signup: <SignupPage /> }} />.

Usage:

import { SignupForm } from '@nebulr-group/bridge-react';
import { useNavigate } from 'react-router-dom';

function SignupPage() {
  const navigate = useNavigate();

  return (
    <SignupForm
      showLoginLink
      loginHref="/auth/login"
      onSignup={() => navigate('/auth/login')}
      onError={(err) => console.error(err)}
    />
  );
}

After signup, the user receives a verification email. Once verified, they can sign in.

Tip: LoginForm’s signup link points to /auth/signup by default; if your signup page lives elsewhere, override it with LoginForm’s signupHref prop. See Email & password.