@uiw/react-baidu-map-require-script
Version:
Baidu Map require-script Components for React.
42 lines • 1.33 kB
JavaScript
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;
});