UserStatus.jsx 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import React from 'react'
  2. import {ROLE} from '../../helper.js'
  3. require('./UserStatus.styl')
  4. // @TODO Côme - 2018/08/07 - since api yet doesn't handle notification subscriptions, this file is WIP
  5. export const UserStatus = props =>
  6. <div className='userstatus'>
  7. <div className='userstatus__role'>
  8. <div className='userstatus__role__msg'>
  9. {props.t('Hi {{name}} ! Currently, you are ', {name: props.user.public_name})}
  10. </div>
  11. {(() => {
  12. const myself = props.curWs.memberList.find(m => m.id === props.user.user_id)
  13. if (myself === undefined) return
  14. const myRole = ROLE.find(r => r.slug === myself.role)
  15. return (
  16. <div className='userstatus__role__definition'>
  17. <div className='userstatus__role__definition__icon'>
  18. <i className={`fa fa-${myRole.faIcon}`} />
  19. </div>
  20. <div className='userstatus__role__definition__text'>
  21. {myRole.label}
  22. </div>
  23. </div>
  24. )
  25. })()}
  26. </div>
  27. <div className='userstatus__notification'>
  28. <div className='userstatus__notification__text'>
  29. {props.t("You have subscribed to this workspace's notifications")} (NYI)
  30. </div>
  31. {props.displayNotifBtn
  32. ? (
  33. <div className='userstatus__notification__subscribe dropdown'>
  34. <button
  35. className='userstatus__notification__subscribe__btn btn btn-outline-primary dropdown-toggle primaryColorBorderLighten'
  36. type='button'
  37. id='dropdownMenuButton'
  38. data-toggle='dropdown'
  39. aria-haspopup='true'
  40. aria-expanded='false'
  41. >
  42. {props.t('subscribed')}
  43. </button>
  44. <div className='userstatus__notification__subscribe__submenu dropdown-menu'>
  45. <div className='userstatus__notification__subscribe__submenu__item dropdown-item'>
  46. {props.t('subscriber')}
  47. </div>
  48. <div className='userstatus__notification__subscribe__submenu__item dropdown-item dropdown-item'>
  49. {props.t('unsubscribed')}
  50. </div>
  51. </div>
  52. </div>
  53. )
  54. : (
  55. <div
  56. className='userstatus__notification__btn btn btn-outline-primary primaryColorBorderLighten'
  57. onClick={props.onClickToggleNotifBtn}
  58. >
  59. {props.t('Change your status')}
  60. </div>
  61. )
  62. }
  63. </div>
  64. </div>
  65. export default UserStatus