dareway-rui
Version:
111 lines (87 loc) • 4.28 kB
JavaScript
;
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require('@babel/runtime/helpers/objectSpread'));
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 _react = _interopRequireDefault(require('react'));
var _reactRedux = require('react-redux');
var _propTypes = _interopRequireDefault(require('prop-types'));
var _util = require('../../../util');
var _Model = require('./Model');
var _view = require('./view');
var _dec, _class;
var ButtonRegister = ((_dec = (0, _reactRedux.connect)()),
_dec(
(_class =
/*#__PURE__*/
(function(_React$Component) {
(0, _inherits2.default)(ButtonRegister, _React$Component);
function ButtonRegister(props) {
var _this;
(0, _classCallCheck2.default)(this, ButtonRegister);
_this = (0, _possibleConstructorReturn2.default)(
this,
(0, _getPrototypeOf2.default)(ButtonRegister).call(this, props)
); // 标签名
var name = _this.props.name || 'Button_'.concat((0, _util.uuid)()); // 模型名
if (_this.props.parentTagName) {
_this.tagName = _this.props.parentTagName + '->' + name.toLowerCase();
} else {
_this.tagName = name;
} // 核心是将原先注入模型的逻辑,迁移到了业务VM的State中;
_this.props.dispatch({
type: ''.concat(_this.props.modelNamespace, '/__privateAddTag'),
payload: {
tagName: _this.tagName,
tagInitState: (0, _objectSpread2.default)({}, (0, _Model.genState)(_this.props), {
'@@api': (0, _Model.genApi)(_this.props.modelNamespace, _this.tagName)
})
}
});
var connector = (0, _reactRedux.connect)(function(store) {
// 这个地方要时刻与 state 保持一致;
var _store$_this$props$mo = store[_this.props.modelNamespace]['@@tags'][_this.tagName],
disabled = _store$_this$props$mo.disabled,
onClick = _store$_this$props$mo.onClick,
hidden = _store$_this$props$mo.hidden;
return {
disabled: disabled,
onClick: onClick,
hidden: hidden
};
});
_this.ConnectedComponent = connector(_view.ButtonView);
return _this;
}
(0, _createClass2.default)(ButtonRegister, [
{
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this.props.dispatch({
type: ''.concat(this.props.modelNamespace, '/__privateRemoveTag'),
payload: {
tagName: this.tagName
}
});
}
},
{
key: 'render',
value: function render() {
var ConnectedComponent = this.ConnectedComponent;
return _react.default.createElement(ConnectedComponent, this.props);
}
}
]);
return ButtonRegister;
})(_react.default.Component))
) || _class);
exports.default = ButtonRegister;
//@ sourceMappingURL=Register.js.map