UNPKG

@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
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;