11import type { Dispatch , SetStateAction } from 'react' ;
2- import { useState } from 'react' ;
2+ import { useState , forwardRef } from 'react' ;
33
44import type { IconProps } from '../Icon' ;
55
@@ -14,31 +14,40 @@ export type MultiSelectFilteredProps = MultiSelectProps & {
1414 addonIcon ?: IconProps [ 'name' ] ;
1515} ;
1616
17- const MultiSelectFiltered = ( {
18- options,
19- placeholder,
20- filter : propFilter ,
21- setFilter : propSetFilter ,
22- ...props
23- } : MultiSelectFilteredProps ) => {
24- const [ filter , setFilter ] = useState ( '' ) ;
17+ const MultiSelectFiltered = forwardRef <
18+ HTMLInputElement ,
19+ MultiSelectFilteredProps
20+ > (
21+ (
22+ {
23+ options,
24+ placeholder,
25+ filter : propFilter ,
26+ setFilter : propSetFilter ,
27+ ...props
28+ } ,
29+ ref ,
30+ ) => {
31+ const [ filter , setFilter ] = useState ( '' ) ;
2532
26- return (
27- < MultiSelect
28- { ...props }
29- filter = { propFilter || filter }
30- setFilter = { propSetFilter || setFilter }
31- options = { options }
32- anchor = { ( params : MultiSelectAnchorParams ) => (
33- < MultiSelectFilteredAnchor
34- placeholder = { placeholder }
35- filter = { propFilter || filter }
36- onChangeFilter = { propSetFilter || setFilter }
37- { ...params }
38- />
39- ) }
40- />
41- ) ;
42- } ;
33+ return (
34+ < MultiSelect
35+ { ...props }
36+ ref = { ref }
37+ filter = { propFilter || filter }
38+ setFilter = { propSetFilter || setFilter }
39+ options = { options }
40+ anchor = { ( params : MultiSelectAnchorParams ) => (
41+ < MultiSelectFilteredAnchor
42+ placeholder = { placeholder }
43+ filter = { propFilter || filter }
44+ onChangeFilter = { propSetFilter || setFilter }
45+ { ...params }
46+ />
47+ ) }
48+ />
49+ ) ;
50+ } ,
51+ ) ;
4352
4453export default MultiSelectFiltered ;
0 commit comments