re

redux-entities

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

Showing:

Popularity

Downloads/wk

7

GitHub Stars

34

Maintenance

Last Commit

4yrs ago

Contributors

0

Package

Dependencies

1

Size (min+gzip)

7.3KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100