Home Reference Source

src/components/snippets/Placeholder/components/List/List.jsx

import React from 'react';
import PropTypes from 'prop-types';
import { ListGroup, ListGroupItem } from 'reactstrap';
import { mapToNumOrStr } from '../../utils';

function List({ paragraphs, rows, avatar }) {
  const renderParagraphs = () => (
    <div className="n2o-placeholder-content item" />
  );

  const renderAvatar = <div className="n2o-placeholder-content avatar" />;

  const renderListItem = () => (
    <ListGroupItem className="n2o-placeholder-list">
      {avatar && renderAvatar}
      {mapToNumOrStr(paragraphs, renderParagraphs)}
    </ListGroupItem>
  );

  return <ListGroup>{mapToNumOrStr(rows, renderListItem)}</ListGroup>;
}

List.propTypes = {
  rows: PropTypes.oneOfType(PropTypes.string, PropTypes.number),
  paragraphs: PropTypes.oneOfType(PropTypes.string, PropTypes.number),
  avatar: PropTypes.bool,
};

List.defaultProps = {
  rows: 1,
  paragraphs: 2,
  avatar: false,
};

export default List;