Skip to content

Commit 7bc20b5

Browse files
Merge pull request #328 from dd3tech/fix/multi-select
Fix: Styles were changed and the clear function was modified.
2 parents cdb28a9 + 7fe2b47 commit 7bc20b5

2 files changed

Lines changed: 14 additions & 18 deletions

File tree

src/components/Form/MultiSelect.test.tsx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,6 @@ describe('<MultiSelect />', () => {
9797
expect(defaultProps.buttonSubmit.onClick).toHaveBeenCalled()
9898
})
9999

100-
it('should call buttonClear.onClick when Clear button is clicked', () => {
101-
const { getByTestId, getByText } = render(<MultiSelect {...defaultProps} />)
102-
103-
fireEvent.click(getByTestId('select-container'))
104-
fireEvent.click(getByText('Clear'))
105-
106-
expect(defaultProps.buttonClear.onClick).toHaveBeenCalled()
107-
})
108-
109100
it('should close dropdown when clicking outside', () => {
110101
const { getByTestId, queryByTestId } = render(
111102
<div>

src/components/Form/MultiSelect.tsx

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)