@@ -214,6 +214,9 @@ class SupaEmailAuth extends StatefulWidget {
214214 final Widget ? prefixIconEmail;
215215 final Widget ? prefixIconPassword;
216216
217+ /// Whether the confirm password field should be displayed
218+ final bool showConfirmPasswordField;
219+
217220 /// {@macro supa_email_auth}
218221 const SupaEmailAuth ({
219222 super .key,
@@ -232,6 +235,7 @@ class SupaEmailAuth extends StatefulWidget {
232235 this .isInitiallySigningIn = true ,
233236 this .prefixIconEmail = const Icon (Icons .email),
234237 this .prefixIconPassword = const Icon (Icons .lock),
238+ this .showConfirmPasswordField = false ,
235239 });
236240
237241 @override
@@ -242,6 +246,7 @@ class _SupaEmailAuthState extends State<SupaEmailAuth> {
242246 final _formKey = GlobalKey <FormState >();
243247 final _emailController = TextEditingController ();
244248 final _passwordController = TextEditingController ();
249+ final _confirmPasswordController = TextEditingController ();
245250 late bool _isSigningIn;
246251 late final Map <String , MetadataController > _metadataControllers;
247252
@@ -271,6 +276,7 @@ class _SupaEmailAuthState extends State<SupaEmailAuth> {
271276 void dispose () {
272277 _emailController.dispose ();
273278 _passwordController.dispose ();
279+ _confirmPasswordController.dispose ();
274280 for (final controller in _metadataControllers.values) {
275281 if (controller is TextEditingController ) {
276282 controller.dispose ();
@@ -345,6 +351,23 @@ class _SupaEmailAuthState extends State<SupaEmailAuth> {
345351 }
346352 },
347353 ),
354+ if (widget.showConfirmPasswordField && ! _isSigningIn) ...[
355+ spacer (16 ),
356+ TextFormField (
357+ controller: _confirmPasswordController,
358+ decoration: InputDecoration (
359+ prefixIcon: widget.prefixIconPassword,
360+ label: Text (localization.confirmPassword),
361+ ),
362+ obscureText: true ,
363+ validator: (value) {
364+ if (value != _passwordController.text) {
365+ return localization.confirmPasswordError;
366+ }
367+ return null ;
368+ },
369+ ),
370+ ],
348371 spacer (16 ),
349372 if (widget.metadataFields != null && ! _isSigningIn)
350373 ...widget.metadataFields!
0 commit comments