@@ -11,12 +11,11 @@ import {
11
11
onBeforeUnmount ,
12
12
onMounted ,
13
13
ref ,
14
- shallowRef ,
15
14
Transition ,
16
15
watch ,
17
16
} from 'vue' ;
18
17
import { treeNodeProps } from './props' ;
19
- import { collapseMotion } from '../_util/transition ' ;
18
+ import collapseMotion from '../_util/collapseMotion ' ;
20
19
21
20
export default defineComponent ( {
22
21
name : 'MotionTreeNode' ,
@@ -36,20 +35,18 @@ export default defineComponent({
36
35
const visible = ref ( true ) ;
37
36
const context = useInjectTreeContext ( ) ;
38
37
const motionedRef = ref ( false ) ;
39
- const transitionClass = ref ( '' ) ;
40
- const transitionStyle = shallowRef ( { } ) ;
41
38
const transitionProps = computed ( ( ) => {
42
39
if ( props . motion ) {
43
40
return props . motion ;
44
41
} else {
45
- return collapseMotion ( undefined , transitionStyle , transitionClass ) ;
42
+ return collapseMotion ( ) ;
46
43
}
47
44
} ) ;
48
- const onMotionEnd = ( type ?: 'appear' | 'leave' ) => {
45
+ const onMotionEnd = ( node ?: HTMLDivElement , type ?: 'appear' | 'leave' ) => {
49
46
if ( type === 'appear' ) {
50
- transitionProps . value ?. onAfterAppear ?.( ) ;
47
+ transitionProps . value ?. onAfterEnter ?.( node ) ;
51
48
} else if ( type === 'leave' ) {
52
- transitionProps . value ?. onAfterLeave ?.( ) ;
49
+ transitionProps . value ?. onAfterLeave ?.( node ) ;
53
50
}
54
51
if ( ! motionedRef . value ) {
55
52
props . onMotionEnd ( ) ;
@@ -83,14 +80,10 @@ export default defineComponent({
83
80
< Transition
84
81
{ ...transitionProps . value }
85
82
appear = { motionType === 'show' }
86
- onAfterAppear = { ( ) => onMotionEnd ( 'appear' ) }
87
- onAfterLeave = { ( ) => onMotionEnd ( 'leave' ) }
83
+ onAfterAppear = { ( node : HTMLDivElement ) => onMotionEnd ( node , 'appear' ) }
84
+ onAfterLeave = { ( node : HTMLDivElement ) => onMotionEnd ( node , 'leave' ) }
88
85
>
89
- < div
90
- v-show = { visible . value }
91
- class = { [ `${ context . value . prefixCls } -treenode-motion` , transitionClass . value ] }
92
- style = { transitionStyle . value }
93
- >
86
+ < div v-show = { visible . value } class = { `${ context . value . prefixCls } -treenode-motion` } >
94
87
{ motionNodes . map ( ( treeNode : FlattenNode ) => {
95
88
const {
96
89
data : { ...restProps } ,
0 commit comments