This commit is contained in:
Hillel Coren 2019-10-03 08:00:02 +03:00
parent db98ab217f
commit 105d03dbe8
5 changed files with 40 additions and 17 deletions

View File

@ -117,8 +117,8 @@ const List<String> kSettingsSections = [
kSettingsBuyNowButtons, kSettingsBuyNowButtons,
kSettingsEmailSettings, kSettingsEmailSettings,
kSettingsTemplatesAndReminders, kSettingsTemplatesAndReminders,
kSettingsCreditCardsAndBanks, //kSettingsCreditCardsAndBanks,
kSettingsDataVisualizations, //kSettingsDataVisualizations,
]; ];
const int kPaymentStatusPending = 1; const int kPaymentStatusPending = 1;

View File

@ -1,7 +1,11 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.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/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:redux/redux.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
@ -22,6 +26,7 @@ class LocalizationBuilder extends StatelessWidget {
class LocalizationVM { class LocalizationVM {
LocalizationVM({ LocalizationVM({
@required this.state, @required this.state,
@required this.onChanged,
@required this.onSavePressed, @required this.onSavePressed,
@required this.onCancelPressed, @required this.onCancelPressed,
}); });
@ -30,11 +35,21 @@ class LocalizationVM {
final state = store.state; final state = store.state;
return LocalizationVM( 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 AppState state;
final Function(CompanyEntity) onChanged;
final Function(BuildContext) onSavePressed; final Function(BuildContext) onSavePressed;
final Function(BuildContext) onCancelPressed; final Function(BuildContext) onCancelPressed;
} }

View File

@ -95,6 +95,7 @@ class SettingsList extends StatelessWidget {
section: kSettingsTemplatesAndReminders, section: kSettingsTemplatesAndReminders,
viewModel: viewModel, viewModel: viewModel,
), ),
/*
SettingsListTile( SettingsListTile(
section: kSettingsCreditCardsAndBanks, section: kSettingsCreditCardsAndBanks,
viewModel: viewModel, viewModel: viewModel,
@ -103,6 +104,7 @@ class SettingsList extends StatelessWidget {
section: kSettingsDataVisualizations, section: kSettingsDataVisualizations,
viewModel: viewModel, viewModel: viewModel,
), ),
*/
], ],
); );
} }

View File

@ -80,7 +80,7 @@ class _UserDetailsState extends State<UserDetails> {
return WillPopScope( return WillPopScope(
onWillPop: () async { onWillPop: () async {
viewModel.onBackPressed(); //viewModel.onBackPressed();
return true; return true;
}, },
child: Scaffold( child: Scaffold(

View File

@ -1,7 +1,11 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.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/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:redux/redux.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
@ -22,28 +26,30 @@ class UserDetailsBuilder extends StatelessWidget {
class UserDetailsVM { class UserDetailsVM {
UserDetailsVM({ UserDetailsVM({
@required this.state, @required this.state,
@required this.onChanged,
@required this.onSavePressed, @required this.onSavePressed,
@required this.onCancelPressed, @required this.onCancelPressed,
@required this.onBackPressed,
}); });
static UserDetailsVM fromStore(Store<AppState> store) { static UserDetailsVM fromStore(Store<AppState> store) {
//final state = store.state; final state = store.state;
return UserDetailsVM( return UserDetailsVM(
state: store.state, state: state,
onBackPressed: () { onChanged: (company) {
/* store.dispatch(UpdateSettings(company: company));
if (state.uiState.currentRoute.contains(ProductScreen.route)) { },
store.dispatch(UpdateCurrentRoute(ProductScreen.route)); onSavePressed: (context) {
} final completer = snackBarCompleter(
*/ context, AppLocalization.of(context).refreshData);
}, store.dispatch(SaveSettingsRequest(
); completer: completer,
settings: state.uiState.settingsUIState.editing));
});
} }
final AppState state; final AppState state;
final Function(CompanyEntity) onChanged;
final Function(BuildContext) onSavePressed; final Function(BuildContext) onSavePressed;
final Function(BuildContext) onCancelPressed; final Function(BuildContext) onCancelPressed;
final Function onBackPressed;
} }