diff --git a/packages/components/theme/src/composables/useTokenRegister.ts b/packages/components/theme/src/composables/useTokenRegister.ts index e44096b62..c7329de2e 100644 --- a/packages/components/theme/src/composables/useTokenRegister.ts +++ b/packages/components/theme/src/composables/useTokenRegister.ts @@ -92,7 +92,7 @@ export function useTokenRegister( const getTokens = tokenGettersMap.get(key) as TokenGetter const transforms = tokenTransformsMap.get(key) const prefix = tokenPrefixMap.get(key) - const hashed = tokenHashedMap.get(key) + const hashed = tokenHashedMap.get(key) ?? mergedHashed.value if (!getTokens) { return @@ -106,7 +106,7 @@ export function useTokenRegister( const mergedCompTokens = getMergedTokens(key, tokens) - const hashId = existedHashId ?? createTokensHash(key, mergedCompTokens as Record) + const hashId = existedHashId ?? createTokensHash(key, mergedCompTokens as Record, hashed) if (record?.hashId === hashId) { return hashId @@ -125,7 +125,7 @@ export function useTokenRegister( // if hashId is already provided, we consider the style injected already, no need to inject it again if (injectThemeStyle.value && !existedHashId) { const cssContent = tokenToCss( - { ...record, hashId: (hashed ?? mergedHashed.value) ? record.hashId : '' } as TokenRecord, + { ...record, hashId: hashed ? record.hashId : '' } as TokenRecord, prefix, transforms, ) diff --git a/packages/components/theme/src/utils/createTokensHash.ts b/packages/components/theme/src/utils/createTokensHash.ts index 1f0ac3ab1..8562ca8d1 100644 --- a/packages/components/theme/src/utils/createTokensHash.ts +++ b/packages/components/theme/src/utils/createTokensHash.ts @@ -9,8 +9,10 @@ import hash from '@emotion/hash' import { themeTokenPrefix } from '../types' +const unhasedHashSalt = '__unhashed__' + const sequenceCache = new Map() -export function createTokensHash(key: string, tokens: Record): string { +export function createTokensHash(key: string, tokens: Record, hashed = true): string { let sequence = sequenceCache.get(key) if (!sequence) { @@ -18,7 +20,13 @@ export function createTokensHash(key: string, tokens: Record, sequence: string[]): string {