@@ -229,6 +229,7 @@ const Transfer = <RecordType extends TransferItem = TransferItem>(
229229 const [ hashId , cssVarCls ] = useStyle ( prefixCls ) ;
230230
231231 const mergedActions = actions || operations || [ ] ;
232+ const isRtl = dir === 'rtl' ;
232233
233234 // Fill record with `key`
234235 const [ mergedDataSource , leftDataSource , rightDataSource ] = useData (
@@ -334,7 +335,7 @@ const Transfer = <RecordType extends TransferItem = TransferItem>(
334335
335336 const onItemSelectAll = (
336337 direction : TransferDirection ,
337- keys : string [ ] ,
338+ keys : TransferKey [ ] ,
338339 checkAll : boolean | 'replace' ,
339340 ) => {
340341 setStateKeys ( direction , ( prevKeys ) => {
@@ -355,13 +356,15 @@ const Transfer = <RecordType extends TransferItem = TransferItem>(
355356 setPrevSelectedIndex ( direction , null ) ;
356357 } ;
357358
358- const onLeftItemSelectAll = ( keys : string [ ] , checkAll : boolean ) => {
359- onItemSelectAll ( 'left' , keys , checkAll ) ;
360- } ;
359+ const onLeftItemSelectAll : TransferListProps < KeyWise < RecordType > > [ 'onItemSelectAll' ] = (
360+ keys ,
361+ checkAll ,
362+ ) => onItemSelectAll ( 'left' , keys , checkAll ) ;
361363
362- const onRightItemSelectAll = ( keys : string [ ] , checkAll : boolean ) => {
363- onItemSelectAll ( 'right' , keys , checkAll ) ;
364- } ;
364+ const onRightItemSelectAll : TransferListProps < KeyWise < RecordType > > [ 'onItemSelectAll' ] = (
365+ keys ,
366+ checkAll ,
367+ ) => onItemSelectAll ( 'right' , keys , checkAll ) ;
365368
366369 const leftFilter = ( e : ChangeEvent < HTMLInputElement > ) => onSearch ?.( 'left' , e . target . value ) ;
367370
@@ -407,15 +410,15 @@ const Transfer = <RecordType extends TransferItem = TransferItem>(
407410 multiple ?: boolean ,
408411 ) => {
409412 const isLeftDirection = direction === 'left' ;
410- const holder = [ ... ( isLeftDirection ? sourceSelectedKeys : targetSelectedKeys ) ] ;
413+ const holder = isLeftDirection ? sourceSelectedKeys : targetSelectedKeys ;
411414 const holderSet = new Set ( holder ) ;
412- const data = [ ... ( isLeftDirection ? leftDataSource : rightDataSource ) ] . filter (
413- ( item ) => ! item ? .disabled ,
415+ const data : KeyWise < RecordType > [ ] = ( isLeftDirection ? leftDataSource : rightDataSource ) . filter (
416+ ( item ) : item is KeyWise < RecordType > => ! item . disabled ,
414417 ) ;
415418 const currentSelectedIndex = data . findIndex ( ( item ) => item . key === selectedKey ) ;
416419 // multiple select by hold down the shift key
417420 if ( multiple && holder . length > 0 ) {
418- handleMultipleSelect ( direction , data as any , holderSet , currentSelectedIndex ) ;
421+ handleMultipleSelect ( direction , data , holderSet , currentSelectedIndex ) ;
419422 } else {
420423 handleSingleSelect ( direction , holderSet , selectedKey , checked , currentSelectedIndex ) ;
421424 }
@@ -434,13 +437,11 @@ const Transfer = <RecordType extends TransferItem = TransferItem>(
434437 onItemSelect ( 'left' , selectedKey , checked , e ?. shiftKey ) ;
435438 } ;
436439
437- const onRightItemSelect = (
438- selectedKey : TransferKey ,
439- checked : boolean ,
440- e ?: React . MouseEvent < Element , MouseEvent > ,
441- ) => {
442- onItemSelect ( 'right' , selectedKey , checked , e ?. shiftKey ) ;
443- } ;
440+ const onRightItemSelect : TransferListProps < KeyWise < RecordType > > [ 'onItemSelect' ] = (
441+ selectedKey ,
442+ checked ,
443+ e ,
444+ ) => onItemSelect ( 'right' , selectedKey , checked , e ?. shiftKey ) ;
444445
445446 const onRightItemRemove = ( keys : TransferKey [ ] ) => {
446447 setStateKeys ( 'right' , [ ] ) ;
@@ -493,7 +494,7 @@ const Transfer = <RecordType extends TransferItem = TransferItem>(
493494 {
494495 [ `${ prefixCls } -disabled` ] : mergedDisabled ,
495496 [ `${ prefixCls } -customize-list` ] : ! ! children ,
496- [ `${ prefixCls } -rtl` ] : dir === 'rtl' ,
497+ [ `${ prefixCls } -rtl` ] : isRtl ,
497498 } ,
498499 getStatusClassNames ( prefixCls , mergedStatus , hasFeedback ) ,
499500 contextClassName ,
@@ -543,14 +544,14 @@ const Transfer = <RecordType extends TransferItem = TransferItem>(
543544 handleFilter = { leftFilter }
544545 handleClear = { handleLeftClear }
545546 onItemSelect = { onLeftItemSelect }
546- onItemSelectAll = { onLeftItemSelectAll as any }
547+ onItemSelectAll = { onLeftItemSelectAll }
547548 render = { render }
548549 showSearch = { showSearch }
549550 renderList = { children as any }
550551 footer = { footer as any }
551552 onScroll = { handleLeftScroll }
552553 disabled = { mergedDisabled }
553- direction = { dir === 'rtl' ? 'right' : 'left' }
554+ direction = { isRtl ? 'right' : 'left' }
554555 showSelectAll = { showSelectAll }
555556 selectAllLabel = { selectAllLabels [ 0 ] }
556557 pagination = { mergedPagination }
@@ -584,15 +585,15 @@ const Transfer = <RecordType extends TransferItem = TransferItem>(
584585 handleFilter = { rightFilter }
585586 handleClear = { handleRightClear }
586587 onItemSelect = { onRightItemSelect }
587- onItemSelectAll = { onRightItemSelectAll as any }
588+ onItemSelectAll = { onRightItemSelectAll }
588589 onItemRemove = { onRightItemRemove }
589590 render = { render }
590591 showSearch = { showSearch }
591592 renderList = { children as any }
592593 footer = { footer as any }
593594 onScroll = { handleRightScroll }
594595 disabled = { mergedDisabled }
595- direction = { dir === 'rtl' ? 'left' : 'right' }
596+ direction = { isRtl ? 'left' : 'right' }
596597 showSelectAll = { showSelectAll }
597598 selectAllLabel = { selectAllLabels [ 1 ] }
598599 showRemove = { oneWay }
0 commit comments