diff --git a/src/SelectInput/index.tsx b/src/SelectInput/index.tsx index 70f0d349..13274c63 100644 --- a/src/SelectInput/index.tsx +++ b/src/SelectInput/index.tsx @@ -200,8 +200,8 @@ export default React.forwardRef(function Selec if (!shouldPreventClose) { toggleOpen(); } - } else if (triggerOpen) { - // Lazy should also close when click clear icon + } else if (triggerOpen && !multiple) { + // Lazy should also close when click clear icon in single select. toggleOpen(false); } } diff --git a/tests/Multiple.test.tsx b/tests/Multiple.test.tsx index e1da7151..e234ae83 100644 --- a/tests/Multiple.test.tsx +++ b/tests/Multiple.test.tsx @@ -108,6 +108,27 @@ describe('Select.Multiple', () => { expect(container.querySelector('input').value).toBe(''); }); + it('keeps popup open when clearing values', () => { + const onPopupVisibleChange = jest.fn(); + const { container } = render( + , + ); + + fireEvent.mouseDown(container.querySelector('.rc-select-clear')); + + expectOpen(container, true); + expect(onPopupVisibleChange).not.toHaveBeenCalledWith(false); + }); + it('tokenize input when mode=tags and open=false', () => { const handleChange = jest.fn(); const handleSelect = jest.fn();