WorkspaceListItem.jsx 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import React from 'react'
  2. import classnames from 'classnames'
  3. import { translate } from 'react-i18next'
  4. import PropTypes from 'prop-types'
  5. import AnimateHeight from 'react-animate-height'
  6. const WorkspaceListItem = props => {
  7. return (
  8. <li className='sidebar__navigation__workspace__item'>
  9. <div className='sidebar__navigation__workspace__item__wrapper' onClick={props.onClickTitle}>
  10. <div className='sidebar__navigation__workspace__item__number'>
  11. {props.name.substring(0, 2).toUpperCase()}
  12. </div>
  13. <div className='sidebar__navigation__workspace__item__name' title={props.name}>
  14. {props.name}
  15. </div>
  16. <div className='sidebar__navigation__workspace__item__icon'>
  17. <i className={classnames(props.isOpenInSidebar ? 'fa fa-chevron-up' : 'fa fa-chevron-down')} />
  18. </div>
  19. </div>
  20. <AnimateHeight duration={500} height={props.isOpenInSidebar ? 'auto' : 0}>
  21. <ul
  22. className='sidebar__navigation__workspace__item__submenu'
  23. id={`sidebarSubMenu_${props.number}`}
  24. >
  25. <li
  26. className='sidebar__navigation__workspace__item__submenu__dropdown'
  27. onClick={() => props.onClickAllContent(props.idWs)}
  28. >
  29. <div className='dropdown__icon'>
  30. <i className='fa fa-th' />
  31. </div>
  32. <div className='sidebar__navigation__workspace__item__submenu__dropdown__showdropdown'>
  33. <div className='dropdown__title'>
  34. <div className='dropdown__title__text'>
  35. Tous les contenus
  36. </div>
  37. </div>
  38. </div>
  39. {/*
  40. <div className='dropdown__subdropdown dropdown-menu' aria-labelledby='navbarDropdown'>
  41. <div className='dropdown__subdropdown__item dropdown-item'>
  42. <div className='dropdown__subdropdown__item__iconfile alignname'>
  43. <i className='fa fa-file-text-o' />
  44. </div>
  45. <div className='dropdown__subdropdown__item__textfile alignname'>
  46. Documents Archivés
  47. </div>
  48. </div>
  49. <div className='dropdown__subdropdown__item dropdown-item'>
  50. <div className='dropdown__subdropdown__item__iconfile alignname'>
  51. <i className='fa fa-file-text-o' />
  52. </div>
  53. <div className='dropdown__subdropdown__item__textfile alignname'>
  54. Documents Supprimés
  55. </div>
  56. </div>
  57. </div>
  58. */}
  59. </li>
  60. <li className='sidebar__navigation__workspace__item__submenu__dropdown'>
  61. <div className='dropdown__icon'>
  62. <i className='fa fa-signal dashboard-color' />
  63. </div>
  64. <div className='sidebar__navigation__workspace__item__submenu__dropdown__showdropdown'>
  65. <div className='dropdown__title'>
  66. <div className='dropdown__title__text'>
  67. Tableau de bord
  68. </div>
  69. </div>
  70. </div>
  71. </li>
  72. { Object.keys(props.app).map(a =>
  73. <li
  74. className={classnames('sidebar__navigation__workspace__item__submenu__dropdown', {'activeFilter': props.activeFilterList.includes(a)})}
  75. onClick={() => props.onClickContentFilter(props.idWs, a)}
  76. key={a}
  77. >
  78. <div className='dropdown__icon'>
  79. <i className={classnames(props.app[a].icon)} style={{backgroudColor: props.app[a].color}} />
  80. </div>
  81. <div className='sidebar__navigation__workspace__item__submenu__dropdown__showdropdown'>
  82. <div className='dropdown__title' id='navbarDropdown'>
  83. <div className='dropdown__title__text'>
  84. {props.app[a].label[props.lang.id]}
  85. </div>
  86. </div>
  87. </div>
  88. </li>
  89. )}
  90. <li className='sidebar__navigation__workspace__item__submenu__dropdown'>
  91. <div className='dropdown__icon'>
  92. <i className='fa fa-calendar calendar-color' />
  93. </div>
  94. <div className='sidebar__navigation__workspace__item__submenu__dropdown__showdropdown'>
  95. <div className='dropdown__title'>
  96. <div className='dropdown__title__text'>
  97. Calendrier
  98. </div>
  99. </div>
  100. </div>
  101. </li>
  102. </ul>
  103. </AnimateHeight>
  104. </li>
  105. )
  106. }
  107. export default translate()(WorkspaceListItem)
  108. WorkspaceListItem.propTypes = {
  109. number: PropTypes.number.isRequired,
  110. name: PropTypes.string.isRequired,
  111. app: PropTypes.object,
  112. onClickTitle: PropTypes.func,
  113. onClickAllContent: PropTypes.func,
  114. isOpenInSidebar: PropTypes.bool
  115. }
  116. WorkspaceListItem.defaultProps = {
  117. onClickTitle: () => {},
  118. onClickAllContent: () => {},
  119. isOpenInSidebar: false
  120. }