Higher-order reducer for store entities received from gaearon's normalizr and makes it easy to handle them.
npm install --save redux-entities-immutable
WIP
import { combineEntitiesReducers } from 'redux-entities-immutable';
import { contacts, groups, images, notes } from './entities'
export default combineEntitiesReducers({
contacts,
groups,
images,
notes
});
import { combineReducers } from 'redux';
import { entitiesReducer } from 'redux-entities-immutable';
function contacts(state = {}, action) {
const { type, /* , payload */ meta } = action;
switch (type) {
case UPDATE_CONTACT:
case REMOVE_CONTACT:
return state.merge({ [payload.id]: { isPending: true } });
case UPDATE_CONTACT_SUCCESS:
return state.merge({ [payload.id]: { isPending: false } });
case REMOVE_CONTACT_SUCCESS:
return state.delete(meta.id);
default:
return state;
}
}
export default combineReducers({
contacts: entitiesReducer(contacts, 'contacts')
});