diff --git a/src/bin/build-keycloak-theme/generateFtl/generateFtl.ts b/src/bin/build-keycloak-theme/generateFtl/generateFtl.ts index a2e17203b..233bfd6ac 100644 --- a/src/bin/build-keycloak-theme/generateFtl/generateFtl.ts +++ b/src/bin/build-keycloak-theme/generateFtl/generateFtl.ts @@ -16,6 +16,7 @@ export const pageIds = [ "terms.ftl", "login-otp.ftl", "login-update-profile.ftl", + "login-update-password.ftl", "login-idp-link-confirm.ftl", ] as const; diff --git a/src/lib/components/KcApp.tsx b/src/lib/components/KcApp.tsx index 91190ebac..998b852d7 100644 --- a/src/lib/components/KcApp.tsx +++ b/src/lib/components/KcApp.tsx @@ -10,6 +10,7 @@ import { LoginResetPassword } from "./LoginResetPassword"; import { LoginVerifyEmail } from "./LoginVerifyEmail"; import { Terms } from "./Terms"; import { LoginOtp } from "./LoginOtp"; +import { LoginUpdatePassword } from "./LoginUpdatePassword"; import { LoginUpdateProfile } from "./LoginUpdateProfile"; import { LoginIdpLinkConfirm } from "./LoginIdpLinkConfirm"; @@ -33,6 +34,8 @@ export const KcApp = memo(({ kcContext, ...props }: { kcContext: KcContextBase } return ; case "login-otp.ftl": return ; + case "login-update-password.ftl": + return ; case "login-update-profile.ftl": return ; case "login-idp-link-confirm.ftl": diff --git a/src/lib/components/LoginUpdatePassword.tsx b/src/lib/components/LoginUpdatePassword.tsx new file mode 100644 index 000000000..379e2e6d3 --- /dev/null +++ b/src/lib/components/LoginUpdatePassword.tsx @@ -0,0 +1,117 @@ +import { memo } from "react"; +import { Template } from "./Template"; +import type { KcProps } from "./KcProps"; +import type { KcContextBase } from "../getKcContext/KcContextBase"; +import { useKcMessage } from "../i18n/useKcMessage"; +import { useCssAndCx } from "tss-react"; + +export const LoginUpdatePassword = memo(({ kcContext, ...props }: { kcContext: KcContextBase.LoginUpdatePassword } & KcProps) => { + const { cx } = useCssAndCx(); + + const { msg, msgStr } = useKcMessage(); + + const { url, messagesPerField, isAppInitiatedAction, username } = kcContext; + + return ( +