diff --git a/src/components/checkbox/index.js b/src/components/checkbox/index.js index 7c5797b4..794468a7 100644 --- a/src/components/checkbox/index.js +++ b/src/components/checkbox/index.js @@ -14,32 +14,37 @@ function Group(props) { let checkedValue = value ? [ ...value ] : value; - const group = Children.map(children, (child) => cloneElement(child, { - disabled: disabled === undefined ? child.props.disabled : disabled, - - checked: - checkedValue === undefined - ? undefined - : checkedValue.indexOf(child.props.value) > -1, - - onChange(checked, val) { - if (checkedValue === undefined) { - checkedValue = []; - } - - const index = checkedValue.indexOf(val); - - if (index > -1 && !checked) { - checkedValue.splice(index, 1); - } - - if (index === -1 && checked) { - checkedValue.push(val); - } - - onChange(checkedValue); - }, - })); + const group = Children.map(children, (child) => { + if (child && child.type && [ 'Checkbox', 'ComplexCheckbox' ].includes(child.type.displayName)) { + return cloneElement(child, { + disabled: disabled === undefined ? child.props.disabled : disabled, + + checked: + checkedValue === undefined + ? undefined + : checkedValue.indexOf(child.props.value) > -1, + + onChange(checked, val) { + if (checkedValue === undefined) { + checkedValue = []; + } + + const index = checkedValue.indexOf(val); + + if (index > -1 && !checked) { + checkedValue.splice(index, 1); + } + + if (index === -1 && checked) { + checkedValue.push(val); + } + + onChange(checkedValue); + }, + }); + } + return child; + }); const classes = classNames(`${classSelector}-group`, { vertical: layout === 'v', @@ -159,4 +164,6 @@ class Checkbox extends React.Component { } } +Checkbox.displayName = 'Checkbox'; + export default Checkbox; diff --git a/src/components/complex-checkbox/index.js b/src/components/complex-checkbox/index.js index 6c17199a..f98bdd47 100644 --- a/src/components/complex-checkbox/index.js +++ b/src/components/complex-checkbox/index.js @@ -55,6 +55,8 @@ export default function ComplexCheckbox(props) { ); } +ComplexCheckbox.displayName = 'ComplexCheckbox'; + ComplexCheckbox.propTypes = { content: PropTypes.oneOfType([PropTypes.string, PropTypes.element]), imgSrc: PropTypes.string,