Skip to content

Commit 30bdebe

Browse files
committed
chore: multiple default search
1 parent 3f98735 commit 30bdebe

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

src/BaseSelect/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ const BaseSelect = React.forwardRef<BaseSelectRef, BaseSelectProps>((props, ref)
439439
);
440440

441441
const onInternalSearch = (searchText: string, fromTyping: boolean, isCompositing: boolean) => {
442+
console.log('is', searchText);
442443
if (multiple && isValidCount(maxCount) && displayValues.length >= maxCount) {
443444
return;
444445
}

src/Select.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,7 @@ const Select = React.forwardRef<BaseSelectRef, SelectProps<any, DefaultOptionTyp
611611
const onInternalSearch: BaseSelectProps['onSearch'] = (searchText, info) => {
612612
setSearchValue(searchText);
613613
setActiveValue(null);
614+
console.log('???', searchText);
614615

615616
// [Submit] Tag mode should flush input
616617
if (info.source === 'submit') {

src/hooks/useSearchConfig.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,14 @@ export default function useSearchConfig(
2727
...(isObject ? showSearch : {}),
2828
};
2929

30-
return [isObject || (!showSearch && mode === 'tags') ? true : showSearch, searchConfig];
30+
return [
31+
isObject ||
32+
(!showSearch && mode === 'tags') ||
33+
(mode === 'multiple' && showSearch === undefined)
34+
? true
35+
: showSearch,
36+
searchConfig,
37+
];
3138
}, [
3239
mode,
3340
showSearch,

tests/Multiple.test.tsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
keyUp,
2020
} from './utils/common';
2121
import allowClearTest from './shared/allowClearTest';
22-
import { fireEvent, render, screen } from '@testing-library/react';
22+
import { act, fireEvent, render, screen } from '@testing-library/react';
2323

2424
describe('Select.Multiple', () => {
2525
injectRunAllTimers(jest);
@@ -360,18 +360,18 @@ describe('Select.Multiple', () => {
360360
});
361361

362362
it('show arrow on multiple mode when explicitly set', () => {
363-
const renderDemo = (suffixIcon?: React.ReactNode) => (
364-
<Select mode="multiple" value={['']} suffixIcon={suffixIcon}>
363+
const renderDemo = (suffix?: React.ReactNode) => (
364+
<Select mode="multiple" value={['']} suffix={suffix}>
365365
<Option value={1}>1</Option>
366366
<Option value={2}>2</Option>
367367
</Select>
368368
);
369369
const { container, rerender } = render(renderDemo());
370370

371-
expect(container.querySelector('.rc-select-arrow')).toBeFalsy();
371+
expect(container.querySelector('.rc-select-suffix')).toBeFalsy();
372372

373373
rerender(renderDemo(<div>arrow</div>));
374-
expect(container.querySelector('.rc-select-arrow')).toBeTruthy();
374+
expect(container.querySelector('.rc-select-suffix')).toBeTruthy();
375375
});
376376

377377
it('show static prefix', () => {
@@ -402,6 +402,7 @@ describe('Select.Multiple', () => {
402402
keyDown(container.querySelector('input'), KeyCode.L);
403403
fireEvent.change(container.querySelector('input'), { target: { value: 'l' } });
404404

405+
console.log('clear');
405406
// Backspace
406407
keyDown(container.querySelector('input'), KeyCode.BACKSPACE);
407408
fireEvent.change(container.querySelector('input'), { target: { value: '' } });
@@ -411,7 +412,10 @@ describe('Select.Multiple', () => {
411412
keyDown(container.querySelector('input'), KeyCode.BACKSPACE);
412413
expect(onChange).not.toHaveBeenCalled();
413414

414-
jest.runAllTimers();
415+
console.log('after 200ms');
416+
act(() => {
417+
jest.runAllTimers();
418+
});
415419
keyDown(container.querySelector('input'), KeyCode.BACKSPACE);
416420
expect(onChange).toHaveBeenCalledWith([], expect.anything());
417421

0 commit comments

Comments
 (0)