@@ -56,6 +56,7 @@ export interface Option<DerivativeToken, DesignToken> {
5656 * Transform token to css variables.
5757 */
5858 cssVar : {
59+ hashed ?: boolean ;
5960 /** Prefix for css variables */
6061 prefix ?: string ;
6162 /** Tokens that should not be appended with unit */
@@ -161,6 +162,7 @@ export default function useCacheToken<
161162 const {
162163 cache : { instanceId } ,
163164 container,
165+ hashPriority,
164166 } = useContext ( StyleContext ) ;
165167 const {
166168 salt = '' ,
@@ -176,7 +178,7 @@ export default function useCacheToken<
176178 const tokenStr = flattenToken ( mergedToken ) ;
177179 const overrideTokenStr = flattenToken ( override ) ;
178180
179- const cssVarStr = cssVar ? flattenToken ( cssVar ) : '' ;
181+ const cssVarStr = flattenToken ( cssVar ) ;
180182
181183 const cachedToken = useGlobalCache < TokenCacheValue < DerivativeToken > > (
182184 TOKEN_PREFIX ,
@@ -185,9 +187,15 @@ export default function useCacheToken<
185187 const mergedDerivativeToken = compute
186188 ? compute ( mergedToken , override , theme )
187189 : getComputedToken ( mergedToken , override , theme , formatToken ) ;
190+ const actualToken = { ...mergedDerivativeToken } ;
191+
192+ // Optimize for `useStyleRegister` performance
193+ const mergedSalt = `${ salt } _${ cssVar . prefix } ` ;
194+ const hashId = hash ( mergedSalt ) ;
195+ const hashCls = `${ hashPrefix } -${ hash ( mergedSalt ) } ` ;
196+ actualToken . _tokenKey = token2key ( actualToken , mergedSalt ) ;
188197
189198 // Replace token value with css variables
190- const actualToken = { ...mergedDerivativeToken } ;
191199 const [ tokenWithCssVar , cssVarsStr ] = transformToken (
192200 mergedDerivativeToken ,
193201 cssVar . key ,
@@ -196,19 +204,14 @@ export default function useCacheToken<
196204 ignore : cssVar . ignore ,
197205 unitless : cssVar . unitless ,
198206 preserve : cssVar . preserve ,
207+ hashPriority,
208+ hashCls : cssVar . hashed ? hashCls : undefined ,
199209 } ,
200210 ) as [ any , string ] ;
211+ tokenWithCssVar . _hashId = hashId ;
201212
202- // Optimize for `useStyleRegister` performance
203- const mergedSalt = `${ salt } _${ cssVar . prefix || '' } ` ;
204- actualToken . _tokenKey = token2key ( actualToken , mergedSalt ) ;
205-
206- const themeKey = cssVar . key ;
207- recordCleanToken ( themeKey ) ;
208-
209- const hashId = `${ hashPrefix } -${ hash ( mergedSalt ) } ` ;
210-
211- return [ tokenWithCssVar , hashId , actualToken , cssVarsStr , cssVar . key ] ;
213+ recordCleanToken ( hashId ) ;
214+ return [ tokenWithCssVar , hashCls , actualToken , cssVarsStr , cssVar . key ] ;
212215 } ,
213216 ( [ , , , , themeKey ] ) => {
214217 // Remove token will remove all related style
0 commit comments