diff --git a/lib/ui/client/view/client_view_overview.dart b/lib/ui/client/view/client_view_overview.dart index 59644851a..0889ced87 100644 --- a/lib/ui/client/view/client_view_overview.dart +++ b/lib/ui/client/view/client_view_overview.dart @@ -1,8 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/data/models/client_model.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; -import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/credit/credit_selectors.dart'; import 'package:invoiceninja_flutter/redux/expense/expense_selectors.dart'; import 'package:invoiceninja_flutter/redux/invoice/invoice_selectors.dart'; @@ -17,7 +15,7 @@ import 'package:invoiceninja_flutter/ui/app/icon_message.dart'; import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart'; import 'package:invoiceninja_flutter/ui/client/view/client_view_vm.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; -import 'package:invoiceninja_flutter/utils/localization.dart'; +import 'package:invoiceninja_flutter/utils/extensions.dart'; class ClientOverview extends StatelessWidget { const ClientOverview({ @@ -31,10 +29,10 @@ class ClientOverview extends StatelessWidget { @override Widget build(BuildContext context) { - final localization = AppLocalization.of(context); + final localization = context.localization; final client = viewModel.client; final company = viewModel.company; - final state = StoreProvider.of(context).state; + final state = context.state; final statics = state.staticState; final fields = {}; final group = client.hasGroup ? state.groupState.map[client.groupId] : null; diff --git a/lib/utils/extensions.dart b/lib/utils/extensions.dart new file mode 100644 index 000000000..d3f5f994b --- /dev/null +++ b/lib/utils/extensions.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:redux/redux.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; +import 'package:invoiceninja_flutter/utils/localization.dart'; + +extension ContextHelper on BuildContext { + AppLocalization get localization { + return AppLocalization.of(this); + } + + Store get store { + return StoreProvider.of(this); + } + + AppState get state { + return store.state; + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 9490ef12e..b91e0ab3d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ homepage: https://invoiceninja.com documentation: http://docs.invoiceninja.com environment: - sdk: ">=2.4.0 <3.0.0" + sdk: ">=2.6.0 <3.0.0" dependencies: flutter: