1
- import React , { useEffect , useState } from 'react' ;
1
+ import React , { useEffect , useRef , useState } from 'react' ;
2
2
import { IProps } from '@uiw/utils' ;
3
3
import Card from '@uiw/react-card' ;
4
4
import Icon from '@uiw/react-icon' ;
@@ -41,6 +41,7 @@ function Transfer(props: TransferProps) {
41
41
const [ searchValueLeft , searchValueLeftSet ] = useState ( '' ) ;
42
42
const [ searchValueRight , searchValueRightSet ] = useState ( '' ) ;
43
43
const [ selectedOptions , selectedOptionSet ] = useState < Array < TreeData > > ( options || [ ] ) ;
44
+ const selectedOptionsShowCount = useRef < number > ( 0 ) ;
44
45
const [ selectOption , selectOptionSet ] = useState < Map < string | number , string > > ( new Map ( ) ) ;
45
46
const [ leftSelectedKeys , leftSelectedKeySet ] = useState < Array < string | number | undefined > > ( [ ] ) ;
46
47
const [ rightSelectedKeys , rightSelectedKeySet ] = useState < Array < string | number | undefined > > ( [ ] ) ;
@@ -56,6 +57,7 @@ function Transfer(props: TransferProps) {
56
57
} , [ JSON . stringify ( value ) ] ) ;
57
58
58
59
const hiddenNode = ( callBackfn : ( child : TreeData ) => boolean ) => {
60
+ selectedOptionsShowCount . current = 0 ;
59
61
const hiddenNodeForSeach = ( childrens : TreeData [ ] ) => {
60
62
childrens . forEach ( ( child : TreeData ) => {
61
63
const isHide = callBackfn ( child ) ; // && parentIsHide;
@@ -65,6 +67,9 @@ function Transfer(props: TransferProps) {
65
67
child . hideNode = isHide && ! find ;
66
68
} else {
67
69
child . hideNode = isHide ;
70
+ if ( ! child . hideNode ) {
71
+ selectedOptionsShowCount . current ++ ;
72
+ }
68
73
}
69
74
} ) ;
70
75
} ;
@@ -83,12 +88,7 @@ function Transfer(props: TransferProps) {
83
88
selectOptionSet ( selectOptionTemp ) ;
84
89
} ;
85
90
86
- const rightTreeOnSelected = (
87
- selectedKeys : Array < string | number | undefined > ,
88
- _1 : any ,
89
- _2 : boolean ,
90
- evn : TreeData ,
91
- ) => {
91
+ const rightTreeOnSelected = ( selectedKeys : Array < string | number | undefined > ) => {
92
92
rightSelectedKeySet ( selectedKeys ) ;
93
93
selectedKeys . forEach ( ( key ) => {
94
94
selectOption . delete ( key ! ) ;
@@ -105,7 +105,6 @@ function Transfer(props: TransferProps) {
105
105
}
106
106
} ;
107
107
const iteratorParent = ( child : TreeData ) => {
108
- // 向上迭代
109
108
if ( child . parent ) {
110
109
const selectCount = child . parent . children . filter ( ( child : TreeData ) => ! selectOption . get ( child . key ! ) ) . length ;
111
110
addOrDel ( child . parent . key , child . parent . label , selectCount === 0 ) ;
@@ -161,7 +160,7 @@ function Transfer(props: TransferProps) {
161
160
< div className = { cls } style = { { width : 400 , ...style } } >
162
161
< Card
163
162
bodyStyle = { { padding : 5 } }
164
- title = { `${ leftSelectedKeys . length } /${ selectedOptions . length } ` }
163
+ title = { `${ leftSelectedKeys . length } /${ selectedOptionsShowCount . current } ` }
165
164
className = { `${ prefixCls } -card` }
166
165
>
167
166
{ showSearch && (
0 commit comments