RecentActivity.jsx 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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.recentActivityFilteredForUser.map(content => {
  20. const contentType = props.contentTypeList.find(ct => ct.slug === content.type)
  21. return (
  22. <div
  23. className='activity__workspace'
  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. recentActivityFilteredForUser: PropTypes.array.isRequired,
  50. contentTypeList: PropTypes.array.isRequired,
  51. onClickSeeMore: PropTypes.func.isRequired
  52. }