UNPKG

@twreporter/redux

Version:

redux actions and reducers for twreporter website

42 lines (39 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = entitiesForAuthors; var _actionTypes = _interopRequireDefault(require("../constants/action-types")); var _get = _interopRequireDefault(require("lodash/get")); var _merge = _interopRequireDefault(require("lodash/merge")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } // lodash var _ = { get: _get["default"], merge: _merge["default"] }; /** * @param {import('../typedef').EntitiesForAuthors} state - redux state * @param {Object} state.articles - article entities * @param {Object} state.authors - author entities * @param {Object} action - redux action * @param {string} action.type * @param {import('../typedef').EntitiesForAuthors.(authors|articles)} action.payload.normalizedData.entities */ function entitiesForAuthors() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var action = arguments.length > 1 ? arguments[1] : undefined; var entities = _.get(action, 'payload.normalizedData.entities'); if (entities) { switch (action.type) { case _actionTypes["default"].FETCH_AUTHOR_COLLECTION_SUCCESS: return _.merge({}, state, { articles: entities.articles, authors: entities.authors }); default: return _.merge({}, state, entities); } } return state; }