redux-entities

2.0.0 • Public • Published

Redux Entities

build status npm version

Higher-order reducer for store entities received from normalizr and makes it easy to handle them.

Installation

npm install --save redux-entities

Usage

Use with entitiesReducer

import { combineReducers } from 'redux';
import { entitiesReducer } from 'redux-entities';
import { merge, omit } from 'lodash';
 
function contacts(state = {}, action) {
  const { type, payload } = action;
 
  switch (type) {
 
  case UPDATE_CONTACT:
  case REMOVE_CONTACT:
    return merge({}, state, { [payload.id]: {
      ...state[payload.id],
      isPending: true
    }});
 
  case UPDATE_CONTACT_SUCCESS:
    return merge({}, state, { [payload.id]: {
      ...state[payload.id],
      isPending: false
    }});
 
  case REMOVE_CONTACT_SUCCESS:
    return omit(state, meta.id);
 
  default:
    return state;
  }
}
 
export default combineReducers({
  contacts: entitiesReducer(contacts, 'contacts')
});
 

Use with combineEntitiesReducers

import { combineEntitiesReducers } from 'redux-entities';
import { contacts, groups, images, notes } from './entities';
 
export default combineEntitiesReducers({
  contacts,
  groups,
  images,
  notes
});
 

Immutable

If you want to use Immutable with Redux please check out this version of the library: redux-entities-immutable

Package Sidebar

Install

npm i redux-entities

Weekly Downloads

7

Version

2.0.0

License

MIT

Last publish

Collaborators

  • itsmepetrov