This commit is contained in:
Hillel Coren 2020-02-10 16:29:28 +02:00
parent 83098c1ac8
commit e4bcc6df37
2 changed files with 16 additions and 6 deletions

View File

@ -28,6 +28,7 @@ class ReportsScreen extends StatelessWidget {
final localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
final store = StoreProvider.of<AppState>(context); final store = StoreProvider.of<AppState>(context);
final state = viewModel.state; final state = viewModel.state;
final reportsUIState = state.uiState.reportsUIState;
return WillPopScope( return WillPopScope(
onWillPop: () async => true, onWillPop: () async => true,
@ -54,9 +55,9 @@ class ReportsScreen extends StatelessWidget {
children: <Widget>[ children: <Widget>[
AppDropdownButton<String>( AppDropdownButton<String>(
labelText: localization.report, labelText: localization.report,
value: state.uiState.reportsUIState.report, value: reportsUIState.report,
onChanged: (dynamic value) => onChanged: (dynamic value) =>
viewModel.onSettingsChanged(value), viewModel.onSettingsChanged(report: value),
items: [ items: [
kReportActivity, kReportActivity,
kReportAging, kReportAging,
@ -80,8 +81,9 @@ class ReportsScreen extends StatelessWidget {
), ),
AppDropdownButton<DateRange>( AppDropdownButton<DateRange>(
labelText: localization.dateRange, labelText: localization.dateRange,
value: state.uiState.reportsUIState.dateRange, value: reportsUIState.dateRange,
onChanged: (dynamic value) => null, onChanged: (dynamic value) =>
viewModel.onSettingsChanged(dateRange: value),
items: DateRange.values items: DateRange.values
.map((dateRange) => DropdownMenuItem<DateRange>( .map((dateRange) => DropdownMenuItem<DateRange>(
child: child:

View File

@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
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/dashboard_model.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/reports/reports_actions.dart'; import 'package:invoiceninja_flutter/redux/reports/reports_actions.dart';
import 'package:invoiceninja_flutter/redux/reports/reports_state.dart'; import 'package:invoiceninja_flutter/redux/reports/reports_state.dart';
@ -33,16 +34,23 @@ class ReportsScreenVM {
}); });
final AppState state; final AppState state;
final Function(String report) onSettingsChanged; final Function({
String report,
DateRange dateRange,
}) onSettingsChanged;
static ReportsScreenVM fromStore(Store<AppState> store) { static ReportsScreenVM fromStore(Store<AppState> store) {
final state = store.state; final state = store.state;
return ReportsScreenVM( return ReportsScreenVM(
state: state, state: state,
onSettingsChanged: (String report) { onSettingsChanged: ({
String report,
DateRange dateRange,
}) {
store.dispatch(UpdateReportSettings( store.dispatch(UpdateReportSettings(
report: report, report: report,
dateRange: dateRange,
)); ));
}, },
); );