Skip to content

Commit 6c41d3d

Browse files
committed
refactor: prefer the shared password field with toggle
1 parent 5eee261 commit 6c41d3d

File tree

3 files changed

+19
-27
lines changed

3 files changed

+19
-27
lines changed

lib/src/components/supa_email_auth.dart

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:email_validator/email_validator.dart';
22
import 'package:flutter/material.dart';
3+
import 'package:supabase_auth_ui/src/components/_supa_password_field.dart';
34
import 'package:supabase_auth_ui/src/localizations/supa_email_auth_localization.dart';
45
import 'package:supabase_auth_ui/src/utils/constants.dart';
56
import 'package:supabase_flutter/supabase_flutter.dart';
@@ -328,7 +329,10 @@ class _SupaEmailAuthState extends State<SupaEmailAuth> {
328329
),
329330
if (!_isRecoveringPassword) ...[
330331
spacer(16),
331-
TextFormField(
332+
SupaPasswordField(
333+
controller: _passwordController,
334+
labelText: localization.enterPassword,
335+
prefixIcon: widget.prefixIconPassword,
332336
autofillHints: _isSigningIn
333337
? [AutofillHints.password]
334338
: [AutofillHints.newPassword],
@@ -343,12 +347,6 @@ class _SupaEmailAuthState extends State<SupaEmailAuth> {
343347
}
344348
return null;
345349
},
346-
decoration: InputDecoration(
347-
prefixIcon: widget.prefixIconPassword,
348-
label: Text(localization.enterPassword),
349-
),
350-
obscureText: true,
351-
controller: _passwordController,
352350
onFieldSubmitted: (_) {
353351
if (widget.metadataFields == null || _isSigningIn) {
354352
_signInSignUp();
@@ -357,13 +355,10 @@ class _SupaEmailAuthState extends State<SupaEmailAuth> {
357355
),
358356
if (widget.showConfirmPasswordField && !_isSigningIn) ...[
359357
spacer(16),
360-
TextFormField(
358+
SupaPasswordField(
361359
controller: _confirmPasswordController,
362-
decoration: InputDecoration(
363-
prefixIcon: widget.prefixIconPassword,
364-
label: Text(localization.confirmPassword),
365-
),
366-
obscureText: true,
360+
labelText: localization.confirmPassword,
361+
prefixIcon: widget.prefixIconPassword,
367362
validator: (value) {
368363
if (value != _passwordController.text) {
369364
return localization.confirmPasswordError;

lib/src/components/supa_phone_auth.dart

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:flutter/material.dart';
2+
import 'package:supabase_auth_ui/src/components/_supa_password_field.dart';
23
import 'package:supabase_auth_ui/src/utils/constants.dart';
34
import 'package:supabase_auth_ui/supabase_auth_ui.dart';
45

@@ -10,7 +11,7 @@ class SupaPhoneAuth extends StatefulWidget {
1011
/// Method to be called when the auth action is success
1112
final void Function(AuthResponse response) onSuccess;
1213

13-
/// Method to be called when the auth action threw an excepction
14+
/// Method to be called when the auth action threw an exception
1415
final void Function(Object error)? onError;
1516

1617
/// Localization for the form
@@ -71,7 +72,10 @@ class _SupaPhoneAuthState extends State<SupaPhoneAuth> {
7172
controller: _phone,
7273
),
7374
spacer(16),
74-
TextFormField(
75+
SupaPasswordField(
76+
controller: _password,
77+
labelText: localization.enterPassword,
78+
prefixIcon: const Icon(Icons.lock),
7579
autofillHints: isSigningIn
7680
? [AutofillHints.password]
7781
: [AutofillHints.newPassword],
@@ -82,12 +86,6 @@ class _SupaPhoneAuthState extends State<SupaPhoneAuth> {
8286
}
8387
return null;
8488
},
85-
decoration: InputDecoration(
86-
prefixIcon: const Icon(Icons.lock),
87-
label: Text(localization.enterPassword),
88-
),
89-
obscureText: true,
90-
controller: _password,
9189
),
9290
spacer(16),
9391
ElevatedButton(

lib/src/components/supa_reset_password.dart

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:flutter/material.dart';
2+
import 'package:supabase_auth_ui/src/components/_supa_password_field.dart';
23
import 'package:supabase_auth_ui/src/localizations/supa_reset_password_localization.dart';
34
import 'package:supabase_auth_ui/src/utils/constants.dart';
45
import 'package:supabase_flutter/supabase_flutter.dart';
@@ -47,19 +48,17 @@ class _SupaResetPasswordState extends State<SupaResetPassword> {
4748
child: Column(
4849
crossAxisAlignment: CrossAxisAlignment.stretch,
4950
children: [
50-
TextFormField(
51+
SupaPasswordField(
52+
controller: _password,
53+
labelText: localization.enterPassword,
54+
prefixIcon: const Icon(Icons.lock),
5155
autofillHints: const [AutofillHints.newPassword],
5256
validator: (value) {
5357
if (value == null || value.isEmpty || value.length < 6) {
5458
return localization.passwordLengthError;
5559
}
5660
return null;
5761
},
58-
decoration: InputDecoration(
59-
prefixIcon: const Icon(Icons.lock),
60-
label: Text(localization.enterPassword),
61-
),
62-
controller: _password,
6362
),
6463
spacer(16),
6564
ElevatedButton(

0 commit comments

Comments
 (0)