in packages/react/src/components/Authenticator/SignIn/SignIn.tsx [10:86]
export function SignIn() {
const { isPending, submitForm, updateForm } = useAuthenticator();
const {
components: {
SignIn: { Header = SignIn.Header, Footer = SignIn.Footer },
},
} = useCustomComponents();
const handleChange = (event: React.FormEvent<HTMLFormElement>) => {
if (isInputOrSelectElement(event.target)) {
let { name, type, value } = event.target;
if (
isInputElement(event.target) &&
type === 'checkbox' &&
!event.target.checked
) {
value = undefined;
}
updateForm({ name, value });
}
};
const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault();
submitForm();
};
return (
<View>
<Header />
<form
data-amplify-form=""
data-amplify-authenticator-signin=""
method="post"
onSubmit={handleSubmit}
onChange={handleChange}
>
<FederatedSignIn />
<Flex direction="column">
<fieldset
style={{ display: 'flex', flexDirection: 'column' }}
className="amplify-flex"
disabled={isPending}
>
<UserNameAlias data-amplify-usernamealias />
<PasswordField
data-amplify-password
className="password-field"
placeholder={translate('Password')}
isRequired={true}
name="password"
label={translate('Password')}
autoComplete="current-password"
labelHidden={true}
/>
</fieldset>
<RemoteErrorMessage />
<Button
isDisabled={isPending}
isFullWidth={true}
type="submit"
variation="primary"
isLoading={isPending}
loadingText={translate('Signing in')}
>
{translate('Sign in')}
</Button>
</Flex>
</form>
<Footer />
</View>
);
}