@ozen-ui/kit
Version:
React component library
31 lines (30 loc) • 1.91 kB
JavaScript
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';
;