UNPKG

@wise/components-theming

Version:

Provides theming support for the Wise Design system components

50 lines (46 loc) 1.36 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, setTheme: () => {}, setScreenMode: () => {} }; 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, setTheme, setScreenMode } = theming ?? FALLBACK_VALUES; return react.useMemo(() => ({ theme, screenMode, /** * @deprecated there is no more such thing as "modern" theme */ isModern: helpers.isThemeModern(), isForestGreenTheme: helpers.isForestGreenTheme(theme), isScreenModeDark: helpers.isScreenModeDark(theme, screenMode), className: helpers.getThemeClassName(theme, screenMode), setTheme, setScreenMode }), [theme, screenMode, setTheme, setScreenMode]); }; exports.useTheme = useTheme; //# sourceMappingURL=useTheme.js.map