@@ -30,7 +30,6 @@ import {
30
30
INTERNAL_PROPS_MARK ,
31
31
SelectSource ,
32
32
CustomTagProps ,
33
- FlattenOptionMapType ,
34
33
} from './interface/generator' ;
35
34
import { OptionListProps , RefOptionListProps } from './OptionList' ;
36
35
import { toInnerValue , toOuterValues , removeLastEnabledValue , getUUID } from './utils/commonUtil' ;
@@ -41,7 +40,6 @@ import useLayoutEffect from './hooks/useLayoutEffect';
41
40
import { getSeparatedContent } from './utils/valueUtil' ;
42
41
import useSelectTriggerControl from './hooks/useSelectTriggerControl' ;
43
42
import useCacheDisplayValue from './hooks/useCacheDisplayValue' ;
44
- import useCacheOptions from './hooks/useCacheOptions' ;
45
43
46
44
const DEFAULT_OMIT_PROPS = [
47
45
'removeIcon' ,
@@ -184,17 +182,14 @@ export interface GenerateConfig<OptionsType extends object[]> {
184
182
/** Flatten nest options into raw option list */
185
183
flattenOptions : ( options : OptionsType , props : any ) => FlattenOptionsType < OptionsType > ;
186
184
/** Convert single raw value into { label, value } format. Will be called by each value */
187
- getLabeledValue : GetLabeledValue < FlattenOptionMapType < OptionsType [ number ] > > ;
185
+ getLabeledValue : GetLabeledValue < FlattenOptionsType < OptionsType > > ;
188
186
filterOptions : FilterOptions < OptionsType > ;
189
187
findValueOption : (
190
188
values : RawValueType [ ] ,
191
- optionMap : FlattenOptionMapType < OptionsType [ number ] > ,
189
+ options : FlattenOptionsType < OptionsType > ,
192
190
) => OptionsType ;
193
191
/** Check if a value is disabled */
194
- isValueDisabled : (
195
- value : RawValueType ,
196
- optionMap : FlattenOptionMapType < OptionsType [ number ] > ,
197
- ) => boolean ;
192
+ isValueDisabled : ( value : RawValueType , options : FlattenOptionsType < OptionsType > ) => boolean ;
198
193
warningProps ?: ( props : any ) => void ;
199
194
fillOptionsWithMissingValue ?: (
200
195
options : OptionsType ,
@@ -424,8 +419,6 @@ export default function generateSelector<
424
419
[ mergedOptions ] ,
425
420
) ;
426
421
427
- const optionMap = useCacheOptions ( mergedRawValue , mergedFlattenOptions ) ;
428
-
429
422
// Display options for OptionList
430
423
const displayOptions = React . useMemo < OptionsType > ( ( ) => {
431
424
if ( ! mergedSearchValue || ! mergedShowSearch ) {
@@ -462,15 +455,15 @@ export default function generateSelector<
462
455
( ) =>
463
456
mergedRawValue . map ( ( val : RawValueType ) => {
464
457
const displayValue = getLabeledValue ( val , {
465
- optionMap ,
458
+ options : mergedFlattenOptions ,
466
459
prevValue : baseValue ,
467
460
labelInValue : mergedLabelInValue ,
468
461
optionLabelProp : mergedOptionLabelProp ,
469
462
} ) ;
470
463
471
464
return {
472
465
...displayValue ,
473
- disabled : isValueDisabled ( val , optionMap ) ,
466
+ disabled : isValueDisabled ( val , mergedFlattenOptions ) ,
474
467
} ;
475
468
} ) ,
476
469
[ baseValue , mergedOptions ] ,
@@ -480,13 +473,13 @@ export default function generateSelector<
480
473
displayValues = useCacheDisplayValue ( displayValues ) ;
481
474
482
475
const triggerSelect = ( newValue : RawValueType , isSelect : boolean , source : SelectSource ) => {
483
- const outOption = findValueOption ( [ newValue ] , optionMap ) [ 0 ] ;
476
+ const outOption = findValueOption ( [ newValue ] , mergedFlattenOptions ) [ 0 ] ;
484
477
485
478
if ( ! internalProps . skipTriggerSelect ) {
486
479
// Skip trigger `onSelect` or `onDeselect` if configured
487
480
const selectValue = ( mergedLabelInValue
488
481
? getLabeledValue ( newValue , {
489
- optionMap ,
482
+ options : mergedFlattenOptions ,
490
483
prevValue : baseValue ,
491
484
labelInValue : mergedLabelInValue ,
492
485
optionLabelProp : mergedOptionLabelProp ,
@@ -515,21 +508,18 @@ export default function generateSelector<
515
508
return ;
516
509
}
517
510
518
- const outValues = toOuterValues < FlattenOptionMapType < OptionsType [ number ] > > (
519
- Array . from ( newRawValues ) ,
520
- {
521
- labelInValue : mergedLabelInValue ,
522
- optionMap,
523
- getLabeledValue,
524
- prevValue : baseValue ,
525
- optionLabelProp : mergedOptionLabelProp ,
526
- } ,
527
- ) ;
511
+ const outValues = toOuterValues < FlattenOptionsType < OptionsType > > ( Array . from ( newRawValues ) , {
512
+ labelInValue : mergedLabelInValue ,
513
+ options : mergedFlattenOptions ,
514
+ getLabeledValue,
515
+ prevValue : baseValue ,
516
+ optionLabelProp : mergedOptionLabelProp ,
517
+ } ) ;
528
518
529
519
const outValue : ValueType = ( isMultiple ? outValues : outValues [ 0 ] ) as ValueType ;
530
520
// Skip trigger if prev & current value is both empty
531
521
if ( onChange && ( mergedRawValue . length !== 0 || outValues . length !== 0 ) ) {
532
- const outOptions = findValueOption ( newRawValues , optionMap ) ;
522
+ const outOptions = findValueOption ( newRawValues , mergedFlattenOptions ) ;
533
523
534
524
onChange ( outValue , isMultiple ? outOptions : outOptions [ 0 ] ) ;
535
525
}
0 commit comments