UNPKG

@leancodepl/kratos

Version:

Headless React components library for building Ory Kratos authentication flows

39 lines (38 loc) 1.53 kB
import { ComponentType, ReactNode } from "react"; import { AuthError, TraitsConfig } from "../../../utils"; import { OnRegistrationFlowError } from "../types"; import { TraitCheckbox, TraitInput } from "./fields"; type TraitsComponents<TTraitsConfig extends TraitsConfig> = { [K in keyof TTraitsConfig]: TTraitsConfig[K] extends { type: "string"; } ? ComponentType<Omit<typeof TraitInput, "trait">> : TTraitsConfig[K] extends { type: "boolean"; } ? ComponentType<Omit<typeof TraitCheckbox, "trait">> : never; }; export type TraitsFormProps<TTraitsConfig extends TraitsConfig> = { traitFields: TraitsComponents<TTraitsConfig> & { Submit: ComponentType<{ children: ReactNode; }>; }; Google: ComponentType<{ children: ReactNode; }>; Apple: ComponentType<{ children: ReactNode; }>; Facebook: ComponentType<{ children: ReactNode; }>; errors: Array<AuthError>; isSubmitting: boolean; isValidating: boolean; }; type TraitsFormWrapperProps<TTraitsConfig extends TraitsConfig> = { traitsConfig: TTraitsConfig; traitsForm: ComponentType<TraitsFormProps<TTraitsConfig>>; onError?: OnRegistrationFlowError<TTraitsConfig>; onRegistrationSuccess?: () => void; }; export declare function TraitsFormWrapper<TTraitsConfig extends TraitsConfig>({ traitsConfig, traitsForm: TraitsForm, onError, onRegistrationSuccess, }: TraitsFormWrapperProps<TTraitsConfig>): import("react/jsx-runtime").JSX.Element; export {};