ContentItem.jsx 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import classnames from 'classnames'
  4. import BtnExtandedAction from './BtnExtandedAction.jsx'
  5. const ContentItem = props => {
  6. const status = props.contentType.availableStatuses.find(s => s.slug === props.statusSlug)
  7. return (
  8. <div className={classnames('content', 'align-items-center', {'item-last': props.isLast}, props.customClass)} onClick={props.onClickItem}>
  9. <div className='content__type' style={{color: props.contentType.hexcolor}}>
  10. <i className={`fa fa-fw fa-${props.faIcon}`} />
  11. </div>
  12. <div className='content__name'>
  13. <div className='content__name__text'>
  14. { props.label }
  15. </div>
  16. </div>
  17. <div className='d-none d-md-flex'>
  18. <BtnExtandedAction onClickExtendedAction={props.onClickExtendedAction} />
  19. </div>
  20. <div className={classnames('content__status')} style={{color: status.hexcolor}}>
  21. <div className='content__status__text d-none d-xl-block'>
  22. {status.label}
  23. <i className={`fa fa-fw fa-${status.faIcon}`} />
  24. </div>
  25. </div>
  26. </div>
  27. )
  28. }
  29. export default ContentItem
  30. ContentItem.propTypes = {
  31. type: PropTypes.string.isRequired,
  32. statusSlug: PropTypes.string.isRequired,
  33. customClass: PropTypes.string,
  34. label: PropTypes.string,
  35. contentType: PropTypes.object,
  36. onClickItem: PropTypes.func,
  37. faIcon: PropTypes.string
  38. }
  39. ContentItem.defaultProps = {
  40. label: '',
  41. customClass: '',
  42. onClickItem: () => {}
  43. }