import { useState } from "react"; import { clsx } from "keycloakify/tools/clsx"; import type { PageProps } from "keycloakify/account/pages/PageProps"; import { useGetClassName } from "keycloakify/account/lib/useGetClassName"; import type { KcContext } from "../kcContext"; import type { I18n } from "../i18n"; export default function Password(props: PageProps, I18n>) { const { kcContext, i18n, doUseDefaultCss, Template, classes } = props; const { getClassName } = useGetClassName({ doUseDefaultCss, "classes": { ...classes, "kcBodyClass": clsx(classes?.kcBodyClass, "password") } }); 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 ( ); }