toolbar-header.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. function ToolbarHeader({
  9. cobranding,
  10. onShowLeftMenuClick,
  11. chatIsOpen,
  12. toggleChatOpen,
  13. unreadMessageCount,
  14. onlineUsers,
  15. goToUser
  16. }) {
  17. return (
  18. <header className="toolbar toolbar-header toolbar-with-labels">
  19. <div className="toolbar-left">
  20. <MenuButton onClick={onShowLeftMenuClick} />
  21. {cobranding ? <CobrandingLogo {...cobranding} /> : null}
  22. <BackToProjectsButton />
  23. </div>
  24. <div className="toolbar-right">
  25. <OnlineUsersWidget onlineUsers={onlineUsers} goToUser={goToUser} />
  26. <ChatToggleButton
  27. chatIsOpen={chatIsOpen}
  28. onClick={toggleChatOpen}
  29. unreadMessageCount={unreadMessageCount}
  30. />
  31. </div>
  32. </header>
  33. )
  34. }
  35. ToolbarHeader.propTypes = {
  36. onShowLeftMenuClick: PropTypes.func.isRequired,
  37. cobranding: PropTypes.object,
  38. chatIsOpen: PropTypes.bool,
  39. toggleChatOpen: PropTypes.func.isRequired,
  40. unreadMessageCount: PropTypes.number.isRequired,
  41. onlineUsers: PropTypes.array.isRequired,
  42. goToUser: PropTypes.func.isRequired
  43. }
  44. export default ToolbarHeader