UNPKG

tdesign-react

Version:
110 lines (104 loc) 4.01 kB
/** * tdesign v1.16.6 * (c) 2026 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var slicedToArray = require('../_chunks/dep-3281986a.js'); var _typeof = require('../_chunks/dep-90a93885.js'); var React = require('react'); var ReactDOM = require('react-dom'); var _util_style = require('../_chunks/dep-2bbded38.js'); var hooks_useConfig = require('../hooks/useConfig.js'); var hooks_useLayoutEffect = require('../hooks/useLayoutEffect.js'); require('../_chunks/dep-54373955.js'); require('../_chunks/dep-ef5bfcf1.js'); require('../_chunks/dep-202d6c73.js'); require('../_chunks/dep-615c149d.js'); require('../_chunks/dep-a8d5081a.js'); require('../_chunks/dep-0173c82c.js'); require('../config-provider/ConfigContext.js'); require('../_chunks/dep-1f6c39e3.js'); require('../_chunks/dep-875a5344.js'); require('../_chunks/dep-20f09a63.js'); require('dayjs'); require('../_chunks/dep-e691746e.js'); require('../_chunks/dep-9d3b1a05.js'); require('../_chunks/dep-1f8c969d.js'); require('../_chunks/dep-403f5edf.js'); require('../_chunks/dep-d24b94bc.js'); require('../_chunks/dep-6478e7e3.js'); require('../_chunks/dep-c9025587.js'); require('../_chunks/dep-8663a5c9.js'); require('../_chunks/dep-50349518.js'); require('../_chunks/dep-8c9795f9.js'); require('../_chunks/dep-723e29d6.js'); require('../_chunks/dep-0bd8b970.js'); require('../_chunks/dep-73ef2133.js'); require('../_chunks/dep-cae1e5aa.js'); require('../_chunks/dep-0b97e212.js'); require('../_chunks/dep-0652d2a6.js'); require('../_chunks/dep-1a7ce20e.js'); require('../_chunks/dep-116af952.js'); require('../_chunks/dep-f6a777ad.js'); require('../_chunks/dep-ff301423.js'); function getAttach(attach, triggerNode) { if (!_util_style.canUseDocument) return null; var el; if (typeof attach === "string") { el = document.querySelector(attach); } if (typeof attach === "function") { el = attach(triggerNode); } if (_typeof._typeof(attach) === "object" && attach instanceof window.HTMLElement) { el = attach; } if (el && el.nodeType === 1) return el; return document.body; } var Portal = /*#__PURE__*/React.forwardRef(function (props, ref) { var attach = props.attach, children = props.children, triggerNode = props.triggerNode, style = props.style; var _useConfig = hooks_useConfig["default"](), classPrefix = _useConfig.classPrefix; var _useState = React.useState(false), _useState2 = slicedToArray._slicedToArray(_useState, 2), mounted = _useState2[0], setMounted = _useState2[1]; var container = React.useMemo(function () { if (!_util_style.canUseDocument) return null; var el = document.createElement("div"); el.className = "".concat(classPrefix, "-portal-wrapper"); if (_typeof._typeof(style) === "object") { Object.assign(el.style, style); } return el; }, [classPrefix]); hooks_useLayoutEffect["default"](function () { var _parentElement$append; if (!mounted) return; var parentElement = getAttach(attach, triggerNode); parentElement === null || parentElement === void 0 || (_parentElement$append = parentElement.appendChild) === null || _parentElement$append === void 0 || _parentElement$append.call(parentElement, container); return function () { var _parentElement$remove; parentElement === null || parentElement === void 0 || (_parentElement$remove = parentElement.removeChild) === null || _parentElement$remove === void 0 || _parentElement$remove.call(parentElement, container); }; }, [container, attach, triggerNode, mounted]); React.useEffect(function () { if (!mounted) { setMounted(true); } }, []); React.useImperativeHandle(ref, function () { return container; }); return _util_style.canUseDocument && mounted ? /*#__PURE__*/ReactDOM.createPortal(children, container) : null; }); Portal.displayName = "Portal"; exports["default"] = Portal; exports.getAttach = getAttach; //# sourceMappingURL=Portal.js.map