UNPKG

nice-ui

Version:

React design system, components, and utilities

34 lines (33 loc) 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NiceUiProvider = void 0; const React = require("react"); const contentSize = require("./content-size"); const nanoTheme = require("nano-theme"); const router_1 = require("../misc/router"); const context_1 = require("../7-fullscreen/ToastCardManager/context"); const services_1 = require("./services"); const NiceUiServices_1 = require("./services/NiceUiServices"); const useBehaviorSubject_1 = require("../hooks/useBehaviorSubject"); const ToastCardManager_1 = require("../7-fullscreen/ToastCardManager"); const context_2 = require("../styles/context"); const portal_1 = require("../utils/portal"); require("../misc/global-css"); const NiceUiProvider = ({ theme, nav, content, children }) => { const services = React.useMemo(() => new NiceUiServices_1.NiceUiServices({ nav, content, }), [nav, content]); const pathname = (0, useBehaviorSubject_1.useBehaviorSubject)(services.nav.pathname$); const theme2 = (0, useBehaviorSubject_1.useBehaviorSubject)(services.theme$); return (React.createElement(services_1.context.Provider, { value: services }, React.createElement(nanoTheme.Provider, { theme: theme ?? (theme2 === 'dark' ? 'dark' : 'light') }, React.createElement(context_2.Provider, { dark: theme2 === 'dark' }, React.createElement(context_1.ToastsProvider, null, React.createElement(portal_1.PortalProvider, null, React.createElement(nanoTheme.GlobalCss, null), React.createElement(contentSize.context.Provider, { value: contentSize.DEFAULT }, React.createElement(router_1.Router, { route: pathname }, children)), React.createElement(ToastCardManager_1.ToastCardManager, null))))))); }; exports.NiceUiProvider = NiceUiProvider;