fix: fix provide inject error

This commit is contained in:
zhuzhengjian
2023-03-17 17:24:49 +08:00
parent c0666f2553
commit 98071ea5f0
6 changed files with 104 additions and 18 deletions

View File

@ -48,7 +48,7 @@ import type { ComponentToken as ButtonComponentToken } from '../../button/style'
// import type { ComponentToken as TourComponentToken } from '../../tour/style'
// import type { ComponentToken as QRCodeComponentToken } from '../../qrcode/style'
// import type { ComponentToken as AppComponentToken } from '../../app/style'
// import type { ComponentToken as WaveToken } from '../../_util/wave/style'
import type { ComponentToken as WaveToken } from '../../_util/wave/style'
export interface ComponentTokenMap {
Affix?: {}
@ -115,5 +115,5 @@ export interface ComponentTokenMap {
// App?: AppComponentToken
//
// /** @private Internal TS definition. Do not use. */
// Wave?: WaveToken
Wave?: WaveToken
}

View File

@ -1,8 +1,7 @@
import type { CSSInterpolation, Theme } from '@antd-tiny-vue/cssinjs'
import { createTheme, useCacheToken, useStyleRegister } from '@antd-tiny-vue/cssinjs'
import { createInjectionState } from '@vueuse/core'
import type { ComputedRef, VNodeChild } from 'vue'
import { computed } from 'vue'
import { computed, inject, provide } from 'vue'
import version from '../version'
import type { AliasToken, GlobalToken, MapToken, OverrideToken, PresetColorKey, PresetColorType, SeedToken } from './interface'
import { PresetColors } from './interface'
@ -50,12 +49,14 @@ export interface DesignTokenConfig {
hashed?: string | boolean
}
const [useDesignTokenProvider, useDesignTokenInject] = createInjectionState((token: DesignTokenConfig) => {
return token
})
export const DesignTokenContext = Symbol('DesignTokenContext')
const useDesignTokenProvider = (token: DesignTokenConfig) => {
provide(DesignTokenContext, token)
}
export { useDesignTokenProvider }
export const useDesignTokenState = () => useDesignTokenInject() ?? defaultConfig
export const useDesignTokenState = () => inject(DesignTokenContext, defaultConfig)
// ================================== Hook ==================================
export function useToken(): [ComputedRef<Theme<SeedToken, MapToken>>, ComputedRef<GlobalToken>, ComputedRef<string>] {