mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
b90c77b17f
* Rename page component's class name: Counter => Index, Counter => Other * Rename counter component class name: AddCount => Counter * Add counter actions `decrement` and `reset` same as with-redux example * Modify page link by NavigateTo attr in Page component * Modify license MIT => ISC same as others in package.json * Modify README
55 lines
1,006 B
JavaScript
55 lines
1,006 B
JavaScript
import {actionTypes} from './actions'
|
|
|
|
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}
|
|
}
|
|
|
|
case actionTypes.INCREMENT:
|
|
return {
|
|
...state,
|
|
...{count: state.count + 1}
|
|
}
|
|
|
|
case actionTypes.DECREMENT:
|
|
return {
|
|
...state,
|
|
...{count: state.count - 1}
|
|
}
|
|
|
|
case actionTypes.RESET:
|
|
return {
|
|
...state,
|
|
...{count: exampleInitialState.count}
|
|
}
|
|
|
|
case actionTypes.LOAD_DATA_SUCCESS:
|
|
return {
|
|
...state,
|
|
...{placeholderData: action.data}
|
|
}
|
|
|
|
case actionTypes.TICK_CLOCK:
|
|
return {
|
|
...state,
|
|
...{lastUpdate: action.ts, light: !!action.light}
|
|
}
|
|
|
|
default:
|
|
return state
|
|
}
|
|
}
|
|
|
|
export default reducer
|