import { useState, memo } from "react"; import { Template } from "./Template"; import type { KcProps } from "./KcProps"; import type { KcContextBase } from "../getKcContext/KcContextBase"; import { getMsg } from "../i18n"; import { useCssAndCx } from "tss-react"; import { useConstCallback } from "powerhooks/useConstCallback"; import type { FormEventHandler } from "react"; export const Login = memo(({ kcContext, ...props }: { kcContext: KcContextBase.Login } & KcProps) => { const { social, realm, url, usernameEditDisabled, login, auth, registrationDisabled } = kcContext; const { msg, msgStr } = getMsg(kcContext); const { cx } = useCssAndCx(); const [isLoginButtonDisabled, setIsLoginButtonDisabled] = useState(false); const onSubmit = useConstCallback>(e => { e.preventDefault(); setIsLoginButtonDisabled(true); const formElement = e.target as HTMLFormElement; //NOTE: Even if we login with email Keycloak expect username and password in //the POST request. formElement.querySelector("input[name='email']")?.setAttribute("name", "username"); formElement.submit(); }); return (