Cleaned up the repo
Singed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
14
lib/redux/reducers/app_state_reducer.dart
Normal file
14
lib/redux/reducers/app_state_reducer.dart
Normal file
@ -0,0 +1,14 @@
|
||||
import 'package:time_progress_tracker/redux/app_state.dart';
|
||||
import 'package:time_progress_tracker/redux/reducers/bool_reducers.dart';
|
||||
import 'package:time_progress_tracker/redux/reducers/model_reducers.dart';
|
||||
|
||||
AppState appStateReducer(AppState state, dynamic action) {
|
||||
return AppState(
|
||||
hasSettingsLoaded:
|
||||
hasSettingsLoadedReducer(state.hasSettingsLoaded, action),
|
||||
hasProgressesLoaded:
|
||||
hasProgressesLoadedReducer(state.hasProgressesLoaded, action),
|
||||
timeProgressList: timeProgressListReducer(state.timeProgressList, action),
|
||||
appSettings: appSettingsReducers(state.appSettings, action),
|
||||
);
|
||||
}
|
22
lib/redux/reducers/bool_reducers.dart
Normal file
22
lib/redux/reducers/bool_reducers.dart
Normal file
@ -0,0 +1,22 @@
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:time_progress_tracker/redux/actions/app_settings_actions.dart';
|
||||
import 'package:time_progress_tracker/redux/actions/redux_actions.dart';
|
||||
import 'package:time_progress_tracker/redux/actions/time_progress_actions.dart';
|
||||
|
||||
final hasProgressesLoadedReducer = combineReducers<bool>([
|
||||
TypedReducer<bool, TimeProgressListLoadedAction>(_setTrue),
|
||||
TypedReducer<bool, TimeProgressListNotLoadedAction>(_setFalse)
|
||||
]);
|
||||
|
||||
final hasSettingsLoadedReducer = combineReducers<bool>([
|
||||
TypedReducer<bool, AppSettingsLoadedActions>(_setTrue),
|
||||
TypedReducer<bool, AppSettingsNotLoadedAction>(_setFalse)
|
||||
]);
|
||||
|
||||
bool _setTrue(bool value, BoolAction action) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool _setFalse(bool value, BoolAction action) {
|
||||
return false;
|
||||
}
|
62
lib/redux/reducers/model_reducers.dart
Normal file
62
lib/redux/reducers/model_reducers.dart
Normal file
@ -0,0 +1,62 @@
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:time_progress_tracker/models/app_settings.dart';
|
||||
import 'package:time_progress_tracker/models/time_progress.dart';
|
||||
import 'package:time_progress_tracker/redux/actions/app_settings_actions.dart';
|
||||
import 'package:time_progress_tracker/redux/actions/redux_actions.dart';
|
||||
import 'package:time_progress_tracker/redux/actions/time_progress_actions.dart';
|
||||
|
||||
final timeProgressListReducer = combineReducers<List<TimeProgress>>([
|
||||
TypedReducer<List<TimeProgress>, TimeProgressListLoadedAction>(
|
||||
_setLoadedTimeProgressList),
|
||||
TypedReducer<List<TimeProgress>, TimeProgressListNotLoadedAction>(
|
||||
_setEmptyTimeProgressList),
|
||||
TypedReducer<List<TimeProgress>, AddTimeProgressAction>(_addTimeProgress),
|
||||
TypedReducer<List<TimeProgress>, UpdateTimeProgressAction>(
|
||||
_updateTimeProgress),
|
||||
TypedReducer<List<TimeProgress>, DeleteTimeProgressAction>(
|
||||
_deleteTimeProgress),
|
||||
]);
|
||||
|
||||
List<TimeProgress> _setEmptyTimeProgressList(
|
||||
List<TimeProgress> timeProgressList,
|
||||
TimeProgressListNotLoadedAction action) {
|
||||
return [];
|
||||
}
|
||||
|
||||
List<TimeProgress> _setLoadedTimeProgressList(
|
||||
List<TimeProgress> timeProgressList, TimeProgressListLoadedAction action) {
|
||||
return action.timeProgressList;
|
||||
}
|
||||
|
||||
List<TimeProgress> _addTimeProgress(
|
||||
List<TimeProgress> timeProgressList, AddTimeProgressAction action) =>
|
||||
List.from(timeProgressList)
|
||||
..add(action.timeProgress)
|
||||
..toList(growable: false);
|
||||
|
||||
List<TimeProgress> _updateTimeProgress(
|
||||
List<TimeProgress> timeProgressList, UpdateTimeProgressAction action) =>
|
||||
timeProgressList
|
||||
.map((timeProgress) =>
|
||||
timeProgress.id == action.id ? action.timeProgress : timeProgress)
|
||||
.toList(growable: false);
|
||||
|
||||
List<TimeProgress> _deleteTimeProgress(
|
||||
List<TimeProgress> timeProgressList, DeleteTimeProgressAction action) =>
|
||||
timeProgressList
|
||||
.where((timeProgress) => timeProgress.id != action.id)
|
||||
.toList(growable: false);
|
||||
|
||||
final appSettingsReducers = combineReducers<AppSettings>([
|
||||
TypedReducer<AppSettings, AppSettingsLoadedActions>(_updateAppSettings),
|
||||
TypedReducer<AppSettings, UpdateAppSettingsActions>(_updateAppSettings),
|
||||
TypedReducer<AppSettings, AppSettingsNotLoadedAction>(_setDefaultSettings)
|
||||
]);
|
||||
|
||||
AppSettings _setDefaultSettings(
|
||||
AppSettings appSettings, AppSettingsNotLoadedAction action) =>
|
||||
AppSettings.defaults();
|
||||
|
||||
AppSettings _updateAppSettings(
|
||||
AppSettings appSettings, AppSettingsAction action) =>
|
||||
action.appSettings;
|
Reference in New Issue
Block a user