/ common / features / onboardStatus / reducer.ts
reducer.ts
 1  import * as types from './types';
 2  
 3  export const INITIAL_STATE: types.OnboardStatusState = {
 4    sessionStarted: false,
 5    slideNumber: 1
 6  };
 7  
 8  export function onboardStatusReducer(
 9    state: types.OnboardStatusState = INITIAL_STATE,
10    action: types.OnboardStatusAction
11  ): types.OnboardStatusState {
12    switch (action.type) {
13      case types.OnboardStatusActions.START_SESSION: {
14        return {
15          ...state,
16          sessionStarted: true
17        };
18      }
19  
20      case types.OnboardStatusActions.RESUME_SLIDE: {
21        return {
22          ...state,
23          slideNumber: action.slideNumber
24        };
25      }
26  
27      case types.OnboardStatusActions.DECREMENT_SLIDE: {
28        const prevSlide = state.slideNumber - 1;
29  
30        return {
31          ...state,
32          slideNumber: prevSlide
33        };
34      }
35  
36      case types.OnboardStatusActions.INCREMENT_SLIDE: {
37        const nextSlide = state.slideNumber + 1;
38  
39        return {
40          ...state,
41          slideNumber: nextSlide
42        };
43      }
44  
45      default:
46        return state;
47    }
48  }