feat: add AutoFillGroup to support native password managers

This commit is contained in:
Tobias Leijs 2024-06-25 15:09:04 +02:00
parent fb80dbb196
commit bb65426298
2 changed files with 120 additions and 107 deletions

View file

@ -153,11 +153,16 @@ class _EmailPasswordLoginFormState extends State<EmailPasswordLoginForm> {
),
child: Form(
key: _formKey,
child: AutofillGroup(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
options.emailInputContainerBuilder(
TextFormField(
autofillHints: const [
AutofillHints.email,
AutofillHints.username,
],
textAlign:
options.emailTextAlign ?? TextAlign.start,
onChanged: _updateCurrentEmail,
@ -172,8 +177,11 @@ class _EmailPasswordLoginFormState extends State<EmailPasswordLoginForm> {
),
options.passwordInputContainerBuilder(
TextFormField(
textAlign:
options.passwordTextAlign ?? TextAlign.start,
autofillHints: const [
AutofillHints.password,
],
textAlign: options.passwordTextAlign ??
TextAlign.start,
obscureText: _obscurePassword,
onChanged: _updateCurrentPassword,
validator:
@ -226,7 +234,8 @@ class _EmailPasswordLoginFormState extends State<EmailPasswordLoginForm> {
],
AnimatedBuilder(
animation: _formValid,
builder: (context, _) => options.loginButtonBuilder(
builder: (context, _) =>
options.loginButtonBuilder(
context,
_handleLogin,
!_formValid.value,
@ -259,6 +268,7 @@ class _EmailPasswordLoginFormState extends State<EmailPasswordLoginForm> {
),
),
),
),
],
),
),

View file

@ -129,10 +129,12 @@ class _ForgotPasswordFormState extends State<ForgotPasswordForm> {
),
child: Form(
key: _formKey,
child: AutofillGroup(
child: Align(
alignment: Alignment.center,
child: options.emailInputContainerBuilder(
TextFormField(
autofillHints: const [AutofillHints.email],
textAlign:
options.emailTextAlign ?? TextAlign.start,
focusNode: _focusNode,
@ -150,6 +152,7 @@ class _ForgotPasswordFormState extends State<ForgotPasswordForm> {
),
),
),
),
if (options.forgotPasswordSpacerOptions.spacerBeforeButton !=
null) ...[
Spacer(