UNPKG

@uiw/react-baidu-map-utils

Version:

Baidu Map utils Components for React.

48 lines (47 loc) 1.27 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePortal = void 0; var _react = _interopRequireWildcard(require("react")); var _reactDom = require("react-dom"); const usePortal = () => { const [container] = _react.default.useState(() => { const el = document.createElement('div'); return el; }); const [portal, setPortal] = (0, _react.useState)({ render: () => null, remove: () => null }); const ReactCreatePortal = _react.default.useCallback(elmm => { const Portal = _ref => { let { children } = _ref; if (!children) return null; return /*#__PURE__*/(0, _reactDom.createPortal)(children, elmm); }; const remove = elm => { elm && (0, _reactDom.unmountComponentAtNode)(elm); }; return { render: Portal, remove }; }, []); (0, _react.useEffect)(() => { if (container) portal.remove(); const newPortal = ReactCreatePortal(container); setPortal(newPortal); return () => { newPortal.remove(container); }; }, [container]); return { Portal: portal.render, container }; }; exports.usePortal = usePortal;