canape/frontend/js/reducers/polochon.js

30 lines
847 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;