Skip to content

Commit 23075d5

Browse files
author
Kim Seonghyeon
authored
Update Tags Mode to display options based on optionFilterProp (#527)
1 parent db58e68 commit 23075d5

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/generate.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,10 @@ export default function generateSelector<
434434
optionFilterProp,
435435
filterOption: mode === 'combobox' && filterOption === undefined ? () => true : filterOption,
436436
});
437-
if (mode === 'tags' && filteredOptions.every(opt => opt.value !== mergedSearchValue)) {
437+
if (
438+
mode === 'tags' &&
439+
filteredOptions.every(opt => opt[optionFilterProp] !== mergedSearchValue)
440+
) {
438441
filteredOptions.unshift({
439442
value: mergedSearchValue,
440443
label: mergedSearchValue,

tests/Tags.test.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,21 @@ describe('Select.Tags', () => {
224224
]);
225225
});
226226

227+
it('renders options matched with optionFilterProp', () => {
228+
const wrapper = mount(
229+
<Select open value="22" mode="tags" searchValue="option-1" optionFilterProp="children">
230+
<Option value="1">option-1</Option>
231+
<Option value="2">option-2</Option>
232+
</Select>,
233+
);
234+
235+
expect(wrapper.find('List').props().data).toEqual([
236+
expect.objectContaining({
237+
data: expect.objectContaining({ value: '1' }),
238+
}),
239+
]);
240+
});
241+
227242
it('use filterOption', () => {
228243
const filterOption = (inputValue, option) =>
229244
option.value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1;

0 commit comments

Comments
 (0)