diff --git a/docs/examples/tags.tsx b/docs/examples/tags.tsx index bfc62cbe..52dcf158 100644 --- a/docs/examples/tags.tsx +++ b/docs/examples/tags.tsx @@ -39,6 +39,7 @@ const Test: React.FC = () => { void; + + // >>> Blur + preventCommitOnBlur?: boolean } function isRawValue(value: DraftValueType): value is RawValueType { @@ -198,6 +201,9 @@ const Select = React.forwardRef( labelInValue, onChange, + // Blur + preventCommitOnBlur = false, + ...restProps } = props; @@ -536,6 +542,12 @@ const Select = React.forwardRef( setSearchValue(searchText); setActiveValue(null); + if(preventCommitOnBlur){ + triggerChange(''); + setSearchValue(''); + return + } + // [Submit] Tag mode should flush input if (info.source === 'submit') { const formatted = (searchText || '').trim(); @@ -546,7 +558,6 @@ const Select = React.forwardRef( triggerSelect(formatted, true); setSearchValue(''); } - return; } diff --git a/tests/Tags.test.tsx b/tests/Tags.test.tsx index f8bb05df..82050cab 100644 --- a/tests/Tags.test.tsx +++ b/tests/Tags.test.tsx @@ -63,6 +63,20 @@ describe('Select.Tags', () => { expect(onChange).toHaveBeenCalledWith(['foo'], [{}]); }); + it('should not call on blur when set attribute tagsModeCommitOnBlur equals false', () => { + const onChange = jest.fn(); + const wrapper = mount(