mirror of
https://github.com/mgerb/mywebsite
synced 2026-01-11 02:12:53 +00:00
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
//import typs
|
|
import * as types from '../constants/app';
|
|
|
|
//defaults -
|
|
const defaultState = {
|
|
preview: {
|
|
posts: []
|
|
},
|
|
post: "",
|
|
fetched: false,
|
|
fetching: false,
|
|
postLimit: 10
|
|
};
|
|
|
|
//default reducer
|
|
export default function app(state = defaultState, action) {
|
|
//every reducer gets called when an action is called - we check for the type to modify our state accordingly
|
|
switch (action.type) {
|
|
case types.INIT_PREVIEW:
|
|
return Object.assign({}, state, {
|
|
preview: Object.assign({}, state.preview, action.posts),
|
|
fetched: true,
|
|
fetching: false
|
|
});
|
|
case types.LOAD_POST:
|
|
return Object.assign({}, state, {
|
|
post: action.post,
|
|
fetched: true,
|
|
fetching: false
|
|
});
|
|
case types.FETCHING:
|
|
return Object.assign({}, state, {
|
|
fetched: false,
|
|
fetching: true
|
|
});
|
|
case types.INCREASE_POST_LIMIT:
|
|
return Object.assign({}, state, {
|
|
postLimit: state.postLimit + 10
|
|
});
|
|
}
|
|
|
|
//return present state if no actions get called
|
|
return state;
|
|
}
|