Skip to content

Commit 0ce4e3f

Browse files
authored
feat: add value and disabled to TransBtn props on OptionList (#983)
1 parent b5fccbd commit 0ce4e3f

File tree

3 files changed

+29
-6
lines changed

3 files changed

+29
-6
lines changed

docs/examples/custom-icon.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ const clearPath =
2222
' 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-' +
2323
'28.7 64-64V306c0-35.3-28.7-64-64-64z';
2424

25-
const menuItemSelectedIcon = (props) => {
26-
const { ...p } = props;
27-
return <span style={{ position: 'absolute', right: 0 }}>{p.isSelected ? '🌹' : '☑️'}</span>;
28-
};
25+
const menuItemSelectedIcon = (props) => (
26+
<span style={{ position: 'absolute', right: 0, opacity: props.disabled ? 0.5 : 1 }}>
27+
{props.isSelected ? '🌹' : '☑️'}
28+
</span>
29+
);
2930

3031
const singleItemIcon = (
3132
<span style={{ position: 'absolute', right: '0px' }} role="img" aria-label="rose">

src/OptionList.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,11 @@ const OptionList: React.ForwardRefRenderFunction<RefOptionListProps, {}> = (_, r
372372
<TransBtn
373373
className={`${itemPrefixCls}-option-state`}
374374
customizeIcon={menuItemSelectedIcon}
375-
customizeIconProps={{ isSelected: selected }}
375+
customizeIconProps={{
376+
value,
377+
disabled,
378+
isSelected: selected,
379+
}}
376380
>
377381
{selected ? '✓' : null}
378382
</TransBtn>

tests/Select.test.tsx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1489,6 +1489,7 @@ describe('Select.Basic', () => {
14891489

14901490
it('dropdown selection item customize icon', () => {
14911491
const menuItemSelectedIcon = jest.fn();
1492+
14921493
mount(
14931494
<Select
14941495
value="1"
@@ -1497,8 +1498,25 @@ describe('Select.Basic', () => {
14971498
menuItemSelectedIcon={menuItemSelectedIcon}
14981499
/>,
14991500
);
1501+
expect(menuItemSelectedIcon).toHaveBeenCalledWith({
1502+
value: '1',
1503+
disabled: undefined,
1504+
isSelected: true,
1505+
});
15001506

1501-
expect(menuItemSelectedIcon).toHaveBeenCalledWith({ isSelected: true });
1507+
mount(
1508+
<Select
1509+
value="1"
1510+
options={[{ value: '2', disabled: true } as any]}
1511+
open
1512+
menuItemSelectedIcon={menuItemSelectedIcon}
1513+
/>,
1514+
);
1515+
expect(menuItemSelectedIcon).toHaveBeenCalledWith({
1516+
value: '2',
1517+
disabled: true,
1518+
isSelected: false,
1519+
});
15021520
});
15031521

15041522
it('keyDown & KeyUp event', () => {

0 commit comments

Comments
 (0)