@shopify/polaris
Version:
Shopify’s product component library
91 lines (84 loc) • 3.64 kB
JavaScript
import { objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
import React$1, { StrictMode, Fragment } from 'react';
import { ThemeContext } from '../../utilities/theme/context.js';
import { buildCustomProperties, buildThemeContext } from '../../utilities/theme/utils.js';
import { FeaturesContext } from '../../utilities/features/context.js';
import { MediaQueryContext } from '../../utilities/media-query/context.js';
import { UniqueIdFactoryContext } from '../../utilities/unique-id/context.js';
import { UniqueIdFactory, globalIdGeneratorFactory } from '../../utilities/unique-id/unique-id-factory.js';
import { FocusManager as FocusManager$1 } from '../FocusManager/FocusManager.js';
import { I18nContext } from '../../utilities/i18n/context.js';
import { merge as merge$1 } from '../../utilities/merge.js';
import { I18n as I18n$1 } from '../../utilities/i18n/I18n.js';
import { ScrollLockManagerContext } from '../../utilities/scroll-lock-manager/context.js';
import { ScrollLockManager } from '../../utilities/scroll-lock-manager/scroll-lock-manager.js';
import { StickyManagerContext } from '../../utilities/sticky-manager/context.js';
import { StickyManager } from '../../utilities/sticky-manager/sticky-manager.js';
import { LinkContext } from '../../utilities/link/context.js';
import { FrameContext } from '../../utilities/frame/context.js';
var defaultMediaQuery = {
isNavigationCollapsed: false
};
function PolarisTestProvider({
strict,
children,
i18n,
link,
theme = {},
mediaQuery,
features: featuresProp = {},
frame
}) {
var Wrapper = strict ? StrictMode : Fragment;
var intl = new I18n$1(i18n || {});
var scrollLockManager = new ScrollLockManager();
var stickyManager = new StickyManager();
var uniqueIdFactory = new UniqueIdFactory(globalIdGeneratorFactory);
var features = _objectSpread2({
newDesignLanguage: false
}, featuresProp);
var customProperties = features.newDesignLanguage ? buildCustomProperties(_objectSpread2(_objectSpread2({}, theme), {}, {
colorScheme: 'light'
}), features.newDesignLanguage) : undefined;
var mergedTheme = buildThemeContext(theme, customProperties);
var mergedFrame = createFrameContext(frame);
var mergedMediaQuery = merge$1(defaultMediaQuery, mediaQuery);
return /*#__PURE__*/React$1.createElement(Wrapper, null, /*#__PURE__*/React$1.createElement(FeaturesContext.Provider, {
value: features
}, /*#__PURE__*/React$1.createElement(I18nContext.Provider, {
value: intl
}, /*#__PURE__*/React$1.createElement(ScrollLockManagerContext.Provider, {
value: scrollLockManager
}, /*#__PURE__*/React$1.createElement(StickyManagerContext.Provider, {
value: stickyManager
}, /*#__PURE__*/React$1.createElement(UniqueIdFactoryContext.Provider, {
value: uniqueIdFactory
}, /*#__PURE__*/React$1.createElement(LinkContext.Provider, {
value: link
}, /*#__PURE__*/React$1.createElement(ThemeContext.Provider, {
value: mergedTheme
}, /*#__PURE__*/React$1.createElement(MediaQueryContext.Provider, {
value: mergedMediaQuery
}, /*#__PURE__*/React$1.createElement(FocusManager$1, null, /*#__PURE__*/React$1.createElement(FrameContext.Provider, {
value: mergedFrame
}, children)))))))))));
}
function noop() {}
function createFrameContext({
showToast = noop,
hideToast = noop,
setContextualSaveBar = noop,
removeContextualSaveBar = noop,
startLoading = noop,
stopLoading = noop
} = {}) {
return {
showToast,
hideToast,
setContextualSaveBar,
removeContextualSaveBar,
startLoading,
stopLoading
};
}
export { PolarisTestProvider };