chat-toggle-button.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import classNames from 'classnames'
  4. import { useTranslation } from 'react-i18next'
  5. import Icon from '../../../shared/components/icon'
  6. function ChatToggleButton({ chatIsOpen, unreadMessageCount, onClick }) {
  7. const { t } = useTranslation()
  8. const classes = classNames(
  9. 'btn',
  10. 'btn-full-height',
  11. 'btn-full-height-no-border',
  12. { active: chatIsOpen }
  13. )
  14. const hasUnreadMessages = unreadMessageCount > 0
  15. return (
  16. // eslint-disable-next-line jsx-a11y/anchor-is-valid
  17. <a role="button" className={classes} href="#" onClick={onClick}>
  18. <Icon
  19. type="fw"
  20. modifier="comment"
  21. classes={{ icon: hasUnreadMessages ? 'bounce' : undefined }}
  22. />
  23. {hasUnreadMessages ? (
  24. <span className="label label-info">{unreadMessageCount}</span>
  25. ) : null}
  26. <p className="toolbar-label">{t('chat')}</p>
  27. </a>
  28. )
  29. }
  30. ChatToggleButton.propTypes = {
  31. chatIsOpen: PropTypes.bool,
  32. unreadMessageCount: PropTypes.number.isRequired,
  33. onClick: PropTypes.func.isRequired,
  34. }
  35. export default ChatToggleButton