UNPKG

@uiw/react-baidu-map-require-script

Version:

Baidu Map require-script Components for React.

50 lines (49 loc) 1.64 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _reactBaiduMapUtils = require("@uiw/react-baidu-map-utils"); var _jsxRuntime = require("react/jsx-runtime"); /// <reference types="@uiw/react-baidu-map-types" /> var _default = exports.default = /*#__PURE__*/_react.default.forwardRef((props, ref) => { const { children, map, container } = props || {}; const [completed, setCompleted] = (0, _react.useState)(false); (0, _react.useEffect)(() => { if (props.src) { (0, _reactBaiduMapUtils.requireScript)(props.src).then(() => { setCompleted(true); props.onCompleted && props.onCompleted(); }).catch(err => { props.onFailed && props.onFailed(err); }); } // eslint-disable-next-line react-hooks/exhaustive-deps }, []); const chields = typeof children === 'function' ? [children] : _react.default.Children.toArray(children); if (completed) { return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, { children: [typeof children === 'function' && children({ BMap, map, container }), chields.map(child => { if (! /*#__PURE__*/_react.default.isValidElement(child)) return null; return /*#__PURE__*/_react.default.cloneElement(child, { ...child.props, BMap, map, container }); })] }); } return null; }); module.exports = exports.default;