UNPKG

twreporter-redux

Version:

redux actions and reducers for twreporter website

40 lines (33 loc) 870 B
import clone from 'lodash/clone' import get from 'lodash/get' import set from 'lodash/set' import reduxStateFields from '../constants/redux-state-fields' const _ = { clone, get, set, } const denormalizePosts = (slugs, entities) => { const posts = slugs.map((slug) => { return _.clone(entities[slug]) }) return posts } const denormalizeTopics = (topicSlugs, topicEntities, postEntities) => { let slugs = topicSlugs if (!Array.isArray(topicSlugs)) { slugs = [topicSlugs] } const topics = slugs.map((slug) => { const topic = _.clone(topicEntities[slug]) const relatedSlugs = _.get(topic, reduxStateFields.relateds, []) const relateds = denormalizePosts(relatedSlugs, postEntities) _.set(topic, reduxStateFields.relateds, relateds) return topic }) return topics } export { denormalizePosts, denormalizeTopics, }