UNPKG

@atlaskit/app-provider

Version:

A top level provider for the Design System.

53 lines (51 loc) 2.63 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.AppProvider = AppProvider; exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _appProviderThemingEnabledContext = require("./app-provider-theming-enabled-context"); var _insideAppProviderContext = require("./inside-app-provider-context"); var _routerLinkProvider = _interopRequireDefault(require("./router-link-provider")); var _useScrollbarHarmonisation = require("./scrollbar-harmonisation/use-scrollbar-harmonisation"); var _themeProvider = require("./theme-provider"); var _useIsInsideAppProvider = require("./use-is-inside-app-provider"); /** * __App provider__ * * An app provider provides app level configuration such as global theming. * * Place it at the root of your application. */ function AppProvider(_ref) { var children = _ref.children, _ref$defaultColorMode = _ref.defaultColorMode, defaultColorMode = _ref$defaultColorMode === void 0 ? 'light' : _ref$defaultColorMode, defaultTheme = _ref.defaultTheme, routerLinkComponent = _ref.routerLinkComponent, UNSAFE_isThemingDisabled = _ref.UNSAFE_isThemingDisabled; var isInsideAppProvider = (0, _useIsInsideAppProvider.useIsInsideAppProvider)(); (0, _useScrollbarHarmonisation.useScrollbarHarmonisation)(); if (isInsideAppProvider) { throw new Error('App provider should not be nested within another app provider.'); } var routerLinkProvider = /*#__PURE__*/_react.default.createElement(_routerLinkProvider.default, { routerLinkComponent: routerLinkComponent }, children); return /*#__PURE__*/_react.default.createElement(_insideAppProviderContext.InsideAppProviderContext.Provider, { value: true }, UNSAFE_isThemingDisabled ? routerLinkProvider : /*#__PURE__*/_react.default.createElement(_appProviderThemingEnabledContext.AppProviderThemingEnabledContext.Provider, { value: true }, /*#__PURE__*/_react.default.createElement(_themeProvider.ThemeProvider, { defaultColorMode: defaultColorMode, defaultTheme: defaultTheme }, routerLinkProvider))); } /* eslint-disable-next-line @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */ /** * @deprecated Use `import { AppProvider } from '@atlaskit/app-provider/app-provider'` instead. */ // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports -- VOLTC-139 tracks removal of this deprecated default export shim. var _default = exports.default = AppProvider;