UNPKG

hoc-redux-connector

Version:

A React High-Order Component to simplify the usage of mapStateToProps and mapDispatchToProps of react-redux

31 lines (26 loc) 863 B
import { connect } from 'react-redux'; import { get } from 'lodash'; export const setMapStateToProps = subscribedNodes => state => ({ ...Object.keys(subscribedNodes).reduce( (acc, key) => ({ ...acc, [key]: get(state, subscribedNodes[key]), }), {}, ), }); export const setMapDispatchToProps = dispatchObject => dispatch => Object.keys(dispatchObject) .map(keys => ({ [keys]: (...args) => dispatch(dispatchObject[keys](...args)), })) .reduce((last, curr) => ({ ...last, ...curr }), {}); export const connectToRedux = ( subscribedKeys = null, actionCreators = null, ) => WrappedComponent => connect( subscribedKeys ? () => setMapStateToProps(subscribedKeys) : null, actionCreators ? () => setMapDispatchToProps(actionCreators) : null, )(WrappedComponent); // TODO: Remove lodash dependency { get }