| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
- import { removeCSS, updateCSS } from "rc-util/es/Dom/dynamicCSS";
- import { useContext } from 'react';
- import StyleContext, { ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from "../StyleContext";
- import { isClientSide, toStyleStr } from "../util";
- import { transformToken } from "../util/css-variables";
- import useGlobalCache from "./useGlobalCache";
- import { uniqueHash } from "./useStyleRegister";
- export var CSS_VAR_PREFIX = 'cssVar';
- var useCSSVarRegister = function useCSSVarRegister(config, fn) {
- var key = config.key,
- prefix = config.prefix,
- unitless = config.unitless,
- ignore = config.ignore,
- token = config.token,
- _config$scope = config.scope,
- scope = _config$scope === void 0 ? '' : _config$scope;
- var _useContext = useContext(StyleContext),
- instanceId = _useContext.cache.instanceId,
- container = _useContext.container;
- var tokenKey = token._tokenKey;
- var stylePath = [].concat(_toConsumableArray(config.path), [key, scope, tokenKey]);
- var cache = useGlobalCache(CSS_VAR_PREFIX, stylePath, function () {
- var originToken = fn();
- var _transformToken = transformToken(originToken, key, {
- prefix: prefix,
- unitless: unitless,
- ignore: ignore,
- scope: scope
- }),
- _transformToken2 = _slicedToArray(_transformToken, 2),
- mergedToken = _transformToken2[0],
- cssVarsStr = _transformToken2[1];
- var styleId = uniqueHash(stylePath, cssVarsStr);
- return [mergedToken, cssVarsStr, styleId, key];
- }, function (_ref) {
- var _ref2 = _slicedToArray(_ref, 3),
- styleId = _ref2[2];
- if (isClientSide) {
- removeCSS(styleId, {
- mark: ATTR_MARK,
- attachTo: container
- });
- }
- }, function (_ref3) {
- var _ref4 = _slicedToArray(_ref3, 3),
- cssVarsStr = _ref4[1],
- styleId = _ref4[2];
- if (!cssVarsStr) {
- return;
- }
- var style = updateCSS(cssVarsStr, styleId, {
- mark: ATTR_MARK,
- prepend: 'queue',
- attachTo: container,
- priority: -999
- });
- style[CSS_IN_JS_INSTANCE] = instanceId;
- // Used for `useCacheToken` to remove on batch when token removed
- style.setAttribute(ATTR_TOKEN, key);
- });
- return cache;
- };
- export var extract = function extract(cache, effectStyles, options) {
- var _cache = _slicedToArray(cache, 4),
- styleStr = _cache[1],
- styleId = _cache[2],
- cssVarKey = _cache[3];
- var _ref5 = options || {},
- plain = _ref5.plain;
- if (!styleStr) {
- return null;
- }
- var order = -999;
- // ====================== Style ======================
- // Used for rc-util
- var sharedAttrs = {
- 'data-rc-order': 'prependQueue',
- 'data-rc-priority': "".concat(order)
- };
- var styleText = toStyleStr(styleStr, cssVarKey, styleId, sharedAttrs, plain);
- return [order, styleId, styleText];
- };
- export default useCSSVarRegister;
|