UNPKG

@dark-engine/platform-server

Version:
35 lines (34 loc) 1.08 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.createPortal = void 0; const core_1 = require('@dark-engine/core'); const utils_1 = require('../utils'); const $$portal = Symbol('portal'); function createPortal(slot, container, key) { if (process.env.NODE_ENV !== 'production') { if (!(container instanceof Element)) { (0, utils_1.illegal)(`The createPortal only gets a valid element as container!`); } } return Portal({ key, container, slot }); } exports.createPortal = createPortal; const Portal = (0, core_1.component)( props => { const cursor = (0, core_1.__useCursor)(); const el = props.container; const scope = (0, core_1.useMemo)(() => { (0, utils_1.removeContent)(el); return { el }; }, []); (0, core_1.useLayoutEffect)(() => { return () => (0, utils_1.removeContent)(scope.el); }, []); cursor.hook.setIsPortal(true); cursor.el = el; scope.el = el; return props.slot; }, { token: $$portal, displayName: 'Portal' }, ); //# sourceMappingURL=portal.js.map