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