message-group.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { MessageGroupProps } from '@/features/chat/components/message-group'
  2. import { MessageAndDropdown } from './message-and-dropdown'
  3. import { useTranslation } from 'react-i18next'
  4. function MessageGroup({ messages, user, fromSelf }: MessageGroupProps) {
  5. const { t } = useTranslation()
  6. return (
  7. <div className="chat-message-redesign">
  8. <div>
  9. <div className="message-row">
  10. <div className="message-avatar-placeholder" />
  11. {!fromSelf && (
  12. <div className="message-author">
  13. <span>
  14. {user?.id && user.email
  15. ? user.first_name || user.email
  16. : t('deleted_user')}
  17. </span>
  18. </div>
  19. )}
  20. </div>
  21. </div>
  22. {messages.map((message, index) => {
  23. const nonDeletedMessages = messages.filter(m => !m.deleted)
  24. const nonDeletedIndex = nonDeletedMessages.findIndex(
  25. m => m.id === message.id
  26. )
  27. return (
  28. <MessageAndDropdown
  29. key={index}
  30. message={message}
  31. fromSelf={fromSelf}
  32. isLast={nonDeletedIndex === nonDeletedMessages.length - 1}
  33. isFirst={nonDeletedIndex === 0}
  34. />
  35. )
  36. })}
  37. </div>
  38. )
  39. }
  40. export default MessageGroup