import React, { useMemo, memo, useState } from "react"; import DefaultTemplate from "./Template"; import type { TemplateProps } from "./Template"; import type { KcProps } from "./KcProps"; import type { KcContextBase } from "../getKcContext/KcContextBase"; import { useCssAndCx } from "../tools/useCssAndCx"; import type { I18n } from "../i18n"; import { UserProfileFormFields } from "./shared/UserProfileCommons"; export type RegisterUserProfileProps = KcProps & { kcContext: KcContextBase.RegisterUserProfile; i18n: I18n; doFetchDefaultThemeResources?: boolean; Template?: (props: TemplateProps) => JSX.Element | null; }; const RegisterUserProfile = memo((props: RegisterUserProfileProps) => { const { kcContext, i18n, doFetchDefaultThemeResources = true, Template = DefaultTemplate, ...kcProps_ } = props; const { url, messagesPerField, recaptchaRequired, recaptchaSiteKey } = kcContext; const { msg, msgStr } = i18n; const { cx, css } = useCssAndCx(); const kcProps = useMemo( () => ({ ...kcProps_, "kcFormGroupClass": cx(kcProps_.kcFormGroupClass, css({ "marginBottom": 20 })) }), [cx, css] ); const [isFomSubmittable, setIsFomSubmittable] = useState(false); return (