@uiw/react-baidu-map-require-script
Version:
Baidu Map require-script Components for React.
50 lines (49 loc) • 1.64 kB
JavaScript
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;
;