keycloak_theme/src/lib/components/LoginResetPassword.tsx

81 lines
3.3 KiB
TypeScript
Raw Normal View History

2021-03-07 14:57:53 +01:00
import { memo } from "react";
import { Template } from "./Template";
import type { KcProps } from "./KcProps";
2021-06-23 08:16:51 +02:00
import type { KcContextBase } from "../getKcContext/KcContextBase";
2021-03-07 15:37:37 +01:00
import { useKcMessage } from "../i18n/useKcMessage";
2021-03-07 14:57:53 +01:00
import { cx } from "tss-react";
2021-06-23 08:16:51 +02:00
export const LoginResetPassword = memo(({ kcContext, ...props }: { kcContext: KcContextBase.LoginResetPassword; } & KcProps) => {
2021-03-07 14:57:53 +01:00
2021-03-07 15:37:37 +01:00
const { msg, msgStr } = useKcMessage();
2021-03-07 14:57:53 +01:00
const {
url,
realm,
auth
} = kcContext;
return (
<Template
2021-03-08 00:09:52 +01:00
{...{ kcContext, ...props }}
2021-03-07 14:57:53 +01:00
displayMessage={false}
2021-03-07 15:37:37 +01:00
headerNode={msg("emailForgotTitle")}
2021-03-07 14:57:53 +01:00
formNode={
<form id="kc-reset-password-form" className={cx(props.kcFormClass)} action={url.loginAction} method="post">
<div className={cx(props.kcFormGroupClass)}>
<div className={cx(props.kcLabelWrapperClass)}>
<label htmlFor="username" className={cx(props.kcLabelClass)}>
{
!realm.loginWithEmailAllowed ?
2021-03-07 15:37:37 +01:00
msg("username")
2021-03-07 14:57:53 +01:00
:
!realm.registrationEmailAsUsername ?
2021-03-07 15:37:37 +01:00
msg("usernameOrEmail") :
msg("email")
2021-03-07 14:57:53 +01:00
}
</label>
</div>
<div className={cx(props.kcInputWrapperClass)}>
<input
type="text"
id="username"
name="username"
className={cx(props.kcInputClass)}
autoFocus
defaultValue={
auth !== undefined && auth.showUsername ?
auth.attemptedUsername : undefined
}
/>
</div>
</div>
<div className={cx(props.kcFormGroupClass, props.kcFormSettingClass)}>
<div id="kc-form-options" className={cx(props.kcFormOptionsClass)}>
<div className={cx(props.kcFormOptionsWrapperClass)}>
<span>
2021-03-07 15:37:37 +01:00
<a href={url.loginUrl}>{msg("backToLogin")}</a>
2021-03-07 14:57:53 +01:00
</span>
</div>
</div>
<div id="kc-form-buttons" className={cx(props.kcFormButtonsClass)}>
<input
className={cx(
props.kcButtonClass, props.kcButtonPrimaryClass,
props.kcButtonBlockClass, props.kcButtonLargeClass
)}
type="submit"
2021-03-22 05:21:05 +01:00
value={msgStr("doSubmit")}
2021-03-07 14:57:53 +01:00
/>
</div>
</div>
</form>
}
2021-03-07 15:37:37 +01:00
infoNode={msg("emailInstruction")}
2021-03-07 14:57:53 +01:00
/>
);
});