From 3e9bccae3f4787856661fb35fac2c5e2e1f85a8c Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Aug 2018 12:40:27 +0300 Subject: [PATCH] Refactor --- lib/ui/client/view/client_view_vm.dart | 60 ++++++++++++-------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/lib/ui/client/view/client_view_vm.dart b/lib/ui/client/view/client_view_vm.dart index d4568c52d..5c86f1c19 100644 --- a/lib/ui/client/view/client_view_vm.dart +++ b/lib/ui/client/view/client_view_vm.dart @@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; import 'package:invoiceninja_flutter/ui/client/client_screen.dart'; +import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; @@ -16,6 +17,7 @@ import 'package:invoiceninja_flutter/ui/app/snackbar_row.dart'; class ClientViewScreen extends StatelessWidget { static const String route = '/client/view'; + const ClientViewScreen({Key key}) : super(key: key); @override @@ -64,10 +66,13 @@ class ClientViewVM { Future _handleRefresh(BuildContext context, bool loadActivities) { final Completer completer = Completer(); - store.dispatch(LoadClient(completer: completer, clientId: client.id, loadActivities: loadActivities)); + store.dispatch(LoadClient( + completer: completer, + clientId: client.id, + loadActivities: loadActivities)); return completer.future.then((_) { Scaffold.of(context).showSnackBar(SnackBar( - content: SnackBarRow( + content: SnackBarRow( message: AppLocalization.of(context).refreshComplete, ))); }); @@ -81,56 +86,45 @@ class ClientViewVM { company: state.selectedCompany, onEditPressed: (BuildContext context) { final Completer completer = Completer(); - store.dispatch(EditClient(client: client, context: context, completer: completer)); + store.dispatch(EditClient( + client: client, context: context, completer: completer)); completer.future.then((client) { Scaffold.of(context).showSnackBar(SnackBar( - content: SnackBarRow( - message: AppLocalization.of(context).successfullyUpdatedClient, - ) - )); + content: SnackBarRow( + message: + AppLocalization.of(context).successfullyUpdatedClient, + ))); }); }, onInvoicesPressed: (BuildContext context) { store.dispatch(FilterInvoicesByClient(client.id)); store.dispatch(ViewInvoiceList(context)); }, - onRefreshed: (context, loadActivities) => _handleRefresh(context, loadActivities), + onRefreshed: (context, loadActivities) => + _handleRefresh(context, loadActivities), onBackPressed: () => store.dispatch(UpdateCurrentRoute(ClientScreen.route)), onActionSelected: (BuildContext context, EntityAction action) { - final Completer completer = Completer(); - String message; + final localization = AppLocalization.of(context); switch (action) { case EntityAction.archive: - store.dispatch(ArchiveClientRequest(completer, client.id)); - message = AppLocalization.of(context).successfullyArchivedClient; + store.dispatch(ArchiveClientRequest( + popCompleter( + context, localization.successfullyArchivedClient), + client.id)); break; case EntityAction.delete: - store.dispatch(DeleteClientRequest(completer, client.id)); - message = AppLocalization.of(context).successfullyDeletedClient; + store.dispatch(DeleteClientRequest( + popCompleter(context, localization.successfullyDeletedClient), + client.id)); break; case EntityAction.restore: - store.dispatch(RestoreClientRequest(completer, client.id)); - message = AppLocalization.of(context).successfullyRestoredClient; + store.dispatch(RestoreClientRequest( + snackBarCompleter( + context, localization.successfullyRestoredClient), + client.id)); break; } - completer.future.then((_) { - if ([EntityAction.archive, EntityAction.delete].contains(action)) { - Navigator.of(context).pop(message); - } else if (message != null){ - Scaffold.of(context).showSnackBar(SnackBar( - content: SnackBarRow( - message: message, - ) - )); - } - }).catchError((Object error) { - showDialog( - context: context, - builder: (BuildContext context) { - return ErrorDialog(error); - }); - }); }); } }