Skip to content

Commit 950e0bd

Browse files
songlinnsonglin.chen
andauthored
🐛 fix multiple select trigger onclick twice (#218)
* 🐛 fix multiple select trigger onclick twice * ✅ add test Co-authored-by: songlin.chen <songlin.chen@leyantech.com>
1 parent f7b58aa commit 950e0bd

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/OptionList/Column.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ export default function Column({
113113
checked={checked}
114114
halfChecked={halfCheckedSet.has(value)}
115115
disabled={disabled}
116-
onClick={() => {
116+
onClick={(e: React.MouseEvent<HTMLSpanElement>) => {
117+
e.stopPropagation();
117118
triggerSelect();
118119
}}
119120
/>

tests/checkable.spec.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,17 @@ describe('Cascader.Checkable', () => {
7676
],
7777
);
7878
});
79+
it('click checkobx invoke one onChange', () => {
80+
const onChange = jest.fn();
81+
const wrapper = mount(<Cascader options={options} onChange={onChange} open checkable />);
82+
83+
expect(wrapper.exists('.rc-cascader-checkbox')).toBeTruthy();
84+
expect(wrapper.exists('.rc-cascader-checkbox-checked')).toBeFalsy();
85+
expect(wrapper.exists('.rc-cascader-checkbox-indeterminate')).toBeFalsy();
86+
87+
// Check checkbox
88+
wrapper.find('.rc-cascader-checkbox').first().simulate('click');
89+
expect(wrapper.exists('.rc-cascader-checkbox-checked')).toBeTruthy();
90+
expect(onChange).toHaveBeenCalledTimes(1);
91+
});
7992
});

0 commit comments

Comments
 (0)