Skip to content

Commit dadf040

Browse files
committed
chore: adjust some logic and clean code
1 parent b043141 commit dadf040

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

src/Select.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,6 @@ const Select = React.forwardRef<BaseSelectRef, SelectProps<any, DefaultOptionTyp
257257
return valueList.map((val) => {
258258
let rawValue: RawValueType;
259259
let rawLabel: React.ReactNode;
260-
let rawKey: React.Key;
261260
let rawDisabled: boolean | undefined;
262261
let rawTitle: string;
263262

@@ -266,15 +265,14 @@ const Select = React.forwardRef<BaseSelectRef, SelectProps<any, DefaultOptionTyp
266265
rawValue = val;
267266
} else {
268267
rawLabel = val.label;
269-
rawValue = val.value ?? (rawKey as RawValueType);
268+
rawValue = val.value;
270269
}
271270

272271
const option = valueOptions.get(rawValue);
273272
if (option) {
274273
// Fill missing props
275274
if (rawLabel === undefined)
276275
rawLabel = option?.[optionLabelProp || mergedFieldNames.label];
277-
if (rawKey === undefined) rawKey = option?.key ?? rawValue;
278276
rawDisabled = option?.disabled;
279277
rawTitle = option?.title;
280278

@@ -295,7 +293,7 @@ const Select = React.forwardRef<BaseSelectRef, SelectProps<any, DefaultOptionTyp
295293
return {
296294
label: rawLabel,
297295
value: rawValue,
298-
key: rawKey,
296+
key: rawValue,
299297
disabled: rawDisabled,
300298
title: rawTitle,
301299
};
@@ -466,7 +464,10 @@ const Select = React.forwardRef<BaseSelectRef, SelectProps<any, DefaultOptionTyp
466464
(labeledValues.length !== mergedValues.length ||
467465
labeledValues.some((newVal, index) => mergedValues[index]?.value !== newVal?.value))
468466
) {
469-
const returnValues = labelInValue ? labeledValues : labeledValues.map((v) => v.value);
467+
const returnValues = labelInValue
468+
? labeledValues.map(({ label, value }) => ({ label, value }))
469+
: labeledValues.map((v) => v.value);
470+
470471
const returnOptions = labeledValues.map((v) =>
471472
injectPropsWithOption(getMixedOption(v.value)),
472473
);

tests/Multiple.test.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -375,10 +375,12 @@ describe('Select.Multiple', () => {
375375
});
376376

377377
it('show static prefix', () => {
378-
render(<Select mode="multiple" value={['']} prefix="Foobar">
379-
<Option value={1}>1</Option>
380-
<Option value={2}>2</Option>
381-
</Select>);
378+
render(
379+
<Select mode="multiple" value={['']} prefix="Foobar">
380+
<Option value={1}>1</Option>
381+
<Option value={2}>2</Option>
382+
</Select>,
383+
);
382384

383385
expect(screen.findByText('Foobar')).toBeTruthy();
384386
});
@@ -459,7 +461,7 @@ describe('Select.Multiple', () => {
459461
toggleOpen(container);
460462
selectItem(container, 0);
461463
expect(onChange).toHaveBeenCalledWith(
462-
[{ label: 'Light', value: 'light', key: 'light' }],
464+
[{ label: 'Light', value: 'light' }],
463465
[{ label: 'Light', value: 'light', option: 2333 }],
464466
);
465467
onChange.mockReset();
@@ -470,8 +472,8 @@ describe('Select.Multiple', () => {
470472
selectItem(container, 0);
471473
expect(onChange).toHaveBeenCalledWith(
472474
[
473-
{ label: 'Light', value: 'light', key: 'light' },
474-
{ label: 'Bamboo', value: 'bamboo', key: 'bamboo' },
475+
{ label: 'Light', value: 'light' },
476+
{ label: 'Bamboo', value: 'bamboo' },
475477
],
476478
[
477479
{ label: 'Light', value: 'light', option: 2333 },

tests/Select.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ describe('Select.Basic', () => {
487487
toggleOpen(container);
488488
selectItem(container);
489489
expect(handleChange).toHaveBeenCalledWith(
490-
{ key: '1', value: '1', label: 'One' },
490+
{ value: '1', label: 'One' },
491491
{ children: 'One', key: null, testprop: 'test', value: '1' },
492492
);
493493
});
@@ -508,7 +508,7 @@ describe('Select.Basic', () => {
508508
toggleOpen(container);
509509
selectItem(container);
510510
expect(handleChange).toHaveBeenCalledWith(
511-
{ key: '1', label: 'One', value: '1' },
511+
{ label: 'One', value: '1' },
512512
{ children: 'One', key: null, testprop: 'test', value: '1' },
513513
);
514514
});

tests/shared/removeSelectedTest.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export default function removeSelectedTest(mode: any) {
5050
const handleChange = jest.fn();
5151
const { container } = render(
5252
<Select
53-
value={[{ key: '1' }, { key: '2' }]}
53+
value={[{ value: '1' }, { value: '2' }]}
5454
onChange={handleChange}
5555
onDeselect={handleDeselect}
5656
labelInValue
@@ -63,12 +63,12 @@ export default function removeSelectedTest(mode: any) {
6363
removeSelection(container);
6464

6565
expect(handleDeselect).toHaveBeenCalledWith(
66-
expect.objectContaining({ key: '1', label: '1' }),
66+
expect.objectContaining({ value: '1', label: '1' }),
6767
expect.objectContaining({ value: '1' }),
6868
);
6969

7070
expect(handleChange).toHaveBeenCalledWith(
71-
[expect.objectContaining({ key: '2', label: '2' })],
71+
[expect.objectContaining({ value: '2', label: '2' })],
7272
[expect.objectContaining({ value: '2' })],
7373
);
7474
});

0 commit comments

Comments
 (0)