Skip to content

Commit 9a7d82e

Browse files
BoyYangzai洋
andauthored
fix: disableCheckbox (#410)
* fix: disableCheckbox * chore: add test case * chore: add snapshots --------- Co-authored-by: 洋 <[email protected]>
1 parent 6dbcd22 commit 9a7d82e

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

src/OptionList/Column.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@ export default function Column({
159159
data-path-key={fullPathKey}
160160
onClick={() => {
161161
triggerOpenPath();
162+
if (disableCheckbox) {
163+
return;
164+
}
162165
if (!multiple || isMergedLeaf) {
163166
triggerSelect();
164167
}
@@ -183,9 +186,12 @@ export default function Column({
183186
prefixCls={`${prefixCls}-checkbox`}
184187
checked={checked}
185188
halfChecked={halfChecked}
186-
disabled={disabled}
189+
disabled={disabled || disableCheckbox}
187190
disableCheckbox={disableCheckbox}
188191
onClick={(e: React.MouseEvent<HTMLSpanElement>) => {
192+
if (disableCheckbox) {
193+
return;
194+
}
189195
e.stopPropagation();
190196
triggerSelect();
191197
}}

tests/__snapshots__/index.spec.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ exports[`Cascader.Basic should not show title when title is falsy 1`] = `
6363
exports[`Cascader.Basic should render custom dropdown correctly 1`] = `
6464
<div
6565
class="rc-cascader-dropdown rc-cascader-dropdown-placement-bottomLeft"
66-
style="left: -1000vw; top: -1000vh; box-sizing: border-box; min-width: auto;"
66+
style="--arrow-x: 0px; --arrow-y: 0px; left: -1000vw; top: -1000vh; box-sizing: border-box; min-width: auto;"
6767
>
6868
<div>
6969
<div

tests/__snapshots__/search.spec.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ exports[`Cascader.Search should correct render Cascader with same field name of
3131
</div>
3232
<div
3333
class="rc-cascader-dropdown rc-cascader-dropdown-placement-bottomLeft"
34-
style="left: -1000vw; top: -1000vh; box-sizing: border-box; min-width: 0;"
34+
style="--arrow-x: 0px; --arrow-y: 0px; left: -1000vw; top: -1000vh; box-sizing: border-box; min-width: 0;"
3535
>
3636
<div>
3737
<div

tests/checkable.spec.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,17 @@ describe('Cascader.Checkable', () => {
208208

209209
// disabled className
210210
wrapper.find('.rc-cascader-menu-item').simulate('click');
211+
expect(wrapper.find('.rc-cascader-menu-item')).toHaveLength(4);
211212
expect(wrapper.find('.rc-cascader-checkbox-disabled')).toHaveLength(1);
212213

214+
// click disableCkeckbox
215+
wrapper.find('.rc-cascader-menu-item').at(1).simulate('click');
216+
expect(wrapper.find('.rc-cascader-checkbox-checked')).toHaveLength(0);
217+
218+
// click disableMenuItem
219+
wrapper.find('.rc-cascader-checkbox-disabled').simulate('click');
220+
expect(wrapper.find('.rc-cascader-checkbox-checked')).toHaveLength(0);
221+
213222
// Check all children except disableCheckbox When the parent checkbox is checked
214223
expect(wrapper.find('.rc-cascader-checkbox')).toHaveLength(4);
215224
wrapper.find('.rc-cascader-checkbox').first().simulate('click');

0 commit comments

Comments
 (0)