From e715b1192b42efe222cb3ab358a86f5c7774689a Mon Sep 17 00:00:00 2001 From: Bugfix Jacques Date: Wed, 20 Sep 2023 11:45:55 +0200 Subject: [PATCH] feat: register function can now return a nullable string Works like a validator --- example/lib/example_registration_repository.dart | 4 ++-- lib/src/config/registration_options.dart | 2 +- lib/src/registration_screen.dart | 5 +++-- lib/src/service/registration_repository.dart | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/example/lib/example_registration_repository.dart b/example/lib/example_registration_repository.dart index caee325..b554d96 100644 --- a/example/lib/example_registration_repository.dart +++ b/example/lib/example_registration_repository.dart @@ -9,8 +9,8 @@ import 'package:flutter_registration/flutter_registration.dart'; class ExampleRegistrationRepository with RegistrationRepository { @override - Future register(HashMap values) { + Future register(HashMap values) { debugPrint('register: $values'); - return Future.value(true); + return Future.value(null); } } diff --git a/lib/src/config/registration_options.dart b/lib/src/config/registration_options.dart index a4593b8..b8f89aa 100644 --- a/lib/src/config/registration_options.dart +++ b/lib/src/config/registration_options.dart @@ -20,7 +20,7 @@ class RegistrationOptions { final RegistrationTranslations registrationTranslations; final List registrationSteps; - final VoidCallback? onError; + final void Function(String error)? onError; final VoidCallback afterRegistration; final RegistrationRepository registrationRepository; final AppBar Function(String title)? customAppbarBuilder; diff --git a/lib/src/registration_screen.dart b/lib/src/registration_screen.dart index 8407db2..f3e87e9 100644 --- a/lib/src/registration_screen.dart +++ b/lib/src/registration_screen.dart @@ -23,10 +23,11 @@ class RegistrationScreen extends StatelessWidget { try { var registered = await registrationOptions.registrationRepository.register(values); - if (registered) { + + if (registered == null) { registrationOptions.afterRegistration(); } else { - registrationOptions.onError?.call(); + registrationOptions.onError?.call(registered); onError(); } } catch (e) { diff --git a/lib/src/service/registration_repository.dart b/lib/src/service/registration_repository.dart index c8d58a3..a1295cc 100644 --- a/lib/src/service/registration_repository.dart +++ b/lib/src/service/registration_repository.dart @@ -5,5 +5,5 @@ import 'dart:collection'; mixin RegistrationRepository { - Future register(HashMap values); + Future register(HashMap values); }