toolbar-header.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import MenuButton from './menu-button'
  4. import CobrandingLogo from './cobranding-logo'
  5. import BackToProjectsButton from './back-to-projects-button'
  6. import ChatToggleButton from './chat-toggle-button'
  7. import OnlineUsersWidget from './online-users-widget'
  8. import TrackChangesToggleButton from './track-changes-toggle-button'
  9. import HistoryToggleButton from './history-toggle-button'
  10. function ToolbarHeader({
  11. cobranding,
  12. onShowLeftMenuClick,
  13. chatIsOpen,
  14. toggleChatOpen,
  15. reviewPanelOpen,
  16. toggleReviewPanelOpen,
  17. historyIsOpen,
  18. toggleHistoryOpen,
  19. unreadMessageCount,
  20. onlineUsers,
  21. goToUser,
  22. isRestrictedTokenMember
  23. }) {
  24. return (
  25. <header className="toolbar toolbar-header toolbar-with-labels">
  26. <div className="toolbar-left">
  27. <MenuButton onClick={onShowLeftMenuClick} />
  28. {cobranding ? <CobrandingLogo {...cobranding} /> : null}
  29. <BackToProjectsButton />
  30. </div>
  31. <div className="toolbar-right">
  32. <OnlineUsersWidget onlineUsers={onlineUsers} goToUser={goToUser} />
  33. {!isRestrictedTokenMember && (
  34. <>
  35. <TrackChangesToggleButton
  36. onClick={toggleReviewPanelOpen}
  37. disabled={historyIsOpen}
  38. trackChangesIsOpen={reviewPanelOpen}
  39. />
  40. <HistoryToggleButton
  41. historyIsOpen={historyIsOpen}
  42. onClick={toggleHistoryOpen}
  43. />
  44. <ChatToggleButton
  45. chatIsOpen={chatIsOpen}
  46. onClick={toggleChatOpen}
  47. unreadMessageCount={unreadMessageCount}
  48. />
  49. </>
  50. )}
  51. </div>
  52. </header>
  53. )
  54. }
  55. ToolbarHeader.propTypes = {
  56. onShowLeftMenuClick: PropTypes.func.isRequired,
  57. cobranding: PropTypes.object,
  58. chatIsOpen: PropTypes.bool,
  59. toggleChatOpen: PropTypes.func.isRequired,
  60. reviewPanelOpen: PropTypes.bool,
  61. toggleReviewPanelOpen: PropTypes.func.isRequired,
  62. historyIsOpen: PropTypes.bool,
  63. toggleHistoryOpen: PropTypes.func.isRequired,
  64. unreadMessageCount: PropTypes.number.isRequired,
  65. onlineUsers: PropTypes.array.isRequired,
  66. goToUser: PropTypes.func.isRequired,
  67. isRestrictedTokenMember: PropTypes.bool
  68. }
  69. export default ToolbarHeader