@razorpay/blade
Version:
The Design System that powers Razorpay
18 lines (15 loc) • 1.77 kB
JavaScript
import React__default from 'react';
import { ThemeProvider } from 'styled-components/native';
import { useTopNavContext } from './TopNavContext.js';
import bladeTheme from '../../tokens/theme/bladeTheme.js';
import 'ts-deepmerge';
import '@babel/runtime/helpers/slicedToArray';
import 'tinycolor2';
import '../../tokens/global/typography.js';
import '../../tokens/global/motion.js';
import { BladeProvider } from '../BladeProvider/BladeProvider.native.js';
import useTheme, { ThemeContext } from '../BladeProvider/useTheme.js';
import { jsx, Fragment } from 'react/jsx-runtime';
var TopNavOverlayThemeOverride=function TopNavOverlayThemeOverride(_ref){var children=_ref.children,shouldOverrideTheme=_ref.shouldOverrideTheme;var topNavContext=useTopNavContext();var _useTheme=useTheme(),platform=_useTheme.platform;var isDark=shouldOverrideTheme?(topNavContext==null?void 0:topNavContext.colorScheme)==='dark':true;var overrideTheme=React__default.useMemo(function(){return Object.assign({},bladeTheme,{colors:isDark?bladeTheme.colors.onDark:bladeTheme.colors.onLight,elevation:isDark?bladeTheme.elevation.onDark:bladeTheme.elevation.onLight,typography:bladeTheme.typography[platform]});},[isDark,platform]);if(!topNavContext){return jsx(Fragment,{children:children});}if(shouldOverrideTheme!==undefined){var noop=function noop(){};return jsx(ThemeContext.Provider,{value:{theme:overrideTheme,colorScheme:shouldOverrideTheme?topNavContext.colorScheme:'dark',setColorScheme:noop,platform:platform},children:jsx(ThemeProvider,{theme:overrideTheme,children:children})});}return jsx(BladeProvider,{themeTokens:bladeTheme,colorScheme:topNavContext.colorScheme,children:children});};
export { TopNavOverlayThemeOverride };
//# sourceMappingURL=TopNavOverlayThemeOverride.js.map