diff --git a/lib/actions/timer_actions.dart b/lib/actions/timer_actions.dart new file mode 100644 index 0000000..5190d9f --- /dev/null +++ b/lib/actions/timer_actions.dart @@ -0,0 +1,9 @@ +import 'package:time_progress_calculator/models/timer.dart'; + +abstract class Action {} + +class UpdateTimerAction extends Action { + final Timer updatedTimer; + + UpdateTimerAction(this.updatedTimer); +} \ No newline at end of file diff --git a/lib/reducers/app_state_reducer.dart b/lib/reducers/app_state_reducer.dart new file mode 100644 index 0000000..1f4673e --- /dev/null +++ b/lib/reducers/app_state_reducer.dart @@ -0,0 +1,7 @@ +import 'package:time_progress_calculator/actions/timer_actions.dart'; +import 'package:time_progress_calculator/models/app_state.dart'; +import 'package:time_progress_calculator/reducers/timer_reducer.dart'; + +AppState appReducer(AppState state, Action action) { + return AppState(timer: timersReducer(state.timer, action)); +} diff --git a/lib/reducers/timer_reducer.dart b/lib/reducers/timer_reducer.dart new file mode 100644 index 0000000..4a741a6 --- /dev/null +++ b/lib/reducers/timer_reducer.dart @@ -0,0 +1,10 @@ +import 'package:time_progress_calculator/actions/timer_actions.dart'; +import 'package:time_progress_calculator/models/timer.dart'; +import 'package:redux/redux.dart'; + +final timersReducer = combineReducers( + [TypedReducer(_updateTimer)]); + +Timer _updateTimer(Timer timer, UpdateTimerAction action) { + return action.updatedTimer; +}