import { useState } from "react"; import { clsx } from "keycloakify/tools/clsx"; import { getKcClsx } from "keycloakify/account/lib/kcClsx"; import type { PageProps } from "keycloakify/account/pages/PageProps"; import type { KcContext } from "../KcContext"; import type { I18n } from "../i18n"; export default function Password(props: PageProps, I18n>) { const { kcContext, i18n, doUseDefaultCss, Template } = props; const classes = { ...props.classes, kcBodyClass: clsx(props.classes?.kcBodyClass, "password") }; const { kcClsx } = getKcClsx({ doUseDefaultCss, classes }); const { url, password, account, stateChecker } = kcContext; const { msgStr, msg } = i18n; const [currentPassword, setCurrentPassword] = useState(""); const [newPassword, setNewPassword] = useState(""); const [newPasswordConfirm, setNewPasswordConfirm] = useState(""); const [newPasswordError, setNewPasswordError] = useState(""); const [newPasswordConfirmError, setNewPasswordConfirmError] = useState(""); const [hasNewPasswordBlurred, setHasNewPasswordBlurred] = useState(false); const [hasNewPasswordConfirmBlurred, setHasNewPasswordConfirmBlurred] = useState(false); const checkNewPassword = (newPassword: string) => { if (!password.passwordSet) { return; } if (newPassword === currentPassword) { setNewPasswordError(msgStr("newPasswordSameAsOld")); } else { setNewPasswordError(""); } }; const checkNewPasswordConfirm = (newPasswordConfirm: string) => { if (newPasswordConfirm === "") { return; } if (newPassword !== newPasswordConfirm) { setNewPasswordConfirmError(msgStr("passwordConfirmNotMatch")); } else { setNewPasswordConfirmError(""); } }; return ( ); }