RecentActivity.jsx 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import classnames from 'classnames'
  4. require('./RecentActivity.styl')
  5. export const RecentActivity = props =>
  6. <div className='activity'>
  7. <div className='activity__header'>
  8. <div className={classnames('activity__header__title', 'subTitle')}>
  9. {props.t('Recent activity')}
  10. </div>
  11. <div
  12. className={classnames('activity__header__allread', 'btn btn-outline-primary')}
  13. onClick={props.onClickEverythingAsRead}
  14. >
  15. {props.t('Mark everything as read')}
  16. </div>
  17. </div>
  18. <div className='activity__wrapper'>
  19. {props.recentActivityList.map(content => {
  20. const contentType = props.contentTypeList.find(ct => ct.slug === content.type)
  21. return (
  22. <div
  23. className={classnames('activity__workspace', {'read': props.readByUserList.includes(content.id)})}
  24. onClick={() => props.onClickRecentContent(content.id, content.type)}
  25. key={content.id}
  26. >
  27. <div className='activity__workspace__icon' style={{color: contentType.hexcolor}}>
  28. <i className={`fa fa-${contentType.faIcon}`} />
  29. </div>
  30. <div className='activity__workspace__name'>
  31. {content.label}
  32. </div>
  33. </div>
  34. )
  35. })}
  36. <div className={classnames('activity__more', 'd-flex flex-row-reverse')}>
  37. <div
  38. className={classnames('activity__more__btn', 'btn btn-outline-primary')}
  39. onClick={props.onClickSeeMore}
  40. >
  41. {props.t('See more')}
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. export default RecentActivity
  47. RecentActivity.propTypes = {
  48. t: PropTypes.func.isRequired,
  49. recentActivityList: PropTypes.array.isRequired,
  50. contentTypeList: PropTypes.array.isRequired,
  51. onClickSeeMore: PropTypes.func.isRequired,
  52. readByUserList: PropTypes.array
  53. }
  54. RecentActivity.defaultProps = {
  55. readByUserList: []
  56. }