Skip to content

Commit b103b75

Browse files
authored
fix: dealing with switching topics modal, notification, message does not take effect close #6512 (#6518)
* fix: resolve dark mode not support * fix: unified expression
1 parent 61d6312 commit b103b75

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

components/theme/internal.ts

+11-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import statisticToken, { merge as mergeToken, statistic } from './util/statistic
2121
import type { VueNode } from '../_util/type';
2222
import { objectType } from '../_util/type';
2323
import type { ComputedRef, InjectionKey, Ref } from 'vue';
24-
import { defineComponent, provide, computed, inject } from 'vue';
24+
import { defineComponent, provide, computed, inject, watchEffect, ref } from 'vue';
2525
import { toReactive } from '../_util/toReactive';
2626

2727
const defaultTheme = createTheme(defaultDerivative);
@@ -63,12 +63,17 @@ export interface DesignTokenContext {
6363
//defaultConfig
6464
const DesignTokenContextKey: InjectionKey<DesignTokenContext> = Symbol('DesignTokenContext');
6565

66+
export const globalDesignTokenApi = ref<DesignTokenContext>();
67+
6668
export const useDesignTokenProvider = (value: DesignTokenContext) => {
6769
provide(DesignTokenContextKey, value);
70+
watchEffect(() => {
71+
globalDesignTokenApi.value = value;
72+
});
6873
};
6974

7075
export const useDesignTokenInject = () => {
71-
return inject(DesignTokenContextKey, defaultConfig);
76+
return inject(DesignTokenContextKey, globalDesignTokenApi.value || defaultConfig);
7277
};
7378
export const DesignTokenProvider = defineComponent({
7479
props: {
@@ -87,7 +92,10 @@ export function useToken(): [
8792
ComputedRef<GlobalToken>,
8893
ComputedRef<string>,
8994
] {
90-
const designTokenContext = inject(DesignTokenContextKey, defaultConfig);
95+
const designTokenContext = inject<DesignTokenContext>(
96+
DesignTokenContextKey,
97+
globalDesignTokenApi.value || defaultConfig,
98+
);
9199

92100
const salt = computed(() => `${version}-${designTokenContext.hashed || ''}`);
93101

0 commit comments

Comments
 (0)