@@ -8,14 +8,14 @@ import 'package:wooapp/locator.dart';
88import 'package:wooapp/model/auth_register_response.dart' ;
99import 'package:wooapp/widget/widget_dialog.dart' ;
1010import 'package:validators/validators.dart' ;
11+ import 'package:wooapp/widget/widget_loader_full_screen.dart' ;
1112
1213class RegisterScreen extends StatefulWidget {
1314 @override
1415 State <StatefulWidget > createState () => _RegisterScreenState ();
1516}
1617
1718class _RegisterScreenState extends State <RegisterScreen > {
18-
1919 final CustomerAuthDataSource _ds = locator <CustomerAuthDataSource >();
2020
2121 final GlobalKey <FormState > _formKey = GlobalKey <FormState >();
@@ -25,8 +25,17 @@ class _RegisterScreenState extends State<RegisterScreen> {
2525 final TextEditingController _p1Controller = TextEditingController ();
2626 final TextEditingController _p2Controller = TextEditingController ();
2727
28+ bool _loading = false ;
29+
2830 @override
29- Widget build (BuildContext context) => Scaffold (
31+ Widget build (BuildContext context) => Stack (
32+ children: [
33+ _buildRegisterWidget (),
34+ if (_loading) WooFullScreenLoader (),
35+ ],
36+ );
37+
38+ Widget _buildRegisterWidget () => Scaffold (
3039 appBar: AppBar (
3140 leading: BackButton (
3241 color: WooAppTheme .colorToolbarForeground,
@@ -320,22 +329,36 @@ class _RegisterScreenState extends State<RegisterScreen> {
320329 );
321330
322331 Future <void > _register () async {
332+ _onStartLoading ();
323333 _ds.register (
324334 _lController.text.toString ().trim (),
325335 _eController.text.toString ().trim (),
326336 _p1Controller.text.toString ()
327337 ).then ((register) {
338+ _onFinalizeLoading ();
328339 Navigator .of (context).pop ();
329- showResult (tr ('congratulations' ), tr ('sign_up_success' ));
340+ _showResult (tr ('congratulations' ), tr ('sign_up_success' ));
330341 }).catchError ((error) {
342+ _onFinalizeLoading ();
331343 if (error is DioError ) {
332344 var reg = WpRegResponse .fromJson (error.response! .data);
333- showResult (tr ('error' ), reg.message);
345+ _showResult (tr ('error' ), reg.message);
334346 }
335347 });
336348 }
337349
338- void showResult (String title, String desc) {
350+ void _onStartLoading () {
351+ hideKeyboardForce (context);
352+ setState (() {
353+ _loading = true ;
354+ });
355+ }
356+
357+ void _onFinalizeLoading () => setState (() {
358+ _loading = false ;
359+ });
360+
361+ void _showResult (String title, String desc) {
339362 showDialog (
340363 context: context,
341364 builder: (ctx) => WooDialog (
0 commit comments