about summary refs log tree commit diff
path: root/app/javascript/flavours/glitch/util/redux_helpers.js
blob: c0f5eeb28b23cdb35dc632c1e7865e3eff7e512e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import { injectIntl } from 'react-intl';
import { connect } from 'react-redux';

//  Merges react-redux props.
export function mergeProps (stateProps, dispatchProps, ownProps) {
  Object.assign({}, ownProps, {
    dispatch: Object.assign({}, dispatchProps, ownProps.dispatch || {}),
    state: Object.assign({}, stateProps, ownProps.state || {}),
  });
}

//  Connects a component.
export function wrap (Component, mapStateToProps, mapDispatchToProps, options) {
  const withIntl = typeof options === 'object' ? options.withIntl : !!options;
  return (withIntl ? injectIntl : i => i)(connect(mapStateToProps, mapDispatchToProps, mergeProps)(Component));
}