UNPKG

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

Version:

Baidu Map require-script Components for React.

42 lines 1.33 kB
import _extends from "@babel/runtime/helpers/extends"; /// <reference types="@uiw/react-baidu-map-types" /> import React, { Fragment, useEffect, useState } from 'react'; import { requireScript } from '@uiw/react-baidu-map-utils'; import { jsxs as _jsxs } from "react/jsx-runtime"; export default /*#__PURE__*/React.forwardRef((props, ref) => { var { children, map, container } = props || {}; var [completed, setCompleted] = useState(false); useEffect(() => { if (props.src) { 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 }, []); var chields = typeof children === 'function' ? [children] : React.Children.toArray(children); if (completed) { return /*#__PURE__*/_jsxs(Fragment, { children: [typeof children === 'function' && children({ BMap, map, container }), chields.map(child => { if (! /*#__PURE__*/React.isValidElement(child)) return null; return /*#__PURE__*/React.cloneElement(child, _extends({}, child.props, { BMap, map, container })); })] }); } return null; });