UNPKG

@ozen-ui/kit

Version:

React component library

40 lines (39 loc) 1.55 kB
import { __assign, __read, __values } from "tslib"; import { useMemo } from 'react'; import { useTheme, cnThemeProvider, themeHelper, } from '../../components/ThemeProvider'; var lastThemeTokens; var res; /** * @deprecated Хук устарел. Для замены используйте {@link useThemeVariables} */ export function useThemeVars() { var themeTokens = (useTheme() || {}).tokens; return useMemo(function () { var e_1, _a, _b; if (lastThemeTokens === themeTokens) { return res; } lastThemeTokens = themeTokens; var el = document.createElement('div'); el.className = cnThemeProvider(themeTokens); document.body.appendChild(el); try { for (var _c = __values(Object.entries(themeHelper)), _d = _c.next(); !_d.done; _d = _c.next()) { var _e = __read(_d.value, 2), key = _e[0], value = _e[1]; res = __assign(__assign({}, res), (_b = {}, _b[key] = value.reduce(function (acc, value) { var _a; return (__assign(__assign({}, acc), (_a = {}, _a[value] = window.getComputedStyle(el).getPropertyValue(value).trim(), _a))); }, {}), _b)); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_d && !_d.done && (_a = _c.return)) _a.call(_c); } finally { if (e_1) throw e_1.error; } } el.remove(); return res; }, [themeTokens]); }