OutlineList.js 752 B

12345678910111213141516171819202122232425262728293031
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import classNames from 'classnames'
  4. import OutlineItem from './OutlineItem'
  5. function OutlineList({ outline, jumpToLine, isRoot }) {
  6. const listClasses = classNames('outline-item-list', {
  7. 'outline-item-list-root': isRoot
  8. })
  9. return (
  10. <ul className={listClasses}>
  11. {outline.map((outlineItem, idx) => {
  12. return (
  13. <OutlineItem
  14. key={`${outlineItem.level}-${idx}`}
  15. outlineItem={outlineItem}
  16. jumpToLine={jumpToLine}
  17. />
  18. )
  19. })}
  20. </ul>
  21. )
  22. }
  23. OutlineList.propTypes = {
  24. outline: PropTypes.array.isRequired,
  25. jumpToLine: PropTypes.func.isRequired,
  26. isRoot: PropTypes.bool
  27. }
  28. export default OutlineList