From e096653b2e9289b32e29653d9c7ea4cf5262cc18 Mon Sep 17 00:00:00 2001 From: Andreas Fahrecker Date: Mon, 12 Oct 2020 11:22:17 +0200 Subject: [PATCH] Created first action and basic timer reducer Signed-off-by: Andreas Fahrecker --- lib/actions/timer_actions.dart | 9 +++++++++ lib/reducers/app_state_reducer.dart | 7 +++++++ lib/reducers/timer_reducer.dart | 10 ++++++++++ 3 files changed, 26 insertions(+) create mode 100644 lib/actions/timer_actions.dart create mode 100644 lib/reducers/app_state_reducer.dart create mode 100644 lib/reducers/timer_reducer.dart 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; +}