Feature/code cleanup (#9)
* Implemented hasSettingsLoaded reducer * Added Padding to Progress List View * Created Settings and Time Progress List Store Connector * Rewritten Home Active Tab * Fixed missing onTap in Progress List Tile * Started using new Store Connectors in Inactive and Settings Tab * Created Time Progress Store Connector * Rewritten ProgressDetailScreen with new Store Connectors * Rewritten DatePickerBtn with TextButton * Deleted unused widget * Changed Foreground Color behaviour in ColorPicker BTN * Created Select Duration Button * Rewritten Duration Setting Widget * Updated Version Number Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
committed by
GitHub
parent
fc35476503
commit
40bdcc44f9
@ -1,21 +1,14 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_redux/flutter_redux.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:time_progress_tracker/actions/actions.dart';
|
||||
import 'package:time_progress_tracker/app.dart';
|
||||
import 'package:time_progress_tracker/models/app_settings.dart';
|
||||
import 'package:time_progress_tracker/models/app_state.dart';
|
||||
import 'package:time_progress_tracker/selectors/time_progress_selectors.dart';
|
||||
import 'package:time_progress_tracker/widgets/home/tabs/settings/color_settings_widget.dart';
|
||||
import 'package:time_progress_tracker/widgets/home/tabs/settings/duration_settings_widget.dart';
|
||||
import 'package:time_progress_tracker/widgets/store_connectors/settings_store_connector.dart';
|
||||
|
||||
class HomeSettingsTab extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return StoreConnector<AppState, _ViewModel>(
|
||||
onInit: loadSettingsIfUnloaded,
|
||||
converter: (store) => _ViewModel.create(store),
|
||||
builder: (context, _ViewModel vm) {
|
||||
return SettingsStoreConnector(
|
||||
loadedBuilder: (context, settingsVm) {
|
||||
return Container(
|
||||
padding: EdgeInsets.all(16),
|
||||
child: Center(
|
||||
@ -23,16 +16,16 @@ class HomeSettingsTab extends StatelessWidget {
|
||||
children: [
|
||||
Expanded(
|
||||
child: ColorSettingsWidget(
|
||||
doneColor: vm.doneColor,
|
||||
leftColor: vm.leftColor,
|
||||
updateDoneColor: vm.onDoneColorChanged,
|
||||
updateLeftColor: vm.onLeftColorChanged,
|
||||
doneColor: settingsVm.appSettings.doneColor,
|
||||
leftColor: settingsVm.appSettings.leftColor,
|
||||
updateDoneColor: settingsVm.updateDoneColor,
|
||||
updateLeftColor: settingsVm.updateLeftColor,
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: DurationSettingsWidget(
|
||||
duration: vm.duration,
|
||||
updateDuration: vm.onDurationChanged,
|
||||
duration: settingsVm.appSettings.duration,
|
||||
updateDuration: settingsVm.updateDuration,
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
@ -57,39 +50,3 @@ class HomeSettingsTab extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _ViewModel {
|
||||
final Color doneColor, leftColor;
|
||||
final void Function(Color) onDoneColorChanged, onLeftColorChanged;
|
||||
final Duration duration;
|
||||
final void Function(Duration) onDurationChanged;
|
||||
|
||||
_ViewModel({
|
||||
@required this.doneColor,
|
||||
@required this.leftColor,
|
||||
@required this.onDoneColorChanged,
|
||||
@required this.onLeftColorChanged,
|
||||
@required this.duration,
|
||||
@required this.onDurationChanged,
|
||||
});
|
||||
|
||||
factory _ViewModel.create(Store<AppState> store) {
|
||||
AppSettings settings = appSettingsSelector(store.state);
|
||||
|
||||
void _onDoneColorChanged(Color c) => store
|
||||
.dispatch(UpdateAppSettingsActions(settings.copyWith(doneColor: c)));
|
||||
void _onLeftColorChanged(Color c) => store
|
||||
.dispatch(UpdateAppSettingsActions(settings.copyWith(leftColor: c)));
|
||||
|
||||
void _onDurationChanged(Duration d) => store
|
||||
.dispatch(UpdateAppSettingsActions(settings.copyWith(duration: d)));
|
||||
|
||||
return _ViewModel(
|
||||
doneColor: settings.doneColor,
|
||||
leftColor: settings.leftColor,
|
||||
onDoneColorChanged: _onDoneColorChanged,
|
||||
onLeftColorChanged: _onLeftColorChanged,
|
||||
duration: settings.duration,
|
||||
onDurationChanged: _onDurationChanged);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user