Skip to content

Commit 7c0e480

Browse files
committed
chore: multiple mode should auto display search input
1 parent 75ab268 commit 7c0e480

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"rc-animate": "^2.10.0",
4444
"rc-trigger": "^2.6.5",
4545
"rc-util": "^4.11.0",
46-
"rc-virtual-list": "^0.0.0-alpha.24",
46+
"rc-virtual-list": "^0.0.0-alpha.25",
4747
"warning": "^4.0.3"
4848
},
4949
"devDependencies": {

src/generate.tsx

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,10 @@ export default function generateSelector<
294294
// labelInValue
295295
const mergedLabelInValue = mode === 'combobox' ? false : labelInValue;
296296

297+
const isMultiple = mode === 'tags' || mode === 'multiple';
298+
297299
const mergedShowSearch =
298-
showSearch !== undefined ? showSearch : mode === 'tags' || mode === 'combobox';
300+
showSearch !== undefined ? showSearch : isMultiple || mode === 'combobox';
299301

300302
// ============================== Ref ===============================
301303
React.useImperativeHandle(ref, () => ({
@@ -403,8 +405,6 @@ export default function generateSelector<
403405
[baseValue, mergedOptions],
404406
);
405407

406-
const isMultiple = mode === 'tags' || mode === 'multiple';
407-
408408
const triggerSelect = (newValue: RawValueType, isSelect: boolean) => {
409409
const selectValue = (mergedLabelInValue
410410
? getLabeledValue(newValue, {
@@ -650,10 +650,15 @@ export default function generateSelector<
650650
return;
651651
}
652652

653-
// `tags` mode should move `searchValue` into values
654-
if (mode === 'tags' && mergedSearchValue) {
655-
triggerSearch('', false);
656-
triggerChange(Array.from(new Set([...mergedRawValue, mergedSearchValue])));
653+
if (mergedSearchValue) {
654+
// `tags` mode should move `searchValue` into values
655+
if (mode === 'tags') {
656+
triggerSearch('', false);
657+
triggerChange(Array.from(new Set([...mergedRawValue, mergedSearchValue])));
658+
} else if (mode === 'multiple') {
659+
// `multiple` mode only clean the search value but not trigger event
660+
setInnerSearchValue('');
661+
}
657662
}
658663

659664
if (onBlur) {

tests/__snapshots__/Multiple.test.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
exports[`Select.Multiple render truncates values by maxTagTextLength 1`] = `
44
<div
5-
class="rc-select rc-select-multiple"
5+
class="rc-select rc-select-multiple rc-select-show-search"
66
>
77
<div
88
class="rc-select-selector"

0 commit comments

Comments
 (0)