Show loading

This commit is contained in:
Hillel Coren 2020-08-25 10:15:43 +03:00
parent 401121f1de
commit 68c60a29ba
4 changed files with 23 additions and 5 deletions

View File

@ -275,6 +275,8 @@ Middleware<AppState> _createCompany(AuthRepository repository) {
store.dispatch(SelectCompany(companyIndex: state.companies.length));
store.dispatch(ViewDashboard(
navigator: Navigator.of(action.context), force: true));
action.completer.complete();
}),
));
});

View File

@ -48,9 +48,10 @@ class SaveCompanyFailure implements StopSaving {
}
class AddCompany implements StartSaving {
AddCompany(this.context);
AddCompany({this.context, this.completer});
final BuildContext context;
final Completer completer;
}
class AddCompanySuccess implements StopSaving {}

View File

@ -1,4 +1,5 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:invoiceninja_flutter/constants.dart';
@ -7,6 +8,8 @@ import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
import 'package:invoiceninja_flutter/redux/company/company_actions.dart';
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
import 'package:invoiceninja_flutter/ui/app/app_builder.dart';
import 'package:invoiceninja_flutter/ui/app/dialogs/loading_dialog.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:redux/redux.dart';
@ -97,8 +100,20 @@ class MenuDrawerVM {
confirmCallback(
context: context,
message: AppLocalization.of(context).addCompany,
callback: () {
store.dispatch(AddCompany(context));
callback: () async {
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).addedCompany,
shouldPop: true);
store
.dispatch(AddCompany(context: context, completer: completer));
await showDialog<AlertDialog>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) => SimpleDialog(
children: <Widget>[LoadingDialog()],
));
});
},
);

View File

@ -37,7 +37,7 @@ Completer<T> snackBarCompleter<T>(BuildContext context, String message,
}
completer.future.then((_) {
if (shouldPop) {
if (shouldPop && Navigator.of(context).canPop()) {
Navigator.of(context).pop();
}
if (scaffold != null) {
@ -47,7 +47,7 @@ Completer<T> snackBarCompleter<T>(BuildContext context, String message,
)));
}
}).catchError((Object error) {
if (shouldPop) {
if (shouldPop && Navigator.of(context).canPop()) {
Navigator.of(context).pop();
}
showDialog<ErrorDialog>(