UNPKG

@ozen-ui/kit

Version:

React component library

31 lines (30 loc) 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PortalBase = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importDefault(require("react")); var react_dom_1 = require("react-dom"); var useTheme_1 = require("../../hooks/useTheme"); var useThemeSettings_1 = require("../../hooks/useThemeSettings"); var polymorphicComponentWithRef_1 = require("../../utils/polymorphicComponentWithRef"); var OzenProvider_1 = require("../OzenProvider"); var ThemeProvider_1 = require("../ThemeProvider"); var constants_1 = require("./constants"); exports.PortalBase = (0, polymorphicComponentWithRef_1.polymorphicComponentWithRef)(function (_a, ref) { var _b = _a.disablePortal, disablePortal = _b === void 0 ? constants_1.PORTAL_BASE_DEFAULT_DISABLE_PORTAL : _b, _c = _a.as, Tag = _c === void 0 ? constants_1.PORTAL_BASE_DEFAULT_TAG : _c, container = _a.container, children = _a.children, other = tslib_1.__rest(_a, ["disablePortal", "as", "container", "children"]); var oldTheme = (0, ThemeProvider_1.useTheme)(); var theme = (0, useTheme_1.useTheme)(); var isUseNewProvider = (0, useThemeSettings_1.useThemeSettings)().isUseNewProvider; var ssr = (0, OzenProvider_1.useOzenSSR)(); if (disablePortal) { return (react_1.default.createElement(Tag, tslib_1.__assign({}, other, { ref: ref }), children)); } if (!container) { return null; } if (!isUseNewProvider) { return (0, react_dom_1.createPortal)(react_1.default.createElement(ThemeProvider_1.ThemeProvider, tslib_1.__assign({ theme: oldTheme, as: Tag }, other, { ref: ref }), children), container); } return (0, react_dom_1.createPortal)(react_1.default.createElement(OzenProvider_1.OzenProvider, tslib_1.__assign({ theme: theme, as: Tag, ssr: ssr.config }, other, { ref: ref }), children), container); }); exports.PortalBase.displayName = 'PortalBase';