@leancodepl/kratos
Version:
Headless React components library for building Ory Kratos authentication flows
31 lines (30 loc) • 1.42 kB
TypeScript
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 {};