ContentItem.jsx 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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'>
  10. <i className={`fa 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 d-flex align-items-center justify-content-start')} style={{color: status.hexcolor}}>
  21. <div className='content__status__icon d-block '>
  22. <i className={`fa fa-${status.fa_icon}`} />
  23. </div>
  24. <div className='content__status__text d-none d-xl-block'>
  25. {status.label}
  26. </div>
  27. </div>
  28. </div>
  29. )
  30. }
  31. export default ContentItem
  32. ContentItem.propTypes = {
  33. type: PropTypes.string.isRequired,
  34. statusSlug: PropTypes.string.isRequired,
  35. customClass: PropTypes.string,
  36. label: PropTypes.string,
  37. contentType: PropTypes.object,
  38. onClickItem: PropTypes.func,
  39. faIcon: PropTypes.string
  40. }
  41. ContentItem.defaultProps = {
  42. label: '',
  43. customClass: '',
  44. onClickItem: () => {}
  45. }