From 87c7cb73745aafbfb43ecb97f48b34a6692a31ac Mon Sep 17 00:00:00 2001 From: Seonghyeon Kim Date: Mon, 3 Aug 2020 15:18:46 +0900 Subject: [PATCH] Update Tags Mode to display options based on optionFilterProp --- src/generate.tsx | 5 ++++- tests/Tags.test.tsx | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) 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;