diff --git a/package.json b/package.json index 6a590a5c..b987b476 100755 --- a/package.json +++ b/package.json @@ -55,25 +55,25 @@ ], "homepage": "https://github.com/garronej/keycloakify", "peerDependencies": { + "@emotion/react": "^11.4.1", + "powerhooks": "^0.11.0", "react": "^16.8.0 || ^17.0.0", - "tss-react": "^1.1.0", - "powerhooks": "^0.9.6", - "@emotion/react": "^11.4.1" + "tss-react": "^1.1.0" }, "devDependencies": { - "tss-react": "^1.1.0", "@emotion/react": "^11.4.1", - "powerhooks": "^0.9.6", "@types/node": "^10.0.0", "@types/react": "^17.0.0", "copyfiles": "^2.4.1", + "husky": "^4.3.8", + "lint-staged": "^11.0.0", + "powerhooks": "^0.11.0", + "prettier": "^2.3.0", "properties-parser": "^0.3.1", "react": "^17.0.1", "rimraf": "^3.0.2", - "typescript": "^4.2.3", - "husky": "^4.3.8", - "lint-staged": "^11.0.0", - "prettier": "^2.3.0" + "tss-react": "^1.1.0", + "typescript": "^4.2.3" }, "dependencies": { "cheerio": "^1.0.0-rc.5", diff --git a/src/lib/components/LoginOtp.tsx b/src/lib/components/LoginOtp.tsx index 50104db2..f09df5da 100644 --- a/src/lib/components/LoginOtp.tsx +++ b/src/lib/components/LoginOtp.tsx @@ -3,7 +3,7 @@ import { Template } from "./Template"; import type { KcProps } from "./KcProps"; import type { KcContextBase } from "../getKcContext/KcContextBase"; import { useKcMessage } from "../i18n/useKcMessage"; -import { appendHead } from "../tools/appendHead"; +import { headInsert } from "../tools/headInsert"; import { join as pathJoin } from "path"; import { useCssAndCx } from "tss-react"; @@ -17,7 +17,7 @@ export const LoginOtp = memo(({ kcContext, ...props }: { kcContext: KcContextBas useEffect(() => { let isCleanedUp = false; - appendHead({ + headInsert({ "type": "javascript", "src": pathJoin(kcContext.url.resourcesCommonPath, "node_modules/jquery/dist/jquery.min.js"), }).then(() => { diff --git a/src/lib/components/RegisterUserProfile.tsx b/src/lib/components/RegisterUserProfile.tsx index c88a6f87..6f42cf79 100644 --- a/src/lib/components/RegisterUserProfile.tsx +++ b/src/lib/components/RegisterUserProfile.tsx @@ -1,17 +1,29 @@ -import { memo, Fragment } from "react"; +import { useMemo, memo, useEffect, useState, Fragment } from "react"; import { Template } from "./Template"; import type { KcProps } from "./KcProps"; -import type { KcContextBase } from "../getKcContext/KcContextBase"; +import type { KcContextBase, Attribute } from "../getKcContext/KcContextBase"; import { useKcMessage } from "../i18n/useKcMessage"; import { useCssAndCx } from "tss-react"; import type { ReactComponent } from "../tools/ReactComponent"; +import { useCallbackFactory } from "powerhooks/useCallbackFactory"; +import { useFormValidationSlice } from "../useFormValidationSlice"; -export const RegisterUserProfile = memo(({ kcContext, ...props }: { kcContext: KcContextBase.RegisterUserProfile } & KcProps) => { - const { url, messagesPerField, realm, passwordRequired, recaptchaRequired, recaptchaSiteKey } = kcContext; +export const RegisterUserProfile = memo(({ kcContext, ...props_ }: { kcContext: KcContextBase.RegisterUserProfile } & KcProps) => { + const { url, messagesPerField, recaptchaRequired, recaptchaSiteKey } = kcContext; const { msg, msgStr } = useKcMessage(); - const { cx } = useCssAndCx(); + const { cx, css } = useCssAndCx(); + + const props = useMemo( + () => ({ + ...props_, + "kcFormGroupClass": cx(props_.kcFormGroupClass, css({ "marginBottom": 20 })), + }), + [cx, css], + ); + + const [isFomSubmittable, setIsFomSubmittable] = useState(false); return (