feat: go back to first page on error - hide keyboard on nextStep

This commit is contained in:
Stein Milder 2022-09-27 12:00:03 +02:00
parent 188a174cbd
commit 3242002182
2 changed files with 23 additions and 4 deletions

View file

@ -15,7 +15,10 @@ class AuthScreen extends StatefulWidget {
}) : assert(steps.length > 0, 'At least one step is required');
final String title;
final Function(HashMap<String, String>) onFinish;
final Function({
required HashMap<String, String> values,
required VoidCallback onError,
}) onFinish;
final List<AuthStep> steps;
final String submitBtnTitle;
final String nextBtnTitle;
@ -119,6 +122,8 @@ class _AuthScreenState extends State<AuthScreen> {
return;
}
FocusScope.of(context).unfocus();
if (widget.steps.last == step) {
var values = HashMap<String, String>();
@ -128,7 +133,14 @@ class _AuthScreenState extends State<AuthScreen> {
}
}
widget.onFinish(values);
widget.onFinish(
values: values,
onError: () => _pageController.animateToPage(
0,
duration: _animationDuration,
curve: _animationCurve,
),
);
return;
}

View file

@ -1,3 +1,5 @@
import 'dart:collection';
import 'package:flutter/material.dart';
import 'package:flutter_registration/flutter_registration.dart';
import 'package:flutter_registration/src/auth_screen.dart';
@ -14,14 +16,19 @@ class RegistrationScreen extends StatelessWidget {
Widget build(BuildContext context) {
var translations = registrationOptions.registrationTranslations;
void register(values) =>
void register({
required HashMap<String, String> values,
required VoidCallback onError,
}) =>
registrationOptions.registrationRepository.register(values).then(
(response) {
if (response) {
registrationOptions.afterRegistration();
}
},
);
).catchError((_) {
onError();
});
return AuthScreen(
steps: registrationOptions.registrationSteps,