cs
This commit is contained in:
87
node_modules/@ant-design/cssinjs/es/hooks/useCSSVarRegister.js
generated
vendored
Normal file
87
node_modules/@ant-design/cssinjs/es/hooks/useCSSVarRegister.js
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user