import PropTypes from 'prop-types'; import React from 'react'; const List = React.memo(({ children, ordered, start, tight, numberOfLines = 0 }) => { let bulletWidth = 15; if (ordered) { const lastNumber = (start + children.length) - 1; bulletWidth = (9 * lastNumber.toString().length) + 7; } let items = React.Children.toArray(children); if (numberOfLines) { items = items.slice(0, numberOfLines); } const _children = items.map((child, index) => React.cloneElement(child, { bulletWidth, ordered, tight, index: start + index })); return ( <> {_children} ); }); List.propTypes = { children: PropTypes.node, ordered: PropTypes.bool, start: PropTypes.number, tight: PropTypes.bool, numberOfLines: PropTypes.number }; List.defaultProps = { start: 1 }; export default List;