rsnext/examples/with-redux-saga/reducer.js

55 lines
1,020 B
JavaScript
Raw Normal View History

import { actionTypes } from './actions'
2017-07-13 20:55:29 +02:00
export const exampleInitialState = {
count: 0,
error: false,
lastUpdate: 0,
light: false,
placeholderData: null
}
function reducer (state = exampleInitialState, action) {
switch (action.type) {
case actionTypes.FAILURE:
return {
...state,
...{ error: action.error }
2017-07-13 20:55:29 +02:00
}
case actionTypes.INCREMENT:
return {
...state,
...{ count: state.count + 1 }
2017-07-13 20:55:29 +02:00
}
case actionTypes.DECREMENT:
return {
...state,
...{ count: state.count - 1 }
}
case actionTypes.RESET:
return {
...state,
...{ count: exampleInitialState.count }
}
2017-07-13 20:55:29 +02:00
case actionTypes.LOAD_DATA_SUCCESS:
return {
...state,
...{ placeholderData: action.data }
2017-07-13 20:55:29 +02:00
}
case actionTypes.TICK_CLOCK:
return {
...state,
...{ lastUpdate: action.ts, light: !!action.light }
2017-07-13 20:55:29 +02:00
}
default:
return state
}
}
export default reducer