diff --git a/react/MuiCozyTheme/ListItem/index.js b/react/MuiCozyTheme/ListItem/index.js index f70b01ecef..dcb1db60ca 100644 --- a/react/MuiCozyTheme/ListItem/index.js +++ b/react/MuiCozyTheme/ListItem/index.js @@ -44,9 +44,9 @@ const useGutters = ({ gutters, ...props }) => { const guttersValue = gutters === 'double' ? 32 : 16 const lastChild = getLastChild(props) - const isLastChildListItemIcon = getComponentName(lastChild).includes( - 'ListItemIcon' - ) + const isLastChildListItemIcon = lastChild + ? getComponentName(lastChild).includes('ListItemIcon') + : false const gutterRight = isLastChildListItemIcon ? guttersValue - 8 : guttersValue @@ -106,10 +106,12 @@ ListItem.defaultProps = { size: 'medium' } -ListItem.propTypes = { +export const LitItemPropTypes = { gutters: PropTypes.oneOf(['disabled', 'double', 'default']), size: PropTypes.oneOf(['small', 'medium', 'large']), ellipsis: PropTypes.bool } +ListItem.propTypes = LitItemPropTypes + export default ListItem diff --git a/react/utils/react.js b/react/utils/react.js index 27446eb92a..3476e1ae7a 100644 --- a/react/utils/react.js +++ b/react/utils/react.js @@ -6,16 +6,20 @@ export const getComponentName = component => { } export const getChildren = props => { - return Children.toArray(props.children) + const children = Children.toArray(props.children) + return Children.count(children) > 0 ? children : null } export const getChildrenCount = props => { const children = getChildren(props) - return children.length + return Children.count(children) || null } export const getLastChild = props => { const children = getChildren(props) + + if (!children) return null + const lastChild = children[children.length - 1] return lastChild.type === Fragment