diff --git a/lib/constants.dart b/lib/constants.dart index 3121aafe0..6700feff1 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -117,8 +117,8 @@ const List kSettingsSections = [ kSettingsBuyNowButtons, kSettingsEmailSettings, kSettingsTemplatesAndReminders, - kSettingsCreditCardsAndBanks, - kSettingsDataVisualizations, + //kSettingsCreditCardsAndBanks, + //kSettingsDataVisualizations, ]; const int kPaymentStatusPending = 1; diff --git a/lib/ui/settings/localization_vm.dart b/lib/ui/settings/localization_vm.dart index 07459cf4d..94c479057 100644 --- a/lib/ui/settings/localization_vm.dart +++ b/lib/ui/settings/localization_vm.dart @@ -1,7 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/data/models/company_model.dart'; +import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'; import 'package:invoiceninja_flutter/ui/settings/localization.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/app/app_state.dart'; @@ -22,6 +26,7 @@ class LocalizationBuilder extends StatelessWidget { class LocalizationVM { LocalizationVM({ @required this.state, + @required this.onChanged, @required this.onSavePressed, @required this.onCancelPressed, }); @@ -30,11 +35,21 @@ class LocalizationVM { final state = store.state; return LocalizationVM( - state: state, - ); + state: state, + onChanged: (company) { + store.dispatch(UpdateSettings(company: company)); + }, + onSavePressed: (context) { + final completer = snackBarCompleter( + context, AppLocalization.of(context).refreshData); + store.dispatch(SaveSettingsRequest( + completer: completer, + settings: state.uiState.settingsUIState.editing)); + }); } final AppState state; + final Function(CompanyEntity) onChanged; final Function(BuildContext) onSavePressed; final Function(BuildContext) onCancelPressed; } diff --git a/lib/ui/settings/settings_list.dart b/lib/ui/settings/settings_list.dart index d65c0f563..cacf9e656 100644 --- a/lib/ui/settings/settings_list.dart +++ b/lib/ui/settings/settings_list.dart @@ -95,6 +95,7 @@ class SettingsList extends StatelessWidget { section: kSettingsTemplatesAndReminders, viewModel: viewModel, ), + /* SettingsListTile( section: kSettingsCreditCardsAndBanks, viewModel: viewModel, @@ -103,6 +104,7 @@ class SettingsList extends StatelessWidget { section: kSettingsDataVisualizations, viewModel: viewModel, ), + */ ], ); } diff --git a/lib/ui/settings/user_details.dart b/lib/ui/settings/user_details.dart index 40a63f0a3..fae408171 100644 --- a/lib/ui/settings/user_details.dart +++ b/lib/ui/settings/user_details.dart @@ -80,7 +80,7 @@ class _UserDetailsState extends State { return WillPopScope( onWillPop: () async { - viewModel.onBackPressed(); + //viewModel.onBackPressed(); return true; }, child: Scaffold( diff --git a/lib/ui/settings/user_details_vm.dart b/lib/ui/settings/user_details_vm.dart index aaa6d768d..7696e473f 100644 --- a/lib/ui/settings/user_details_vm.dart +++ b/lib/ui/settings/user_details_vm.dart @@ -1,7 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/data/models/company_model.dart'; +import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'; import 'package:invoiceninja_flutter/ui/settings/user_details.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/app/app_state.dart'; @@ -22,28 +26,30 @@ class UserDetailsBuilder extends StatelessWidget { class UserDetailsVM { UserDetailsVM({ @required this.state, + @required this.onChanged, @required this.onSavePressed, @required this.onCancelPressed, - @required this.onBackPressed, }); static UserDetailsVM fromStore(Store store) { - //final state = store.state; + final state = store.state; return UserDetailsVM( - state: store.state, - onBackPressed: () { - /* - if (state.uiState.currentRoute.contains(ProductScreen.route)) { - store.dispatch(UpdateCurrentRoute(ProductScreen.route)); - } - */ - }, - ); + state: state, + onChanged: (company) { + store.dispatch(UpdateSettings(company: company)); + }, + onSavePressed: (context) { + final completer = snackBarCompleter( + context, AppLocalization.of(context).refreshData); + store.dispatch(SaveSettingsRequest( + completer: completer, + settings: state.uiState.settingsUIState.editing)); + }); } final AppState state; + final Function(CompanyEntity) onChanged; final Function(BuildContext) onSavePressed; final Function(BuildContext) onCancelPressed; - final Function onBackPressed; }