Skip to content

Commit e8f78fe

Browse files
committed
Merge branch 'fix-checkbox-mly' of github.com:ShuyunFF2E/cloud-react into feat-imageText-mly
2 parents 0edcd16 + 8c8340a commit e8f78fe

2 files changed

Lines changed: 35 additions & 26 deletions

File tree

src/components/checkbox/index.js

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,37 @@ function Group(props) {
1414

1515
let checkedValue = value ? [ ...value ] : value;
1616

17-
const group = Children.map(children, (child) => cloneElement(child, {
18-
disabled: disabled === undefined ? child.props.disabled : disabled,
19-
20-
checked:
21-
checkedValue === undefined
22-
? undefined
23-
: checkedValue.indexOf(child.props.value) > -1,
24-
25-
onChange(checked, val) {
26-
if (checkedValue === undefined) {
27-
checkedValue = [];
28-
}
29-
30-
const index = checkedValue.indexOf(val);
31-
32-
if (index > -1 && !checked) {
33-
checkedValue.splice(index, 1);
34-
}
35-
36-
if (index === -1 && checked) {
37-
checkedValue.push(val);
38-
}
39-
40-
onChange(checkedValue);
41-
},
42-
}));
17+
const group = Children.map(children, (child) => {
18+
if (child && child.type && [ 'Checkbox', 'ComplexCheckbox' ].includes(child.type.displayName)) {
19+
return cloneElement(child, {
20+
disabled: disabled === undefined ? child.props.disabled : disabled,
21+
22+
checked:
23+
checkedValue === undefined
24+
? undefined
25+
: checkedValue.indexOf(child.props.value) > -1,
26+
27+
onChange(checked, val) {
28+
if (checkedValue === undefined) {
29+
checkedValue = [];
30+
}
31+
32+
const index = checkedValue.indexOf(val);
33+
34+
if (index > -1 && !checked) {
35+
checkedValue.splice(index, 1);
36+
}
37+
38+
if (index === -1 && checked) {
39+
checkedValue.push(val);
40+
}
41+
42+
onChange(checkedValue);
43+
},
44+
});
45+
}
46+
return child;
47+
});
4348

4449
const classes = classNames(`${classSelector}-group`, {
4550
vertical: layout === 'v',
@@ -159,4 +164,6 @@ class Checkbox extends React.Component {
159164
}
160165
}
161166

167+
Checkbox.displayName = 'Checkbox';
168+
162169
export default Checkbox;

src/components/complex-checkbox/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ export default function ComplexCheckbox(props) {
5555
);
5656
}
5757

58+
ComplexCheckbox.displayName = 'ComplexCheckbox';
59+
5860
ComplexCheckbox.propTypes = {
5961
content: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
6062
imgSrc: PropTypes.string,

0 commit comments

Comments
 (0)