const rawProps = toRaw(props)
const { mode } = rawProps
// check mode
- if (
- __DEV__ &&
- mode &&
- mode !== 'in-out' &&
- mode !== 'out-in' &&
- mode !== 'default'
- ) {
- warn(`invalid <transition> mode: ${mode}`)
- }
+ __DEV__ && checkTransitionMode(mode)
if (state.isLeaving) {
return emptyPlaceholder(child)
}
return ret
}
+
+/**
+ * dev-only
+ */
+export function checkTransitionMode(mode: string | undefined): void {
+ if (mode && mode !== 'in-out' && mode !== 'out-in' && mode !== 'default') {
+ warn(`invalid <transition> mode: ${mode}`)
+ }
+}
export {
BaseTransition,
BaseTransitionPropsValidators,
+ checkTransitionMode,
type BaseTransitionProps,
} from './components/BaseTransition'
// For using custom directives
export interface VaporTransitionHooks extends TransitionHooks {
state: TransitionState
props: TransitionProps
+ // mark transition hooks as disabled so that it skips during
+ // inserting
disabled?: boolean
}
TransitionPropsValidators,
type TransitionState,
baseResolveTransitionHooks,
+ checkTransitionMode,
currentInstance,
leaveCbKey,
resolveTransitionProps,
if (!children) return
const { mode } = props
- if (
- __DEV__ &&
- mode &&
- mode !== 'in-out' &&
- mode !== 'out-in' &&
- mode !== 'default'
- ) {
- warn(`invalid <transition> mode: ${mode}`)
- }
+ __DEV__ && checkTransitionMode(mode)
applyTransitionEnterHooks(children, {
state: useTransitionState(),
return hooks
}
-export function setTransitionHooks(
- block: TransitionBlock,
- hooks: VaporTransitionHooks,
-): void {
- block.$transition = hooks
-}
-
export function applyTransitionEnterHooks(
block: Block,
hooks: VaporTransitionHooks,
}
}
}
+
+export function setTransitionHooks(
+ block: TransitionBlock,
+ hooks: VaporTransitionHooks,
+): void {
+ block.$transition = hooks
+}
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(),
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(`<transition-group> children must be keyed`)
}
}