dareway-rui
Version:
159 lines (129 loc) • 6.13 kB
JavaScript
;
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck'));
var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass'));
var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn'));
var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf'));
var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits'));
var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty'));
var _objectSpread2 = _interopRequireDefault(require('@babel/runtime/helpers/objectSpread'));
var _react = _interopRequireDefault(require('react'));
var _reactRedux = require('react-redux');
var _ModelNamespaceContext = _interopRequireDefault(require('./ModelNamespaceContext'));
var _RUICore = _interopRequireDefault(require('./RUICore'));
var _lodash = _interopRequireDefault(require('lodash'));
var _RUIModel = _interopRequireDefault(require('./RUIModel'));
var _extraModelCoreAPI = require('./extraModelCoreAPI');
// 注入内核需要的额外模型
_RUIModel.default.addExtraReducers((0, _extraModelCoreAPI.genReducers)());
var _default = function _default(namespace) {
return function(Component) {
var _class, _temp;
return (0, _reactRedux.connect)(
function(state) {
var modelState = state[namespace];
var bizState = _lodash.default.omit(modelState, ['@@tags']);
return (0, _objectSpread2.default)({}, bizState);
},
function(dispatch) {
return {
invoke: function invoke(type, payload) {
return dispatch({
type: ''.concat(namespace, '/').concat(type),
payload: payload
});
},
invokeWithNamespace: function invokeWithNamespace(namespace, type, payload) {
return dispatch({
type: ''.concat(namespace, '/').concat(type),
payload: payload
});
},
getNamespace: function getNamespace() {
return namespace;
}
};
},
function(stateProps, dispatchProps, ownProps) {
function getState(name) {
if (!name) {
return stateProps;
}
return stateProps[name];
}
function getParameter(name) {
if (!name || typeof name !== 'string') {
throw new Error('name 必须为非空字符串类型');
}
return ownProps['__RUI__VIEW__PRIVATE__PROPS__']['__user__custom__params__'][name];
}
function getParameters() {
return ownProps['__RUI__VIEW__PRIVATE__PROPS__']['__user__custom__params__'];
}
return Object.assign({}, ownProps, stateProps, dispatchProps, {
getState: getState,
getParameter: getParameter,
getParameters: getParameters
});
}
)(
((_temp = _class =
/*#__PURE__*/
(function(_React$Component) {
(0, _inherits2.default)(_class, _React$Component);
function _class(props) {
(0, _classCallCheck2.default)(this, _class);
return (0, _possibleConstructorReturn2.default)(
this,
(0, _getPrototypeOf2.default)(_class).call(this, props)
);
}
(0, _createClass2.default)(_class, [
{
key: 'componentWillMount',
// 将 RUI 私有属性自动储存到 Model;
value: function componentWillMount() {
this.props.invoke(
'__saveRuiViewPrivatePropsSuccess__',
this.props.__RUI__VIEW__PRIVATE__PROPS__
);
}
},
{
key: 'componentWillUnmount',
value: function componentWillUnmount() {
_RUICore.default.unregisterModel(namespace);
}
},
{
key: 'render',
value: function render() {
return _react.default.createElement(
_ModelNamespaceContext.default.Provider,
{
value: {
modelNamespace: namespace
}
},
_react.default.createElement(Component, this.props)
);
}
}
]);
return _class;
})(_react.default.Component)),
(0, _defineProperty2.default)(
_class,
'displayName',
''.concat(Component.name || Component.displayName, '_').concat(namespace)
),
_temp)
);
};
};
exports.default = _default;
//@ sourceMappingURL=connect.js.map