Refactor
This commit is contained in:
parent
954cabd956
commit
3e9bccae3f
|
|
@ -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/redux/ui/ui_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/client/client_screen.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:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/client/client_actions.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 {
|
class ClientViewScreen extends StatelessWidget {
|
||||||
static const String route = '/client/view';
|
static const String route = '/client/view';
|
||||||
|
|
||||||
const ClientViewScreen({Key key}) : super(key: key);
|
const ClientViewScreen({Key key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -64,7 +66,10 @@ class ClientViewVM {
|
||||||
|
|
||||||
Future<Null> _handleRefresh(BuildContext context, bool loadActivities) {
|
Future<Null> _handleRefresh(BuildContext context, bool loadActivities) {
|
||||||
final Completer<ClientEntity> completer = Completer<ClientEntity>();
|
final Completer<ClientEntity> completer = Completer<ClientEntity>();
|
||||||
store.dispatch(LoadClient(completer: completer, clientId: client.id, loadActivities: loadActivities));
|
store.dispatch(LoadClient(
|
||||||
|
completer: completer,
|
||||||
|
clientId: client.id,
|
||||||
|
loadActivities: loadActivities));
|
||||||
return completer.future.then((_) {
|
return completer.future.then((_) {
|
||||||
Scaffold.of(context).showSnackBar(SnackBar(
|
Scaffold.of(context).showSnackBar(SnackBar(
|
||||||
content: SnackBarRow(
|
content: SnackBarRow(
|
||||||
|
|
@ -81,56 +86,45 @@ class ClientViewVM {
|
||||||
company: state.selectedCompany,
|
company: state.selectedCompany,
|
||||||
onEditPressed: (BuildContext context) {
|
onEditPressed: (BuildContext context) {
|
||||||
final Completer<ClientEntity> completer = Completer<ClientEntity>();
|
final Completer<ClientEntity> completer = Completer<ClientEntity>();
|
||||||
store.dispatch(EditClient(client: client, context: context, completer: completer));
|
store.dispatch(EditClient(
|
||||||
|
client: client, context: context, completer: completer));
|
||||||
completer.future.then((client) {
|
completer.future.then((client) {
|
||||||
Scaffold.of(context).showSnackBar(SnackBar(
|
Scaffold.of(context).showSnackBar(SnackBar(
|
||||||
content: SnackBarRow(
|
content: SnackBarRow(
|
||||||
message: AppLocalization.of(context).successfullyUpdatedClient,
|
message:
|
||||||
)
|
AppLocalization.of(context).successfullyUpdatedClient,
|
||||||
));
|
)));
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
onInvoicesPressed: (BuildContext context) {
|
onInvoicesPressed: (BuildContext context) {
|
||||||
store.dispatch(FilterInvoicesByClient(client.id));
|
store.dispatch(FilterInvoicesByClient(client.id));
|
||||||
store.dispatch(ViewInvoiceList(context));
|
store.dispatch(ViewInvoiceList(context));
|
||||||
},
|
},
|
||||||
onRefreshed: (context, loadActivities) => _handleRefresh(context, loadActivities),
|
onRefreshed: (context, loadActivities) =>
|
||||||
|
_handleRefresh(context, loadActivities),
|
||||||
onBackPressed: () =>
|
onBackPressed: () =>
|
||||||
store.dispatch(UpdateCurrentRoute(ClientScreen.route)),
|
store.dispatch(UpdateCurrentRoute(ClientScreen.route)),
|
||||||
onActionSelected: (BuildContext context, EntityAction action) {
|
onActionSelected: (BuildContext context, EntityAction action) {
|
||||||
final Completer<Null> completer = Completer<Null>();
|
final localization = AppLocalization.of(context);
|
||||||
String message;
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case EntityAction.archive:
|
case EntityAction.archive:
|
||||||
store.dispatch(ArchiveClientRequest(completer, client.id));
|
store.dispatch(ArchiveClientRequest(
|
||||||
message = AppLocalization.of(context).successfullyArchivedClient;
|
popCompleter(
|
||||||
|
context, localization.successfullyArchivedClient),
|
||||||
|
client.id));
|
||||||
break;
|
break;
|
||||||
case EntityAction.delete:
|
case EntityAction.delete:
|
||||||
store.dispatch(DeleteClientRequest(completer, client.id));
|
store.dispatch(DeleteClientRequest(
|
||||||
message = AppLocalization.of(context).successfullyDeletedClient;
|
popCompleter(context, localization.successfullyDeletedClient),
|
||||||
|
client.id));
|
||||||
break;
|
break;
|
||||||
case EntityAction.restore:
|
case EntityAction.restore:
|
||||||
store.dispatch(RestoreClientRequest(completer, client.id));
|
store.dispatch(RestoreClientRequest(
|
||||||
message = AppLocalization.of(context).successfullyRestoredClient;
|
snackBarCompleter(
|
||||||
|
context, localization.successfullyRestoredClient),
|
||||||
|
client.id));
|
||||||
break;
|
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<ErrorDialog>(
|
|
||||||
context: context,
|
|
||||||
builder: (BuildContext context) {
|
|
||||||
return ErrorDialog(error);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue