import React from 'react'; interface IList { children: JSX.Element; ordered: boolean; start: number; tight: boolean; numberOfLines?: number; } const List = React.memo(({ children, ordered, tight, start = 1, numberOfLines = 0 }: IList) => { let bulletWidth = 15; if (ordered) { // @ts-ignore 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: any, index: number) => React.cloneElement(child, { bulletWidth, ordered, tight, index: start + index }) ); return <>{_children}; }); export default List;