UNPKG

@alicloudfe/components

Version:

A react component library for aliyun

28 lines (27 loc) 1.08 kB
import { useLayoutEffect, useState } from 'react'; import ConfigProvider from '../config-provider'; var nextId = 0; export function useCssVar(cssVarName) { var _a = useState(''), v = _a[0], setV = _a[1]; var refElement = ConfigProvider.useRefElement(); useLayoutEffect(function () { var _a; check(); var checkArr = (window['__recheck_css_var'] = (_a = window['__recheck_css_var']) !== null && _a !== void 0 ? _a : []); while (checkArr[nextId]) { // 如果一个页面下有份此组件库(即有多个nextId指针),需要避免冲突 nextId++; } var id = nextId++; checkArr[id] = check; return function () { delete checkArr[id]; }; function check() { var _a, _b; var val = (_b = (_a = window.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(window, refElement).getPropertyValue(cssVarName)) !== null && _b !== void 0 ? _b : ''; setV(val); } }, [refElement, cssVarName]); return v; }