dareway-rui
Version:
136 lines (116 loc) • 5.22 kB
JavaScript
'use strict';
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 _react = _interopRequireDefault(require('react'));
var _propTypes = _interopRequireDefault(require('prop-types'));
var _core = require('../../core');
var Import =
/*#__PURE__*/
(function(_React$Component) {
(0, _inherits2.default)(Import, _React$Component);
function Import(props) {
var _this;
(0, _classCallCheck2.default)(this, Import);
_this = (0, _possibleConstructorReturn2.default)(
this,
(0, _getPrototypeOf2.default)(Import).call(this, props)
);
_this.state = {
AsyncComponent: null,
error: null,
errorInfo: null
};
return _this;
} //////////////////////////////////////////////////////////////////////////////////////
(0, _createClass2.default)(Import, [
{
key: 'componentDidCatch',
//////////////////////////////////////////////////////////////////////////////////////
value: function componentDidCatch(error, errorInfo) {
this.setState({
error: error,
errorInfo: errorInfo
});
} //////////////////////////////////////////////////////////////////////////////////////
},
{
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this.mounted = false;
}
},
{
key: 'componentWillMount',
value: function componentWillMount() {
var _this2 = this;
_core.RUICore.loadCustomViewModel(this.props.biz, this.props.vmPath).then(function(_ref) {
var AsyncComponent = _ref.connectedView,
connectedModel = _ref.connectedModel;
if (_this2.mounted) {
_this2.setState({
AsyncComponent: AsyncComponent
});
} else {
_this2.state.AsyncComponent = AsyncComponent;
}
});
}
},
{
key: 'componentDidMount',
value: function componentDidMount() {
this.mounted = true;
}
},
{
key: 'render',
value: function render() {
if (this.state.errorInfo) {
// Error path
return _react.default.createElement(
'div',
null,
_react.default.createElement('h2', null, 'Exception'),
'<Import biz={'.concat(this.props.biz, '} vmPath={').concat(this.props.vmPath, '}/>'),
this.state.error &&
this.state.error.message &&
_react.default.createElement('h2', null, this.state.error.message),
_react.default.createElement(
'details',
{
style: {
whiteSpace: 'pre-wrap'
}
},
this.state.error && this.state.error.toString(),
_react.default.createElement('br', null),
this.state.errorInfo.componentStack
)
);
}
var AsyncComponent = this.state.AsyncComponent;
if (AsyncComponent) return _react.default.createElement(AsyncComponent, this.props);
return null;
}
}
]);
return Import;
})(_react.default.Component);
exports.default = Import;
(0, _defineProperty2.default)(Import, 'defaultProps', {
biz: null
});
(0, _defineProperty2.default)(Import, 'propTypes', {
biz: _propTypes.default.string,
vmPath: _propTypes.default.string.isRequired
});
//@ sourceMappingURL=Import.js.map