@@ -46,7 +46,7 @@ export interface MultiSelectProps
4646 isRequired ?: boolean
4747 classNameDropdown ?: string
4848 styleDropdown ?: StyleObject
49- onChangeSelect ?: ( option : IMultiSelectOption ) => void
49+ onChangeSelect ?: ( option : IMultiSelectOption [ ] ) => void
5050 isDisabled ?: boolean
5151 buttonSubmit : {
5252 label : string
@@ -108,7 +108,7 @@ function MultiSelect({
108108 updatedSelected = [ ...selectedOptions , option ]
109109 }
110110 setSelectedOptions ( updatedSelected )
111- onChangeSelect ?.( option )
111+ onChangeSelect ?.( updatedSelected )
112112 }
113113
114114 const allSelected = useMemo (
@@ -125,10 +125,6 @@ function MultiSelect({
125125 : setSelectedOptions ( options . filter ( ( opt ) => ! opt . disabled ) )
126126 } , [ allSelected , options , setSelectedOptions ] )
127127
128- const handleClear = useCallback ( ( ) => {
129- setSelectedOptions ( [ ] )
130- } , [ setSelectedOptions ] )
131-
132128 const onSubmit = useCallback ( ( ) => {
133129 buttonSubmit ?. onClick ( )
134130 setIsOpen ( false )
@@ -188,7 +184,14 @@ function MultiSelect({
188184 </ Flex >
189185 </ div >
190186 { selectedOptions . length > 0 && ! allSelected ? (
191- < XIcon onClick = { handleClear } className = "text-gray-400" width = { 30 } />
187+ < XIcon
188+ onClick = { ( ) => {
189+ setSelectedOptions ( optionsList . filter ( ( opt ) => ! opt . disabled ) )
190+ buttonClear . onClick ( )
191+ } }
192+ className = "text-gray-400"
193+ width = { 30 }
194+ />
192195 ) : (
193196 < Transition
194197 alwaysRender
@@ -212,9 +215,11 @@ function MultiSelect({
212215 submitText = { buttonSubmit . label }
213216 clearText = { buttonClear . label }
214217 onSubmit = { onSubmit }
215- onClear = { buttonClear . onClick }
218+ onClear = { ( ) =>
219+ setSelectedOptions ( optionsList . filter ( ( opt ) => ! opt . disabled ) )
220+ }
216221 >
217- < div className = "max-h-44 overflow-auto text-sm" >
222+ < div className = "overflow-auto text-sm" >
218223 < ul >
219224 < li className = "flex items-center my-1 border-b pb-1 sticky top-0 bg-white" >
220225 < input
0 commit comments