@leancodepl/kratos
Version:
Headless React components library for building Ory Kratos authentication flows
62 lines (61 loc) • 3.18 kB
TypeScript
import { ComponentType } from "react";
import { TraitsConfig } from "../../utils";
import { EmailVerificationFormProps } from "../verification";
import { ChooseMethodFormProps } from "./chooseMethodForm";
import { TraitsFormProps } from "./traitsForm";
import { OnRegistrationFlowError } from "./types";
export type RegistrationFlowProps<TTraitsConfig extends TraitsConfig> = {
traitsConfig: TTraitsConfig;
traitsForm: ComponentType<TraitsFormProps<TTraitsConfig>>;
chooseMethodForm: ComponentType<ChooseMethodFormProps>;
emailVerificationForm: ComponentType<EmailVerificationFormProps>;
initialFlowId?: string;
returnTo?: string;
onError?: OnRegistrationFlowError<TTraitsConfig>;
onRegistrationSuccess?: () => void;
onVerificationSuccess?: () => void;
onFlowRestart?: () => void;
onSessionAlreadyAvailable?: () => void;
};
/**
* Provides a complete registration flow with step-by-step form handling and verification.
*
* Manages the user registration process through multiple steps: traits collection,
* credentials selection, and optional email verification. Automatically handles flow
* transitions and error states.
*
* @template TTraitsConfig - Configuration type for user traits schema
* @param props - Registration flow configuration and form components
* @param props.traitsConfig - Configuration defining user traits schema and validation
* @param props.traitsForm - React component for collecting user traits (name, email, etc.)
* @param props.chooseMethodForm - React component for selecting authentication method
* @param props.emailVerificationForm - React component for email verification process
* @param props.initialFlowId - Optional existing flow ID to resume registration
* @param props.returnTo - Optional URL to redirect after successful registration
* @param props.onError - Optional callback for handling registration flow errors
* @param props.onRegistrationSuccess - Optional callback triggered after successful registration
* @param props.onVerificationSuccess - Optional callback triggered after email verification
* @param props.onFlowRestart - Optional callback triggered when flow restarts due to expiration
* @param props.onSessionAlreadyAvailable - Optional callback triggered when user is already authenticated
* @returns React component that renders the appropriate registration step
* @example
* ```tsx
* import { RegistrationFlow } from '@leancodepl/kratos';
*
* const traitsConfig = { Email: { trait: "email", type: "string", }, GivenName: { trait: "given_name", type: "string", } } as const;
*
* function App() {
* return (
* <RegistrationFlow
* traitsConfig={traitsConfig}
* traitsForm={UserTraitsForm}
* chooseMethodForm={MethodSelectionForm}
* emailVerificationForm={EmailVerifyForm}
* onRegistrationSuccess={() => console.log('Registration completed')}
* onVerificationSuccess={() => console.log('Email verified')}
* />
* );
* }
* ```
*/
export declare function RegistrationFlow<TTraitsConfig extends TraitsConfig>(props: RegistrationFlowProps<TTraitsConfig>): import("react/jsx-runtime").JSX.Element;