From: daiwei Date: Wed, 12 Mar 2025 03:47:20 +0000 (+0800) Subject: chore: update X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e7300a0bbb3d080941a8bbf381d81f37853f2cdf;p=thirdparty%2Fvuejs%2Fcore.git chore: update --- diff --git a/packages/runtime-core/src/components/BaseTransition.ts b/packages/runtime-core/src/components/BaseTransition.ts index fde4214830..5c51fde1f4 100644 --- a/packages/runtime-core/src/components/BaseTransition.ts +++ b/packages/runtime-core/src/components/BaseTransition.ts @@ -168,15 +168,7 @@ const BaseTransitionImpl: ComponentOptions = { const rawProps = toRaw(props) const { mode } = rawProps // check mode - if ( - __DEV__ && - mode && - mode !== 'in-out' && - mode !== 'out-in' && - mode !== 'default' - ) { - warn(`invalid mode: ${mode}`) - } + __DEV__ && checkTransitionMode(mode) if (state.isLeaving) { return emptyPlaceholder(child) @@ -622,3 +614,12 @@ export function getTransitionRawChildren( } return ret } + +/** + * dev-only + */ +export function checkTransitionMode(mode: string | undefined): void { + if (mode && mode !== 'in-out' && mode !== 'out-in' && mode !== 'default') { + warn(`invalid mode: ${mode}`) + } +} diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index 596c31e588..4eddabcff2 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -118,6 +118,7 @@ export { KeepAlive, type KeepAliveProps } from './components/KeepAlive' export { BaseTransition, BaseTransitionPropsValidators, + checkTransitionMode, type BaseTransitionProps, } from './components/BaseTransition' // For using custom directives diff --git a/packages/runtime-vapor/src/block.ts b/packages/runtime-vapor/src/block.ts index 1c6a1e7265..cfe9d5abf5 100644 --- a/packages/runtime-vapor/src/block.ts +++ b/packages/runtime-vapor/src/block.ts @@ -28,6 +28,8 @@ export interface TransitionOptions { export interface VaporTransitionHooks extends TransitionHooks { state: TransitionState props: TransitionProps + // mark transition hooks as disabled so that it skips during + // inserting disabled?: boolean } diff --git a/packages/runtime-vapor/src/components/Transition.ts b/packages/runtime-vapor/src/components/Transition.ts index fbba29f3ba..384bac4227 100644 --- a/packages/runtime-vapor/src/components/Transition.ts +++ b/packages/runtime-vapor/src/components/Transition.ts @@ -8,6 +8,7 @@ import { TransitionPropsValidators, type TransitionState, baseResolveTransitionHooks, + checkTransitionMode, currentInstance, leaveCbKey, resolveTransitionProps, @@ -36,15 +37,7 @@ export const VaporTransition: FunctionalComponent = if (!children) return const { mode } = props - if ( - __DEV__ && - mode && - mode !== 'in-out' && - mode !== 'out-in' && - mode !== 'default' - ) { - warn(`invalid mode: ${mode}`) - } + __DEV__ && checkTransitionMode(mode) applyTransitionEnterHooks(children, { state: useTransitionState(), @@ -119,13 +112,6 @@ export function resolveTransitionHooks( return hooks } -export function setTransitionHooks( - block: TransitionBlock, - hooks: VaporTransitionHooks, -): void { - block.$transition = hooks -} - export function applyTransitionEnterHooks( block: Block, hooks: VaporTransitionHooks, @@ -268,3 +254,10 @@ export function setTransitionHooksToFragment( } } } + +export function setTransitionHooks( + block: TransitionBlock, + hooks: VaporTransitionHooks, +): void { + block.$transition = hooks +} diff --git a/packages/runtime-vapor/src/components/TransitionGroup.ts b/packages/runtime-vapor/src/components/TransitionGroup.ts index 19e2f6d8d8..a9c5c0dac2 100644 --- a/packages/runtime-vapor/src/components/TransitionGroup.ts +++ b/packages/runtime-vapor/src/components/TransitionGroup.ts @@ -66,11 +66,10 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({ const child = children[i] if (isValidTransitionBlock(child)) { prevChildren.push(child) - const hook = (child as TransitionBlock).$transition! // disabled transition during enter, so the children will be // inserted into the correct position immediately. this prevents // `recordPosition` from getting incorrect positions in `onUpdated` - hook.disabled = true + child.$transition!.disabled = true positionMap.set( child, getTransitionElement(child).getBoundingClientRect(), @@ -129,12 +128,12 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({ for (let i = 0; i < children.length; i++) { const child = children[i] if (isValidTransitionBlock(child)) { - if ((child as TransitionBlock).$key != null) { + if (child.$key != null) { setTransitionHooks( child, resolveTransitionHooks(child, cssTransitionProps, state, instance!), ) - } else if (__DEV__ && (child as TransitionBlock).$key == null) { + } else if (__DEV__ && child.$key == null) { warn(` children must be keyed`) } }