From 30a22ee684a748dda4ad440b6da22ebce28fe062 Mon Sep 17 00:00:00 2001 From: afc163 Date: Sun, 2 Apr 2017 17:24:05 +0800 Subject: [PATCH 1/2] Fix filterOption true bug close ant-design/ant-design#5600 --- src/FilterMixin.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/FilterMixin.js b/src/FilterMixin.js index 1ba314247..b009710d7 100644 --- a/src/FilterMixin.js +++ b/src/FilterMixin.js @@ -8,14 +8,15 @@ export default { if (!input) { return true; } - const filterOption = this.props.filterOption; + const { filterOption } = this.props; if (!filterOption) { return true; - } - if (child.props.disabled) { + } else if (child.props.disabled) { return false; + } else if (typeof filterOption === 'function') { + return filterOption.call(this, input, child); } - return filterOption.call(this, input, child); + return true; }, renderFilterOptions(inputValue) { return this.renderFilterOptionsFromChildren(this.props.children, true, inputValue); From 224180d554d82e9dd89b80fa298ee9292b1d4e42 Mon Sep 17 00:00:00 2001 From: afc163 Date: Sun, 2 Apr 2017 17:40:42 +0800 Subject: [PATCH 2/2] Add test case --- src/FilterMixin.js | 1 + tests/FilterMixin.spec.js | 11 ++++++++ tests/__snapshots__/FilterMixin.spec.js.snap | 28 ++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/src/FilterMixin.js b/src/FilterMixin.js index b009710d7..c143aa24e 100644 --- a/src/FilterMixin.js +++ b/src/FilterMixin.js @@ -18,6 +18,7 @@ export default { } return true; }, + renderFilterOptions(inputValue) { return this.renderFilterOptionsFromChildren(this.props.children, true, inputValue); }, diff --git a/tests/FilterMixin.spec.js b/tests/FilterMixin.spec.js index 775f0b97a..453338df2 100644 --- a/tests/FilterMixin.spec.js +++ b/tests/FilterMixin.spec.js @@ -106,6 +106,17 @@ describe('FilterMixin', () => { ); }); + it('filterOption could be true as described in default value', () => { + const wrapper = render( + + ); + + expect(renderToJson(wrapper)).toMatchSnapshot(); + }); + describe('tag mode', () => { it('renders unlisted item in value', () => { const wrapper = render( diff --git a/tests/__snapshots__/FilterMixin.spec.js.snap b/tests/__snapshots__/FilterMixin.spec.js.snap index c083769c6..b2d506f92 100644 --- a/tests/__snapshots__/FilterMixin.spec.js.snap +++ b/tests/__snapshots__/FilterMixin.spec.js.snap @@ -1,5 +1,33 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`FilterMixin renderFilterOptionsFromChildren filterOption could be true as described in default value 1`] = ` + +`; + exports[`FilterMixin renderFilterOptionsFromChildren filters children by inputValue 1`] = `