From 0ac224ccb2d9053f4c4889d5c0e0317dbfb5a0d9 Mon Sep 17 00:00:00 2001 From: saller Date: Fri, 26 Aug 2022 09:19:46 +0800 Subject: [PATCH] fix(cdk:utils): fix useControlledProp defaultValue behavior (#1090) --- packages/cdk/utils/src/composable.ts | 10 +++++----- packages/site/src/main.ts | 8 +++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/cdk/utils/src/composable.ts b/packages/cdk/utils/src/composable.ts index dcab1cbfa..d5e45e85f 100644 --- a/packages/cdk/utils/src/composable.ts +++ b/packages/cdk/utils/src/composable.ts @@ -63,22 +63,22 @@ export function useControlledProp(props: T, key: K): [Comp export function useControlledProp( props: T, key: K, - defaultOrFactory: T[K] | (() => T[K]), + defaultOrFactory: Exclude | (() => Exclude), ): [ComputedRef>, (value: Exclude) => void] export function useControlledProp( props: T, key: K, - defaultOrFactory?: T[K] | (() => T[K]), + defaultOrFactory?: Exclude | (() => Exclude), ): [ComputedRef, (value: T[K]) => void] { - const defaultValue = props[key] ?? (isFunction(defaultOrFactory) ? defaultOrFactory() : defaultOrFactory) - const tempProp = shallowRef(defaultValue) + const defaultValue = (isFunction(defaultOrFactory) ? defaultOrFactory() : defaultOrFactory)! + const tempProp = shallowRef(props[key]) watch( () => props[key], value => (tempProp.value = value), ) - const state = computed(() => props[key] ?? tempProp.value!) + const state = computed(() => props[key] ?? tempProp.value ?? defaultValue) const setState = (value: T[K]) => { if (value !== toRaw(state.value)) { diff --git a/packages/site/src/main.ts b/packages/site/src/main.ts index 158609354..bf5ceccb0 100644 --- a/packages/site/src/main.ts +++ b/packages/site/src/main.ts @@ -27,15 +27,17 @@ const router = createRouter({ }) // fix: vscode link policy -router.beforeEach(router => { - const redirectedFrom = router.redirectedFrom +router.beforeEach(route => { + const redirectedFrom = route.redirectedFrom if ( redirectedFrom && redirectedFrom.path.indexOf('%23') && - router.fullPath.replace('#', '%23') !== redirectedFrom.path + route.fullPath.replace('#', '%23') !== redirectedFrom.path ) { return redirectedFrom.fullPath.replace('%23', '#') } + + return }) createApp(App).use(router).use(IduxInstall).mount('#app')