@twreporter/redux
Version:
redux actions and reducers for twreporter website
42 lines (39 loc) • 1.44 kB
JavaScript
;
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;
}