Skip to content

Commit 0a18a4f

Browse files
committed
chore: multiple
1 parent 484c523 commit 0a18a4f

4 files changed

Lines changed: 11 additions & 6 deletions

File tree

docs/examples/multiple-with-maxCount.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const Test: React.FC = () => {
1414
<>
1515
<h2>Multiple with maxCount</h2>
1616
<Select
17+
showSearch
1718
maxCount={4}
1819
mode="multiple"
1920
value={value}

src/BaseSelect/index.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import TransBtn from '../TransBtn';
3131
import { getSeparatedContent, isValidCount } from '../utils/valueUtil';
3232
import Polite from './Polite';
3333
import useOpen from '../hooks/useOpen';
34+
import { useEvent } from '@rc-component/util';
3435
export type BaseSelectSemanticName = 'prefix' | 'suffix' | 'input';
3536

3637
/**
@@ -596,14 +597,14 @@ const BaseSelect = React.forwardRef<BaseSelectRef, BaseSelectProps>((props, ref)
596597
// };
597598

598599
// ============================ Selector ============================
599-
const onSelectorRemove = (val: DisplayValueType) => {
600+
const onSelectorRemove = useEvent((val: DisplayValueType) => {
600601
const newValues = displayValues.filter((i) => i !== val);
601602

602603
onDisplayValuesChange(newValues, {
603604
type: 'remove',
604605
values: [val],
605606
});
606-
};
607+
});
607608

608609
const onInputBlur = () => {
609610
// Unlock the Enter key after the input blur; otherwise, the Enter key needs to be pressed twice to trigger the correct effect.
@@ -937,6 +938,7 @@ const BaseSelect = React.forwardRef<BaseSelectRef, BaseSelectProps>((props, ref)
937938
onBlur={onInternalBlur}
938939
onClearMouseDown={onClearMouseDown}
939940
onKeyDown={onInternalKeyDown}
941+
onSelectorRemove={onSelectorRemove}
940942
// Open
941943
onMouseDown={onInternalMouseDown}
942944
/>

src/SelectInput/Content/MultipleContent.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export default React.forwardRef<HTMLInputElement, SharedContentProps>(function M
2525
{ inputProps },
2626
ref,
2727
) {
28-
const { prefixCls, displayValues, searchValue } = useSelectInputContext();
28+
const { prefixCls, displayValues, searchValue, onSelectorRemove } = useSelectInputContext();
2929
const baseProps = useBaseProps();
3030
const { disabled, showSearch, open, toggleOpen } = baseProps;
3131

@@ -56,8 +56,7 @@ export default React.forwardRef<HTMLInputElement, SharedContentProps>(function M
5656
};
5757

5858
const onRemove = (value: DisplayValueType) => {
59-
// TODO: This should be connected to parent's remove logic
60-
console.log('Remove:', value);
59+
onSelectorRemove?.(value);
6160
};
6261

6362
// ======================== Item ========================
@@ -135,7 +134,7 @@ export default React.forwardRef<HTMLInputElement, SharedContentProps>(function M
135134
disabled={disabled}
136135
readOnly={!inputEditable}
137136
{...inputProps}
138-
value={String(inputValue || '')}
137+
value={inputValue || ''}
139138
/>
140139

141140
{/* Measure Node */}

src/SelectInput/index.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export interface SelectInputProps extends Omit<React.HTMLAttributes<HTMLDivEleme
2626
onInputBlur?: () => void;
2727
onClearMouseDown?: React.MouseEventHandler<HTMLElement>;
2828
onInputKeyDown?: React.KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement>;
29+
onSelectorRemove?: (value: DisplayValueType) => void;
2930
maxLength?: number;
3031
autoFocus?: boolean;
3132
// Add other props that need to be passed through
@@ -51,6 +52,7 @@ const DEFAULT_OMIT_PROPS = [
5152
'onPopupScroll',
5253
'tabIndex',
5354
'activeValue',
55+
'onSelectorRemove',
5456
] as const;
5557

5658
export default React.forwardRef<SelectInputRef, SelectInputProps>(function SelectInput(
@@ -89,6 +91,7 @@ export default React.forwardRef<SelectInputRef, SelectInputProps>(function Selec
8991
onBlur,
9092
onClearMouseDown,
9193
onInputKeyDown,
94+
onSelectorRemove,
9295

9396
...restProps
9497
} = props;

0 commit comments

Comments
 (0)