diff --git a/CHANGELOG.md b/CHANGELOG.md index f9064b6..962f492 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ SPDX-FileCopyrightText: 2022 Iconica SPDX-License-Identifier: GPL-3.0-or-later --> +# 0.5.0 + +- feat: add customBackgroundColor to AuthScreen +- fix: fix linter +- fix: fix translations to English + +# 0.4.0 + +- feat: Added the abilty to show and hide the passwords + ## 0.3.0 - Added the abilty to set an initial value fot the default email field diff --git a/analysis_options.yaml b/analysis_options.yaml index 68a0118..872a1eb 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,218 +1,4 @@ -# SPDX-FileCopyrightText: 2022 Iconica -# -# SPDX-License-Identifier: GPL-3.0-or-later - include: package:flutter_lints/flutter.yaml -analyzer: - errors: - todo: ignore - exclude: [lib/generated_plugin_registrant.dart] -linter: - # https://dart.dev/tools/linter-rules#lints - rules: - # error rules - always_use_package_imports: false - avoid_dynamic_calls: true - avoid_empty_else: true - avoid_print: true - avoid_relative_lib_imports: true - avoid_returning_null_for_future: true - avoid_slow_async_io: true - avoid_type_to_string: true - avoid_types_as_parameter_names: true - avoid_web_libraries_in_flutter: true - cancel_subscriptions: true - close_sinks: true - comment_references: false - control_flow_in_finally: true - diagnostic_describe_all_properties: false - empty_statements: true - hash_and_equals: true - invariant_booleans: true - iterable_contains_unrelated_type: true - list_remove_unrelated_type: true - literal_only_boolean_expressions: true - no_adjacent_strings_in_list: true - no_duplicate_case_values: true - no_logic_in_create_state: true - prefer_relative_imports: false - prefer_void_to_null: true - test_types_in_equals: true - throw_in_finally: true - unnecessary_statements: true - unrelated_type_equality_checks: true - unsafe_html: true - use_build_context_synchronously: true - use_key_in_widget_constructors: true - valid_regexps: true - # style rules - always_declare_return_types: true - always_put_control_body_on_new_line: true - always_put_required_named_parameters_first: true - always_require_non_null_named_parameters: true - always_specify_types: false - annotate_overrides: true - avoid_annotating_with_dynamic: false - avoid_bool_literals_in_conditional_expressions: true - avoid_catches_without_on_clauses: false - avoid_catching_errors: false - avoid_classes_with_only_static_members: true - avoid_double_and_int_checks: true - avoid_equals_and_hash_code_on_mutable_classes: false - avoid_escaping_inner_quotes: false - avoid_field_initializers_in_const_classes: true - avoid_final_parameters: true - avoid_function_literals_in_foreach_calls: true - avoid_implementing_value_types: true - avoid_init_to_null: true - avoid_js_rounded_ints: true - avoid_multiple_declarations_per_line: true - avoid_null_checks_in_equality_operators: true - avoid_positional_boolean_parameters: true - avoid_private_typedef_functions: true - avoid_redundant_argument_values: false - avoid_renaming_method_parameters: true - avoid_return_types_on_setters: true - avoid_returning_null: true - avoid_returning_null_for_void: true - avoid_returning_this: true - avoid_setters_without_getters: true - avoid_shadowing_type_parameters: true - avoid_single_cascade_in_expression_statements: true - avoid_types_on_closure_parameters: false - avoid_unnecessary_containers: false - avoid_unused_constructor_parameters: true - avoid_void_async: true - await_only_futures: true - camel_case_extensions: true - camel_case_types: true - cascade_invocations: true - cast_nullable_to_non_nullable: true - conditional_uri_does_not_exist: true - constant_identifier_names: true - curly_braces_in_flow_control_structures: true - deprecated_consistency: true - directives_ordering: true - do_not_use_environment: true - empty_catches: true - empty_constructor_bodies: true - eol_at_end_of_file: true - exhaustive_cases: true - file_names: true - flutter_style_todos: true - implementation_imports: true - join_return_with_assignment: true - leading_newlines_in_multiline_strings: true - library_names: true - library_prefixes: true - library_private_types_in_public_api: true - lines_longer_than_80_chars: true - missing_whitespace_between_adjacent_strings: true - no_default_cases: true - no_leading_underscores_for_library_prefixes: true - no_leading_underscores_for_local_identifiers: true - no_runtimeType_toString: true - non_constant_identifier_names: true - noop_primitive_operations: true - null_check_on_nullable_type_parameter: true - null_closures: true - omit_local_variable_types: true - one_member_abstracts: true - only_throw_errors: true - overridden_fields: true - package_api_docs: true - package_prefixed_library_names: true - parameter_assignments: true - prefer_adjacent_string_concatenation: true - prefer_asserts_in_initializer_lists: true - prefer_asserts_with_message: true - prefer_collection_literals: true - prefer_conditional_assignment: true - prefer_const_constructors: true - prefer_const_constructors_in_immutables: true - prefer_const_declarations: false - prefer_const_literals_to_create_immutables: false - prefer_constructors_over_static_methods: true - prefer_contains: true - prefer_double_quotes: false - prefer_equal_for_default_values: true - prefer_expression_function_bodies: false - prefer_final_fields: true - prefer_final_in_for_each: false - prefer_final_locals: false - prefer_final_parameters: false - prefer_for_elements_to_map_fromIterable: true - prefer_foreach: true - prefer_function_declarations_over_variables: true - prefer_generic_function_type_aliases: true - prefer_if_elements_to_conditional_expressions: true - prefer_if_null_operators: true - prefer_initializing_formals: true - prefer_inlined_adds: true - prefer_int_literals: false - prefer_interpolation_to_compose_strings: true - prefer_is_empty: true - prefer_is_not_empty: true - prefer_is_not_operator: true - prefer_iterable_whereType: true - prefer_mixin: true - prefer_null_aware_method_calls: true - prefer_null_aware_operators: true - prefer_single_quotes: true - prefer_spread_collections: true - prefer_typing_uninitialized_variables: true - provide_deprecation_message: true - public_member_api_docs: false - recursive_getters: true - require_trailing_commas: true - sized_box_for_whitespace: true - sized_box_shrink_expand: true - slash_for_doc_comments: true - sort_child_properties_last: true - sort_constructors_first: true - sort_unnamed_constructors_first: true - tighten_type_of_initializing_formals: true - type_annotate_public_apis: true - type_init_formals: true - unawaited_futures: true - unnecessary_await_in_return: true - unnecessary_brace_in_string_interps: true - unnecessary_const: false - unnecessary_constructor_name: true - unnecessary_final: true - unnecessary_getters_setters: true - unnecessary_lambdas: true - unnecessary_late: true - unnecessary_new: true - unnecessary_null_aware_assignments: true - unnecessary_null_checks: true - unnecessary_null_in_if_null_operators: true - unnecessary_nullable_for_final_variable_declarations: true - unnecessary_overrides: true - unnecessary_parenthesis: true - unnecessary_raw_strings: true - unnecessary_string_escapes: true - unnecessary_string_interpolations: true - unnecessary_this: true - use_decorated_box: true - use_full_hex_values_for_flutter_colors: true - use_function_type_syntax_for_parameters: true - use_if_null_to_convert_nulls_to_bools: true - use_is_even_rather_than_modulo: true - use_late_for_private_fields_and_variables: true - use_named_constants: true - use_raw_strings: false - use_rethrow_when_possible: true - use_setters_to_change_properties: true - use_string_buffers: true - use_test_throws_matchers: true - use_to_and_as_if_applicable: true - void_checks: true - # pub rules - depend_on_referenced_packages: true - lowercase_with_underscores: true - secure_pubspec_urls: false - sort_pub_dependencies: false # Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options +# https://dart.dev/guides/language/analysis-options \ No newline at end of file diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml index 68a0118..872a1eb 100644 --- a/example/analysis_options.yaml +++ b/example/analysis_options.yaml @@ -1,218 +1,4 @@ -# SPDX-FileCopyrightText: 2022 Iconica -# -# SPDX-License-Identifier: GPL-3.0-or-later - include: package:flutter_lints/flutter.yaml -analyzer: - errors: - todo: ignore - exclude: [lib/generated_plugin_registrant.dart] -linter: - # https://dart.dev/tools/linter-rules#lints - rules: - # error rules - always_use_package_imports: false - avoid_dynamic_calls: true - avoid_empty_else: true - avoid_print: true - avoid_relative_lib_imports: true - avoid_returning_null_for_future: true - avoid_slow_async_io: true - avoid_type_to_string: true - avoid_types_as_parameter_names: true - avoid_web_libraries_in_flutter: true - cancel_subscriptions: true - close_sinks: true - comment_references: false - control_flow_in_finally: true - diagnostic_describe_all_properties: false - empty_statements: true - hash_and_equals: true - invariant_booleans: true - iterable_contains_unrelated_type: true - list_remove_unrelated_type: true - literal_only_boolean_expressions: true - no_adjacent_strings_in_list: true - no_duplicate_case_values: true - no_logic_in_create_state: true - prefer_relative_imports: false - prefer_void_to_null: true - test_types_in_equals: true - throw_in_finally: true - unnecessary_statements: true - unrelated_type_equality_checks: true - unsafe_html: true - use_build_context_synchronously: true - use_key_in_widget_constructors: true - valid_regexps: true - # style rules - always_declare_return_types: true - always_put_control_body_on_new_line: true - always_put_required_named_parameters_first: true - always_require_non_null_named_parameters: true - always_specify_types: false - annotate_overrides: true - avoid_annotating_with_dynamic: false - avoid_bool_literals_in_conditional_expressions: true - avoid_catches_without_on_clauses: false - avoid_catching_errors: false - avoid_classes_with_only_static_members: true - avoid_double_and_int_checks: true - avoid_equals_and_hash_code_on_mutable_classes: false - avoid_escaping_inner_quotes: false - avoid_field_initializers_in_const_classes: true - avoid_final_parameters: true - avoid_function_literals_in_foreach_calls: true - avoid_implementing_value_types: true - avoid_init_to_null: true - avoid_js_rounded_ints: true - avoid_multiple_declarations_per_line: true - avoid_null_checks_in_equality_operators: true - avoid_positional_boolean_parameters: true - avoid_private_typedef_functions: true - avoid_redundant_argument_values: false - avoid_renaming_method_parameters: true - avoid_return_types_on_setters: true - avoid_returning_null: true - avoid_returning_null_for_void: true - avoid_returning_this: true - avoid_setters_without_getters: true - avoid_shadowing_type_parameters: true - avoid_single_cascade_in_expression_statements: true - avoid_types_on_closure_parameters: false - avoid_unnecessary_containers: false - avoid_unused_constructor_parameters: true - avoid_void_async: true - await_only_futures: true - camel_case_extensions: true - camel_case_types: true - cascade_invocations: true - cast_nullable_to_non_nullable: true - conditional_uri_does_not_exist: true - constant_identifier_names: true - curly_braces_in_flow_control_structures: true - deprecated_consistency: true - directives_ordering: true - do_not_use_environment: true - empty_catches: true - empty_constructor_bodies: true - eol_at_end_of_file: true - exhaustive_cases: true - file_names: true - flutter_style_todos: true - implementation_imports: true - join_return_with_assignment: true - leading_newlines_in_multiline_strings: true - library_names: true - library_prefixes: true - library_private_types_in_public_api: true - lines_longer_than_80_chars: true - missing_whitespace_between_adjacent_strings: true - no_default_cases: true - no_leading_underscores_for_library_prefixes: true - no_leading_underscores_for_local_identifiers: true - no_runtimeType_toString: true - non_constant_identifier_names: true - noop_primitive_operations: true - null_check_on_nullable_type_parameter: true - null_closures: true - omit_local_variable_types: true - one_member_abstracts: true - only_throw_errors: true - overridden_fields: true - package_api_docs: true - package_prefixed_library_names: true - parameter_assignments: true - prefer_adjacent_string_concatenation: true - prefer_asserts_in_initializer_lists: true - prefer_asserts_with_message: true - prefer_collection_literals: true - prefer_conditional_assignment: true - prefer_const_constructors: true - prefer_const_constructors_in_immutables: true - prefer_const_declarations: false - prefer_const_literals_to_create_immutables: false - prefer_constructors_over_static_methods: true - prefer_contains: true - prefer_double_quotes: false - prefer_equal_for_default_values: true - prefer_expression_function_bodies: false - prefer_final_fields: true - prefer_final_in_for_each: false - prefer_final_locals: false - prefer_final_parameters: false - prefer_for_elements_to_map_fromIterable: true - prefer_foreach: true - prefer_function_declarations_over_variables: true - prefer_generic_function_type_aliases: true - prefer_if_elements_to_conditional_expressions: true - prefer_if_null_operators: true - prefer_initializing_formals: true - prefer_inlined_adds: true - prefer_int_literals: false - prefer_interpolation_to_compose_strings: true - prefer_is_empty: true - prefer_is_not_empty: true - prefer_is_not_operator: true - prefer_iterable_whereType: true - prefer_mixin: true - prefer_null_aware_method_calls: true - prefer_null_aware_operators: true - prefer_single_quotes: true - prefer_spread_collections: true - prefer_typing_uninitialized_variables: true - provide_deprecation_message: true - public_member_api_docs: false - recursive_getters: true - require_trailing_commas: true - sized_box_for_whitespace: true - sized_box_shrink_expand: true - slash_for_doc_comments: true - sort_child_properties_last: true - sort_constructors_first: true - sort_unnamed_constructors_first: true - tighten_type_of_initializing_formals: true - type_annotate_public_apis: true - type_init_formals: true - unawaited_futures: true - unnecessary_await_in_return: true - unnecessary_brace_in_string_interps: true - unnecessary_const: false - unnecessary_constructor_name: true - unnecessary_final: true - unnecessary_getters_setters: true - unnecessary_lambdas: true - unnecessary_late: true - unnecessary_new: true - unnecessary_null_aware_assignments: true - unnecessary_null_checks: true - unnecessary_null_in_if_null_operators: true - unnecessary_nullable_for_final_variable_declarations: true - unnecessary_overrides: true - unnecessary_parenthesis: true - unnecessary_raw_strings: true - unnecessary_string_escapes: true - unnecessary_string_interpolations: true - unnecessary_this: true - use_decorated_box: true - use_full_hex_values_for_flutter_colors: true - use_function_type_syntax_for_parameters: true - use_if_null_to_convert_nulls_to_bools: true - use_is_even_rather_than_modulo: true - use_late_for_private_fields_and_variables: true - use_named_constants: true - use_raw_strings: false - use_rethrow_when_possible: true - use_setters_to_change_properties: true - use_string_buffers: true - use_test_throws_matchers: true - use_to_and_as_if_applicable: true - void_checks: true - # pub rules - depend_on_referenced_packages: true - lowercase_with_underscores: true - secure_pubspec_urls: false - sort_pub_dependencies: false # Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options +# https://dart.dev/guides/language/analysis-options \ No newline at end of file diff --git a/example/ios/Podfile b/example/ios/Podfile index 88359b2..313ea4a 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +platform :ios, '11.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/example/pubspec.lock b/example/pubspec.lock index bb97a29..7062458 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -62,14 +62,6 @@ packages: description: flutter source: sdk version: "0.0.0" - flutter_hooks: - dependency: transitive - description: - name: flutter_hooks - sha256: "2b202559a4ed3656bbb7aae9d8b335fb0037b23acc7ae3f377d1ba0b95c21aec" - url: "https://pub.dev" - source: hosted - version: "0.18.5+1" flutter_lints: dependency: "direct dev" description: @@ -89,7 +81,7 @@ packages: path: ".." relative: true source: path - version: "0.2.0" + version: "0.4.0" flutter_test: dependency: "direct dev" description: flutter @@ -214,4 +206,4 @@ packages: version: "2.1.4" sdks: dart: ">=2.18.0 <3.0.0" - flutter: ">=3.0.0" + flutter: ">=1.17.0" diff --git a/lib/src/auth_screen.dart b/lib/src/auth_screen.dart index 374e796..19ade09 100644 --- a/lib/src/auth_screen.dart +++ b/lib/src/auth_screen.dart @@ -15,6 +15,7 @@ class AuthScreen extends StatefulWidget { required this.previousBtnTitle, required this.onFinish, this.customAppBar, + this.customBackgroundColor, this.nextButtonBuilder, this.previousButtonBuilder, super.key, @@ -30,10 +31,9 @@ class AuthScreen extends StatefulWidget { final String nextBtnTitle; final String previousBtnTitle; final AppBar? customAppBar; - final Widget Function(VoidCallback onPressed, String label)? - nextButtonBuilder; - final Widget Function(VoidCallback onPressed, String label)? - previousButtonBuilder; + final Color? customBackgroundColor; + final Widget Function(VoidCallback, String)? nextButtonBuilder; + final Widget Function(VoidCallback, String)? previousButtonBuilder; @override State createState() => _AuthScreenState(); @@ -96,112 +96,113 @@ class _AuthScreenState extends State { } @override - Widget build(BuildContext context) => Scaffold( - backgroundColor: Theme.of(context).colorScheme.background, - appBar: _appBar, - body: Form( - key: _formKey, - child: PageView( - physics: const NeverScrollableScrollPhysics(), - controller: _pageController, - children: [ - for (AuthStep step in widget.steps) - Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - child: Center( - child: ListView( - physics: const ClampingScrollPhysics(), - shrinkWrap: true, - padding: const EdgeInsets.symmetric( - vertical: 8.0, - horizontal: 30.0, - ), - children: [ - for (AuthField field in step.fields) - Align( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - if (field.title != null) ...[ - field.title!, - ], - field.build(), - ], - ), - ) - ], + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: widget.customBackgroundColor ?? Colors.white, + appBar: _appBar, + body: Form( + key: _formKey, + child: PageView( + physics: const NeverScrollableScrollPhysics(), + controller: _pageController, + children: [ + for (AuthStep step in widget.steps) + Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: Center( + child: ListView( + physics: const ClampingScrollPhysics(), + shrinkWrap: true, + padding: const EdgeInsets.symmetric( + vertical: 8.0, + horizontal: 30.0, ), + children: [ + for (AuthField field in step.fields) + Align( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (field.title != null) ...[ + field.title!, + ], + field.build(), + ], + ), + ) + ], ), ), - Padding( - padding: const EdgeInsets.only( - top: 15.0, - bottom: 30.0, - left: 30.0, - right: 30.0, - ), - child: Row( - mainAxisAlignment: widget.steps.first != step - ? MainAxisAlignment.spaceBetween - : MainAxisAlignment.end, - children: [ - if (widget.steps.first != step) - widget.previousButtonBuilder?.call( - onPrevious, - widget.previousBtnTitle, - ) ?? - ElevatedButton( - onPressed: onPrevious, - child: Row( - children: [ - const Icon( - Icons.arrow_back, - size: 18, - ), - Padding( - padding: - const EdgeInsets.only(left: 4.0), - child: Text(widget.previousBtnTitle), - ), - ], - ), - ), - widget.nextButtonBuilder?.call( - () => onNext(step), - widget.steps.last == step - ? widget.submitBtnTitle - : widget.nextBtnTitle, + ), + Padding( + padding: const EdgeInsets.only( + top: 15.0, + bottom: 30.0, + left: 30.0, + right: 30.0, + ), + child: Row( + mainAxisAlignment: widget.steps.first != step + ? MainAxisAlignment.spaceBetween + : MainAxisAlignment.end, + children: [ + if (widget.steps.first != step) + widget.previousButtonBuilder?.call( + onPrevious, + widget.previousBtnTitle, ) ?? ElevatedButton( - onPressed: () { - onNext(step); - }, + onPressed: onPrevious, child: Row( children: [ - Text( - widget.steps.last == step - ? widget.submitBtnTitle - : widget.nextBtnTitle, + const Icon( + Icons.arrow_back, + size: 18, ), - const Padding( - padding: EdgeInsets.only(left: 4.0), - child: Icon( - Icons.arrow_forward, - size: 18, - ), + Padding( + padding: const EdgeInsets.only(left: 4.0), + child: Text(widget.previousBtnTitle), ), ], ), ), - ], - ), - ) - ], - ), - ], - ), + widget.nextButtonBuilder?.call( + () => onNext(step), + widget.steps.last == step + ? widget.submitBtnTitle + : widget.nextBtnTitle, + ) ?? + ElevatedButton( + onPressed: () { + onNext(step); + }, + child: Row( + children: [ + Text( + widget.steps.last == step + ? widget.submitBtnTitle + : widget.nextBtnTitle, + ), + const Padding( + padding: EdgeInsets.only(left: 4.0), + child: Icon( + Icons.arrow_forward, + size: 18, + ), + ), + ], + ), + ), + ], + ), + ) + ], + ), + ], ), - ); + ), + ); + } } diff --git a/lib/src/config/registration_options.dart b/lib/src/config/registration_options.dart index 1d8c3df..8a1b9db 100644 --- a/lib/src/config/registration_options.dart +++ b/lib/src/config/registration_options.dart @@ -119,6 +119,21 @@ class RegistrationOptions { AuthTextField( name: 'password2', textEditingController: pass2Controller, + title: titleBuilder?.call( + translations.defaultPassword2Title, + ) ?? + Padding( + padding: const EdgeInsets.only( + top: 24.0, + bottom: 12.0, + ), + child: Text( + translations.defaultPassword2Title, + style: const TextStyle( + fontWeight: FontWeight.bold, + ), + ), + ), label: labelBuilder?.call(translations.defaultPassword2Label), hintText: translations.defaultPassword2Hint, textStyle: textStyle, diff --git a/lib/src/config/registration_translations.dart b/lib/src/config/registration_translations.dart index 4c0d15b..8c60be4 100644 --- a/lib/src/config/registration_translations.dart +++ b/lib/src/config/registration_translations.dart @@ -4,23 +4,24 @@ class RegistrationTranslations { const RegistrationTranslations({ - this.title = 'Registreren', - this.registerBtn = 'Registreren', - this.previousStepBtn = 'Vorige stap', - this.nextStepBtn = 'Volgende stap', - this.closeBtn = 'Sluiten', - this.defaultEmailTitle = 'Wat is je e-mailadres?', + this.title = 'Register', + this.registerBtn = 'Register', + this.previousStepBtn = 'Previous', + this.nextStepBtn = 'Next', + this.closeBtn = 'Close', + this.defaultEmailTitle = 'What is your email?', this.defaultEmailLabel = '', - this.defaultEmailHint = 'iemand@voorbeeld.nl', - this.defaultEmailEmpty = 'Geef uw e-mailadres op', - this.defaultEmailValidatorMessage = 'Geef een geldig e-mailadres op', - this.defaultPassword1Title = 'Kies een wachtwoord', + this.defaultEmailHint = 'john.doe@domain.com', + this.defaultEmailEmpty = 'Enter your email', + this.defaultEmailValidatorMessage = 'Enter a valid email address', + this.defaultPassword1Title = 'Enter a password', this.defaultPassword1Label = '', this.defaultPassword1Hint = '', - this.defaultPassword1ValidatorMessage = 'Geef een wachtwoord op', + this.defaultPassword1ValidatorMessage = 'Enter a valid password', + this.defaultPassword2Title = 'Re-enter password', this.defaultPassword2Label = '', this.defaultPassword2Hint = '', - this.defaultPassword2ValidatorMessage = 'Wachtwoorden moeten gelijk zijn', + this.defaultPassword2ValidatorMessage = 'Passwords have to be equal', }); final String title; @@ -37,6 +38,7 @@ class RegistrationTranslations { final String defaultPassword1Label; final String defaultPassword1Hint; final String defaultPassword1ValidatorMessage; + final String defaultPassword2Title; final String defaultPassword2Label; final String defaultPassword2Hint; final String defaultPassword2ValidatorMessage; diff --git a/lib/src/registration_screen.dart b/lib/src/registration_screen.dart index 4ea7ba2..ff06dfb 100644 --- a/lib/src/registration_screen.dart +++ b/lib/src/registration_screen.dart @@ -16,24 +16,25 @@ class RegistrationScreen extends StatelessWidget { final RegistrationOptions registrationOptions; + Future register({ + required HashMap values, + required VoidCallback onError, + }) async { + try { + var registered = + await registrationOptions.registrationRepository.register(values); + if (registered) { + registrationOptions.afterRegistration(); + } + } catch (e) { + onError(); + } + } + @override Widget build(BuildContext context) { var translations = registrationOptions.registrationTranslations; - void register({ - required HashMap values, - required VoidCallback onError, - }) => - registrationOptions.registrationRepository.register(values).then( - (response) { - if (response) { - registrationOptions.afterRegistration(); - } - }, - ).catchError((_) { - onError(); - }); - return AuthScreen( steps: registrationOptions.registrationSteps, customAppBar: registrationOptions.customAppbarBuilder?.call( diff --git a/pubspec.yaml b/pubspec.yaml index 25b8fd6..37e292b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,6 @@ dependencies: sdk: flutter flutter_localizations: sdk: flutter - flutter_hooks: any dev_dependencies: flutter_test: