diff --git a/src/generate.tsx b/src/generate.tsx index be4c9d420..febcd5905 100644 --- a/src/generate.tsx +++ b/src/generate.tsx @@ -429,7 +429,10 @@ export default function generateSelector< optionFilterProp, filterOption: mode === 'combobox' && filterOption === undefined ? () => true : filterOption, }); - if (mode === 'tags' && filteredOptions.every(opt => opt.value !== mergedSearchValue)) { + if ( + mode === 'tags' && + filteredOptions.every(opt => opt[optionFilterProp] !== mergedSearchValue) + ) { filteredOptions.unshift({ value: mergedSearchValue, label: mergedSearchValue, diff --git a/tests/Tags.test.tsx b/tests/Tags.test.tsx index 0e9321534..8c2a8186d 100644 --- a/tests/Tags.test.tsx +++ b/tests/Tags.test.tsx @@ -224,6 +224,21 @@ describe('Select.Tags', () => { ]); }); + it('renders options matched with optionFilterProp', () => { + const wrapper = mount( + , + ); + + expect(wrapper.find('List').props().data).toEqual([ + expect.objectContaining({ + data: expect.objectContaining({ value: '1' }), + }), + ]); + }); + it('use filterOption', () => { const filterOption = (inputValue, option) => option.value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1;