UNPKG

3.81 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
8
9var _defineProperty3 = _interopRequireDefault(_defineProperty2);
10
11var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
12
13var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
14
15var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
16
17var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
18
19var _createClass2 = require('babel-runtime/helpers/createClass');
20
21var _createClass3 = _interopRequireDefault(_createClass2);
22
23var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
24
25var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
26
27var _inherits2 = require('babel-runtime/helpers/inherits');
28
29var _inherits3 = _interopRequireDefault(_inherits2);
30
31var _isEqual2 = require('lodash/isEqual');
32
33var _isEqual3 = _interopRequireDefault(_isEqual2);
34
35var _map2 = require('lodash/map');
36
37var _map3 = _interopRequireDefault(_map2);
38
39var _isFunction2 = require('lodash/isFunction');
40
41var _isFunction3 = _interopRequireDefault(_isFunction2);
42
43var _react = require('react');
44
45var _react2 = _interopRequireDefault(_react);
46
47var _hoistNonReactStatics = require('hoist-non-react-statics');
48
49var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
50
51function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
52
53exports.default = function (mapGetValueToProps) {
54 var _ref = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
55
56 var _ref$pure = _ref.pure;
57 var pure = _ref$pure === undefined ? true : _ref$pure;
58
59 return function (WrappedComponent) {
60 var Resolve = function (_React$Component) {
61 (0, _inherits3.default)(Resolve, _React$Component);
62
63 function Resolve(props, context) {
64 (0, _classCallCheck3.default)(this, Resolve);
65
66 var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Resolve).call(this, props, context));
67
68 _this.falcor = props.falcor || context.falcor;
69 return _this;
70 }
71
72 (0, _createClass3.default)(Resolve, [{
73 key: 'componentWillMount',
74 value: function componentWillMount() {
75 var _this2 = this;
76
77 var getValueToProps = (0, _isFunction3.default)(mapGetValueToProps) ? mapGetValueToProps(this.props) : mapGetValueToProps;
78
79 this.subscriptions = (0, _map3.default)(getValueToProps, function (pathSet, propKey) {
80 return _this2.falcor.getValue(pathSet).subscribe(function (value) {
81 _this2.setState((0, _defineProperty3.default)({}, propKey, value));
82 });
83 });
84 }
85 }, {
86 key: 'shouldComponentUpdate',
87 value: function shouldComponentUpdate(nextProps, nextState) {
88 return !pure || !(0, _isEqual3.default)(this.props, nextProps) || !(0, _isEqual3.default)(this.state, nextState);
89 }
90 }, {
91 key: 'componentWillUnmount',
92 value: function componentWillUnmount() {
93 this.subscriptions.forEach(function (_ref2) {
94 var dispose = _ref2.dispose;
95 return dispose();
96 });
97 }
98 }, {
99 key: 'render',
100 value: function render() {
101 return _react2.default.createElement(WrappedComponent, this.state);
102 }
103 }]);
104 return Resolve;
105 }(_react2.default.Component);
106
107 Resolve.contextTypes = {
108 falcor: _react.PropTypes.object
109 };
110 process.env.NODE_ENV !== "production" ? Resolve.propTypes = {
111 falcor: _react.PropTypes.object
112 } : void 0;
113
114 return (0, _hoistNonReactStatics2.default)(Resolve, WrappedComponent);
115 };
116};
\No newline at end of file