import {
getCurrentInstance,
SetupContext,
- ComponentOptions,
ComponentInternalInstance
} from '../component'
import {
const BaseTransitionImpl = {
name: `BaseTransition`,
+
+ props: {
+ mode: String,
+ appear: Boolean,
+ persisted: Boolean,
+ // enter
+ onBeforeEnter: Function,
+ onEnter: Function,
+ onAfterEnter: Function,
+ onEnterCancelled: Function,
+ // leave
+ onBeforeLeave: Function,
+ onLeave: Function,
+ onAfterLeave: Function,
+ onLeaveCancelled: Function
+ },
+
setup(props: BaseTransitionProps, { slots }: SetupContext) {
const instance = getCurrentInstance()!
const state = useTransitionState()
}
}
-if (__DEV__) {
- ;(BaseTransitionImpl as ComponentOptions).props = {
- mode: String,
- appear: Boolean,
- persisted: Boolean,
- // enter
- onBeforeEnter: Function,
- onEnter: Function,
- onAfterEnter: Function,
- onEnterCancelled: Function,
- // leave
- onBeforeLeave: Function,
- onLeave: Function,
- onAfterLeave: Function,
- onLeaveCancelled: Function
- }
-}
-
// export the public type for h/tsx inference
// also to avoid inline import() in generated d.ts files
export const BaseTransition = (BaseTransitionImpl as any) as {
{ slots }
) => h(BaseTransition, resolveTransitionProps(props), slots)
-export const TransitionPropsValidators = {
+export const TransitionPropsValidators = (Transition.props = {
...(BaseTransition as any).props,
name: String,
type: String,
leaveFromClass: String,
leaveActiveClass: String,
leaveToClass: String
-}
-
-if (__DEV__) {
- Transition.props = TransitionPropsValidators
-}
+})
export function resolveTransitionProps({
name = 'v',
}
const TransitionGroupImpl = {
+ props: {
+ ...TransitionPropsValidators,
+ tag: String,
+ moveClass: String
+ },
+
setup(props: TransitionGroupProps, { slots }: SetupContext) {
const instance = getCurrentInstance()!
const state = useTransitionState()
}
}
+// remove mode props as TransitionGroup doesn't support it
+delete TransitionGroupImpl.props.mode
+
export const TransitionGroup = (TransitionGroupImpl as unknown) as {
new (): {
$props: TransitionGroupProps
}
}
-if (__DEV__) {
- const props = ((TransitionGroup as any).props = {
- ...TransitionPropsValidators,
- tag: String,
- moveClass: String
- })
- delete props.mode
-}
-
function callPendingCbs(c: VNode) {
const el = c.el as any
if (el._moveCb) {