From c91a1c0856141f192de7ff6dd457686fddfd59ea Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Mon, 22 Apr 2024 13:01:35 +0200 Subject: [PATCH] fix: add default field size --- CHANGELOG.md | 4 +++ lib/src/auth_screen.dart | 32 +++++++++++++++--------- lib/src/config/registration_options.dart | 8 ++++-- lib/src/registration_screen.dart | 1 + pubspec.yaml | 2 +- 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cddfc2..ee688f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ SPDX-FileCopyrightText: 2022 Iconica SPDX-License-Identifier: GPL-3.0-or-later --> + +# 2.0.4 +- feat: added maxFormWidth to AuthScreen + # 2.0.3 - feat: added default registrationOptions diff --git a/lib/src/auth_screen.dart b/lib/src/auth_screen.dart index 96777db..6e986b6 100644 --- a/lib/src/auth_screen.dart +++ b/lib/src/auth_screen.dart @@ -65,6 +65,7 @@ class AuthScreen extends StatefulWidget { this.beforeTitleFlex, this.afterTitleFlex, this.isLoading = false, + this.maxFormWidth, Key? key, }) : assert(steps.length > 0, 'At least one step is required'), super(key: key); @@ -92,6 +93,7 @@ class AuthScreen extends StatefulWidget { final int? beforeTitleFlex; final int? afterTitleFlex; final bool isLoading; + final double? maxFormWidth; @override State createState() => _AuthScreenState(); @@ -234,18 +236,24 @@ class _AuthScreenState extends State { Expanded( flex: widget.formFlex ?? 3, child: Align( - child: Column( - children: [ - for (AuthField field - in widget.steps[i].fields) ...[ - if (field.title != null) ...[ - field.title!, - ], - field.build(context, () { - _validate(i); - }) - ] - ], + alignment: Alignment.topCenter, + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: widget.maxFormWidth ?? 300, + ), + child: Column( + children: [ + for (AuthField field + in widget.steps[i].fields) ...[ + if (field.title != null) ...[ + field.title!, + ], + field.build(context, () { + _validate(i); + }) + ] + ], + ), ), ), ), diff --git a/lib/src/config/registration_options.dart b/lib/src/config/registration_options.dart index b2c78a5..8823abc 100644 --- a/lib/src/config/registration_options.dart +++ b/lib/src/config/registration_options.dart @@ -27,6 +27,7 @@ class RegistrationOptions { this.backgroundColor, this.titleWidget, this.loginButton, + this.maxFormWidth, }) { if (registrationSteps == null || registrationSteps!.isEmpty) { steps = RegistrationOptions.getDefaultSteps(); @@ -88,6 +89,9 @@ class RegistrationOptions { /// The number of flex units for the buttons. final int? afterTitleFlex; + /// The maximum width of the form. Defaults to 300. + final double? maxFormWidth; + /// Generates default registration steps. /// /// [emailController] controller for email input. @@ -149,7 +153,7 @@ class RegistrationOptions { border: const OutlineInputBorder(), ), textStyle: textStyle, - padding: const EdgeInsets.symmetric(horizontal: 60, vertical: 20), + padding: const EdgeInsets.symmetric(vertical: 20), validators: [ (email) => (email == null || email.isEmpty) ? translations.defaultEmailEmpty @@ -186,7 +190,7 @@ class RegistrationOptions { hintText: translations.defaultPasswordHint, border: const OutlineInputBorder(), ), - padding: const EdgeInsets.symmetric(horizontal: 60, vertical: 20), + padding: const EdgeInsets.symmetric(vertical: 20), textStyle: textStyle, validators: [ (value) => (value == null || value.isEmpty) diff --git a/lib/src/registration_screen.dart b/lib/src/registration_screen.dart index 4a9622c..7a98939 100644 --- a/lib/src/registration_screen.dart +++ b/lib/src/registration_screen.dart @@ -80,6 +80,7 @@ class RegistrationScreenState extends State { formFlex: widget.registrationOptions.formFlex, beforeTitleFlex: widget.registrationOptions.beforeTitleFlex, afterTitleFlex: widget.registrationOptions.afterTitleFlex, + maxFormWidth: widget.registrationOptions.maxFormWidth, ); } } diff --git a/pubspec.yaml b/pubspec.yaml index 62b99f7..1e2d415 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_registration description: A Flutter Registration package -version: 2.0.3 +version: 2.0.4 repository: https://github.com/Iconica-Development/flutter_registration publish_to: none