ola-toolkit
Version:
ola 开发工具套件
51 lines (34 loc) • 1.66 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports._wait = undefined;
var _defineProperty2 = require("babel-runtime/helpers/defineProperty");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends3 = require("babel-runtime/helpers/extends");
var _extends4 = _interopRequireDefault(_extends3);
exports.default = function (asyncItems, mapStateToProps, mapDispatchToProps, mergeProps, options) {
return function (Component) {
// Component.reduxAsyncConnect = wrapWithDispatch(asyncItems);
Component.reduxAsyncConnect = asyncItems;
var finalMapStateToProps = function finalMapStateToProps(state, ownProps) {
var useImmutable = (0, _index.isImmutable)(state);
var mutableState = useImmutable ? _wait.getMutableState(state) : state;
var asyncStateToProps = asyncItems.reduce(function (result, _ref) {
var prop = _ref.prop;
if (!prop) {
return result;
}
return (0, _extends4.default)({}, result, (0, _defineProperty3.default)({}, prop, mutableState.reduxAsyncConnect[prop]));
}, {});
if (typeof mapStateToProps !== 'function') {
return asyncStateToProps;
}
return (0, _extends4.default)({}, mapStateToProps(useImmutable ? _wait.getImmutableState(mutableState) : mutableState, ownProps), asyncStateToProps);
};
return _wait.connect(finalMapStateToProps, mapDispatchToProps, mergeProps, options)(Component);
};
};
var _index = require("../../index");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _wait = exports._wait = {};
;