WorkspaceListItem.jsx 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. import { Link } from 'react-router-dom'
  7. const WorkspaceListItem = props => {
  8. return (
  9. <li className='sidebar__content__navigation__workspace__item'>
  10. <div
  11. className='sidebar__content__navigation__workspace__item__wrapper primaryColorBg primaryColorBgDarkenHover primaryColorBorder'
  12. onClick={props.onClickTitle}
  13. >
  14. <div className='sidebar__content__navigation__workspace__item__number'>
  15. {props.label.substring(0, 2).toUpperCase()}
  16. </div>
  17. <div className='sidebar__content__navigation__workspace__item__name' title={props.label}>
  18. {props.label}
  19. </div>
  20. <div className='sidebar__content__navigation__workspace__item__icon'>
  21. <i className={classnames(props.isOpenInSidebar ? 'fa fa-chevron-up' : 'fa fa-chevron-down')} />
  22. </div>
  23. </div>
  24. <AnimateHeight duration={500} height={props.isOpenInSidebar ? 'auto' : 0}>
  25. <ul
  26. className='sidebar__content__navigation__workspace__item__submenu'
  27. id={`sidebarSubMenu_${props.number}`}
  28. >
  29. { props.allowedApp.map(aa =>
  30. <li
  31. // onClick={() => props.onClickContentFilter(props.idWs, aa.slug)}
  32. key={aa.slug}
  33. >
  34. <Link to={aa.route}>
  35. <div className={classnames(
  36. 'sidebar__content__navigation__workspace__item__submenu__dropdown primaryColorBgLighten primaryColorBgHover primaryColorBorderDarken',
  37. {'activeFilter': props.activeFilterList.includes(aa.slug)}
  38. )}>
  39. <div className='dropdown__icon'>
  40. <i className={classnames(`fa fa-${aa.faIcon}`)} style={{backgroudColor: aa.hexcolor}} />
  41. </div>
  42. <div className='sidebar__content__navigation__workspace__item__submenu__dropdown__showdropdown'>
  43. <div className='dropdown__title' id='navbarDropdown'>
  44. <div className='dropdown__title__text'>
  45. {aa.label/* [props.lang.id] */}
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. </Link>
  51. </li>
  52. )}
  53. </ul>
  54. </AnimateHeight>
  55. </li>
  56. )
  57. }
  58. export default translate()(WorkspaceListItem)
  59. WorkspaceListItem.propTypes = {
  60. label: PropTypes.string.isRequired,
  61. allowedApp: PropTypes.array,
  62. onClickTitle: PropTypes.func,
  63. onClickAllContent: PropTypes.func,
  64. isOpenInSidebar: PropTypes.bool
  65. }
  66. WorkspaceListItem.defaultProps = {
  67. onClickTitle: () => {},
  68. onClickAllContent: () => {},
  69. isOpenInSidebar: false
  70. }