dareway-rui
Version:
163 lines (130 loc) • 6.16 kB
JavaScript
'use strict';
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require('@babel/runtime/helpers/extends'));
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 _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized'));
var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits'));
var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty'));
var _react = _interopRequireDefault(require('react'));
var _redux = require('redux');
var _reactRedux = require('react-redux');
var _uuid = _interopRequireDefault(require('./../../util/uuid'));
var _View = _interopRequireDefault(require('./View'));
var _Model = require('./Model');
var _Focus = require('../Focus');
var _dec, _class, _temp;
var canFocus = function canFocus(props) {
var children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
if (props.hidden) {
return false;
}
for (var i = 0; i < children.length; i++) {
if (children[i].canFocus && children[i].canFocus()) {
return true;
}
}
return false;
};
var PanelRegister = ((_dec = (0, _reactRedux.connect)()),
_dec(
(_class = ((_temp =
/*#__PURE__*/
(function(_React$Component) {
(0, _inherits2.default)(PanelRegister, _React$Component);
function PanelRegister(props) {
var _this;
(0, _classCallCheck2.default)(this, PanelRegister);
_this = (0, _possibleConstructorReturn2.default)(
this,
(0, _getPrototypeOf2.default)(PanelRegister).call(this, props)
); // 标签名
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'showVMPath', function(
event,
vmPath,
laneID
) {
if (RUI_DEBUG_MODE) {
_this.props.dispatch({
type: '__draco__lane__/showVMPath',
payload: {
laneID: laneID,
vmPath: vmPath
}
});
event.preventDefault();
}
});
var name = _this.props.name; // 模型名
_this.tagName = name || 'Panel__'.concat((0, _uuid.default)(), '__'); // 模型注入
_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)
})
}
}); // 链接View
var connector = (0, _reactRedux.connect)(function(store) {
// 这个地方要时刻与 state 保持一致;
var _store$_this$props$mo = store[_this.props.modelNamespace]['@@tags'][_this.tagName],
hidden = _store$_this$props$mo.hidden,
userRefreshConnectedView = _store$_this$props$mo.userRefreshConnectedView,
userRefreshParams = _store$_this$props$mo.userRefreshParams,
userRefreshVmPath = _store$_this$props$mo.userRefreshVmPath;
return {
hidden: hidden,
userRefreshConnectedView: userRefreshConnectedView,
userRefreshParams: userRefreshParams,
userRefreshVmPath: userRefreshVmPath
};
});
var enhance = (0, _redux.compose)(
connector,
(0, _Focus.withFocus)({
canFocus: canFocus
})
);
_this.ConnectedComponent = enhance(_View.default);
return _this;
}
(0, _createClass2.default)(PanelRegister, [
{
key: 'componentWillUnmount',
value: function componentWillUnmount() {
var bizModelNamespace = this.props.modelNamespace;
this.props.dispatch({
type: ''.concat(bizModelNamespace, '/__privateRemoveTag'),
payload: {
tagName: this.tagName
}
});
}
},
{
key: 'render',
value: function render() {
var ConnectedComponent = this.ConnectedComponent;
return _react.default.createElement(
ConnectedComponent,
(0, _extends2.default)({}, this.props, {
showVMPath: this.showVMPath
})
);
}
}
]);
return PanelRegister;
})(_react.default.Component)),
_temp))
) || _class);
exports.default = PanelRegister;
//@ sourceMappingURL=Register.js.map