UNPKG

@leancodepl/kratos

Version:

Headless React components library for building Ory Kratos authentication flows

31 lines (30 loc) 1.42 kB
import { ComponentType, ReactNode } from "react"; import { AuthError, TraitsConfig } from "../../../utils"; import { OnSettingsFlowError } 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> = TraitsComponents<TTraitsConfig> & { Submit: ComponentType<{ children: ReactNode; }>; errors: Array<AuthError>; isLoading: boolean; isSubmitting: boolean; isValidating: boolean; emailVerificationRequired: boolean; }; type TraitsFormWrapperProps<TTraitsConfig extends TraitsConfig> = { traitsConfig: TTraitsConfig; traitsForm: ComponentType<TraitsFormProps<TTraitsConfig>>; emailVerificationRequired: boolean; onError?: OnSettingsFlowError<TTraitsConfig>; onChangeTraitsSuccess?: () => void; }; export declare function TraitsFormWrapper<TTraitsConfig extends TraitsConfig>({ traitsConfig, traitsForm: TraitsForm, emailVerificationRequired, onError, onChangeTraitsSuccess, }: TraitsFormWrapperProps<TTraitsConfig>): import("react/jsx-runtime").JSX.Element; export {};