@atlaskit/app-provider
Version:
A top level provider for the Design System.
53 lines (51 loc) • 2.63 kB
JavaScript
"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;