UNPKG

@wise/components-theming

Version:

Provides theming support for the Wise Design system components

42 lines (38 loc) 1.27 kB
'use strict'; var react = require('react'); var ThemeProviderContext = require('./ThemeProviderContext.js'); var _const = require('./const.js'); var helpers = require('./helpers.js'); const FALLBACK_VALUES = { theme: _const.DEFAULT_BASE_THEME, screenMode: _const.DEFAULT_SCREEN_MODE }; const isNotProduction = () => { try { return ['localhost', 'dev-wi.se'].includes(window.location.hostname); } catch { return false; } }; const useTheme = () => { const theming = react.useContext(ThemeProviderContext.ThemeContext); if (!theming && isNotProduction()) { // eslint-disable-next-line no-console console.warn('Call to useTheme outside a ThemeProvider'); } const { theme, screenMode: contextScreenMode } = theming ?? FALLBACK_VALUES; const screenMode = theme === _const.DEFAULT_BASE_THEME ? _const.DEFAULT_SCREEN_MODE : contextScreenMode; return react.useMemo(() => ({ theme, screenMode, isModern: helpers.isThemeModern(theme), isForestGreenTheme: helpers.isForestGreenTheme(theme), isScreenModeDark: helpers.isScreenModeDark(theme, screenMode), className: helpers.getThemeClassName(theme, screenMode) }), [theme, screenMode]); }; exports.useTheme = useTheme; //# sourceMappingURL=useTheme.js.map