76 lines
2.3 KiB
JavaScript
76 lines
2.3 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
exports.__esModule = true;
|
||
|
exports.mapPropsStreamWithConfig = undefined;
|
||
|
|
||
|
var _react = require('react');
|
||
|
|
||
|
var _symbolObservable = require('symbol-observable');
|
||
|
|
||
|
var _symbolObservable2 = _interopRequireDefault(_symbolObservable);
|
||
|
|
||
|
var _componentFromStream = require('./componentFromStream');
|
||
|
|
||
|
var _setDisplayName = require('./setDisplayName');
|
||
|
|
||
|
var _setDisplayName2 = _interopRequireDefault(_setDisplayName);
|
||
|
|
||
|
var _wrapDisplayName = require('./wrapDisplayName');
|
||
|
|
||
|
var _wrapDisplayName2 = _interopRequireDefault(_wrapDisplayName);
|
||
|
|
||
|
var _setObservableConfig = require('./setObservableConfig');
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
|
||
|
var identity = function identity(t) {
|
||
|
return t;
|
||
|
};
|
||
|
|
||
|
var mapPropsStreamWithConfig = exports.mapPropsStreamWithConfig = function mapPropsStreamWithConfig(config) {
|
||
|
var componentFromStream = (0, _componentFromStream.componentFromStreamWithConfig)({
|
||
|
fromESObservable: identity,
|
||
|
toESObservable: identity
|
||
|
});
|
||
|
return function (transform) {
|
||
|
return function (BaseComponent) {
|
||
|
var factory = (0, _react.createFactory)(BaseComponent);
|
||
|
var fromESObservable = config.fromESObservable,
|
||
|
toESObservable = config.toESObservable;
|
||
|
|
||
|
return componentFromStream(function (props$) {
|
||
|
var _ref;
|
||
|
|
||
|
return _ref = {
|
||
|
subscribe: function subscribe(observer) {
|
||
|
var subscription = toESObservable(transform(fromESObservable(props$))).subscribe({
|
||
|
next: function next(childProps) {
|
||
|
return observer.next(factory(childProps));
|
||
|
}
|
||
|
});
|
||
|
return {
|
||
|
unsubscribe: function unsubscribe() {
|
||
|
return subscription.unsubscribe();
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
}, _ref[_symbolObservable2.default] = function () {
|
||
|
return this;
|
||
|
}, _ref;
|
||
|
});
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
var mapPropsStream = function mapPropsStream(transform) {
|
||
|
var hoc = mapPropsStreamWithConfig(_setObservableConfig.config)(transform);
|
||
|
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
return function (BaseComponent) {
|
||
|
return (0, _setDisplayName2.default)((0, _wrapDisplayName2.default)(BaseComponent, 'mapPropsStream'))(hoc(BaseComponent));
|
||
|
};
|
||
|
}
|
||
|
return hoc;
|
||
|
};
|
||
|
|
||
|
exports.default = mapPropsStream;
|