import React from 'react';
import PropTypes from 'prop-types';
import { List, Card } from '@procore/core-react';
/** must be class component because passing ref as prop for position */
class DropdownContent extends React.Component {
static propTypes = {
children: PropTypes.node,
onItemClick: PropTypes.func.isRequired,
styles: PropTypes.shape()
};
static defaultProps = {
children: null,
onItemClick: () => {},
styles: {}
};
render() {
const { styles, children, onItemClick } = this.props;
return (
<div className={styles.dropdownContainer}>
<Card className={styles.card}>
<List className={styles.listItem}>
{React.Children.map(children, (child => (
child && (
<List.Item
onClick={child.props.disabled ? null : onItemClick(child.props.onClick)}
>
{React.cloneElement(child,
{
...child.props,
styles,
onClick: null
})
}
</List.Item>
)
)))}
</List>
</Card>
</div>
);
}
}
export default DropdownContent;
|