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 }