@riil-frontend/component-page-config
Version:
page config components,include components list,component attribute panel and page canvas
73 lines (54 loc) • 2.39 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireWildcard(require("react"));
var _starkModule = require("@ice/stark-module");
var _componentNoDataPage = _interopRequireDefault(require("@riil-frontend/component-no-data-page"));
var _ahooks = require("ahooks");
require("./index.scss");
var MicroCom = function MicroCom(props) {
var ref = (0, _react.useRef)(); //判定组件是否可见
var isInView = (0, _ahooks.useInViewport)(ref);
var _useState = (0, _react.useState)(true),
isLoadSuccess = _useState[0],
setIsLoadSuccess = _useState[1];
var path = props.path,
comDict = props.comDict,
other = (0, _objectWithoutPropertiesLoose2["default"])(props, ["path", "comDict"]);
var thisCom = comDict[other.config.type];
var _useState2 = (0, _react.useState)([thisCom.path + '/index.js', thisCom.path + '/index.css']),
url = _useState2[0],
setUrl = _useState2[1];
var shouldMount = (0, _react.useRef)(false);
if (isInView && !shouldMount.current) {
shouldMount.current = true;
}
if (thisCom) {
return isLoadSuccess ? /*#__PURE__*/_react["default"].createElement("div", {
className: "micro-module-wrap",
ref: ref
}, shouldMount.current ? /*#__PURE__*/_react["default"].createElement(_starkModule.MicroModule, (0, _extends2["default"])({
moduleInfo: {
url: url,
name: other.config.type
}
}, other, {
handleError: function handleError(e) {
setIsLoadSuccess(false);
},
microPath: thisCom.path
})) : null) : /*#__PURE__*/_react["default"].createElement(_componentNoDataPage["default"], {
statusCode: "\u6B64\u7EC4\u4EF6\u8D44\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728"
});
} else {
return /*#__PURE__*/_react["default"].createElement(_componentNoDataPage["default"], {
statusCode: "\u6B64\u7EC4\u4EF6\u4E0D\u5B58\u5728"
});
}
};
var _default = MicroCom;
exports["default"] = _default;