UNPKG

@e-group/redux-modules

Version:

eGroup team react-redux modules that share across projects.

65 lines (50 loc) 1.76 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.entities = void 0; var _reduxActions = require("redux-actions"); var _immutable = require("@e-group/immutable"); var _merger = _interopRequireDefault(require("./merger")); var _entities = require("../../entities"); const initialState = (0, _immutable.fromJS)({}); /** * Reducer */ const entities = (0, _reduxActions.handleActions)({ [_entities.SET_ENTITIES]: (state, action) => { if (action.payload) { if (action.meta && typeof Array.isArray(action.meta.path)) { return state.setIn(action.meta.path, state.getIn(action.meta.path, (0, _immutable.Map)()).mergeWith(_merger.default, action.payload)); } return state.mergeWith(_merger.default, action.payload); } return state; }, [_entities.SET_ENTITIES_SHALLOW]: (state, action) => { if (action.payload) { if (action.meta && typeof Array.isArray(action.meta.path)) { return state.mergeIn(action.meta.path, action.payload); } return state.merge(action.payload); } return state; }, [_entities.SET_ENTITIES_ARRAY_CONCAT]: (state, action) => { if (action.payload) { if (action.meta && typeof Array.isArray(action.meta.path)) { return state.setIn(action.meta.path, state.getIn(action.meta.path, (0, _immutable.Map)()).mergeDeep(action.payload)); } return state.mergeDeep(action.payload); } return state; }, [_entities.DELETE_ENTITIES_IN]: (state, action) => { if (action.payload) { return state.deleteIn(action.payload); } return state; } }, initialState); exports.entities = entities;