@leancodepl/kratos
Version:
Headless React components library for building Ory Kratos authentication flows
32 lines • 1.8 kB
TypeScript
import { ComponentType, ReactNode } from 'react';
import { AuthError, OidcProviderComponents, OidcProvidersConfig, 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, TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
traitFields: TraitsComponents<TTraitsConfig> & {
Submit: ComponentType<{
children: ReactNode;
}>;
};
oidcProviders: OidcProviderComponents<TOidcProvidersConfig>;
errors: Array<AuthError>;
isSubmitting: boolean;
isValidating: boolean;
};
type TraitsFormWrapperProps<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
traitsConfig: TTraitsConfig;
oidcProvidersConfig?: TOidcProvidersConfig;
traitsForm: ComponentType<TraitsFormProps<TTraitsConfig, TOidcProvidersConfig>>;
onError?: OnRegistrationFlowError<TTraitsConfig>;
onRegistrationSuccess?: () => void;
};
export declare function TraitsFormWrapper<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []>({ traitsConfig, oidcProvidersConfig, traitsForm: TraitsForm, onError, onRegistrationSuccess, }: TraitsFormWrapperProps<TTraitsConfig, TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=TraitsFormWrapper.d.ts.map