canape/frontend/js/reducers/polochon.js

29 lines
853 B
JavaScript

import { List, Map, fromJS } from "immutable"
const defaultState = Map({
loadingPublic: false,
loadingManaged: false,
public: List(),
managed: List(),
});
const handlers = {
"PUBLIC_POLOCHON_LIST_FETCH_PENDING": state => state.set("loadingPublic", true),
"PUBLIC_POLOCHON_LIST_FETCH_FULFILLED": (state, action) => {
return state.merge({
loadingPublic: false,
public: List(fromJS(action.payload.response.data)),
});
},
"MANAGED_POLOCHON_LIST_FETCH_PENDING": state => state.set("loadingManaged", true),
"MANAGED_POLOCHON_LIST_FETCH_FULFILLED": (state, action) => {
return state.merge({
loadingManaged: false,
managed: List(fromJS(action.payload.response.data)),
});
},
}
export default (state = defaultState, action) =>
handlers[action.type] ? handlers[action.type](state, action) : state;