mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-04 06:39:02 +02:00
6890f1bb3c
Editor Redesign Cleanup: Chat GitOrigin-RevId: 98f969ee84a86761466de182787443b8c9bacefd
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { MessageAndDropdown } from './message-and-dropdown'
|
|
import { useTranslation } from 'react-i18next'
|
|
import type { Message as MessageType } from '@/features/chat/context/chat-context'
|
|
import { User } from '../../../../../types/user'
|
|
|
|
export interface MessageGroupProps {
|
|
messages: MessageType[]
|
|
user?: User
|
|
fromSelf: boolean
|
|
}
|
|
|
|
function MessageGroup({ messages, user, fromSelf }: MessageGroupProps) {
|
|
const { t } = useTranslation()
|
|
|
|
return (
|
|
<div className="chat-message">
|
|
<div>
|
|
<div className="message-row">
|
|
<div className="message-avatar-placeholder" />
|
|
{!fromSelf && (
|
|
<div className="message-author">
|
|
<span>
|
|
{user?.id && user.email
|
|
? user.first_name || user.email
|
|
: t('deleted_user')}
|
|
</span>
|
|
</div>
|
|
)}
|
|
</div>
|
|
</div>
|
|
{messages.map(message => {
|
|
const nonDeletedMessages = messages.filter(m => !m.deleted)
|
|
const nonDeletedIndex = nonDeletedMessages.findIndex(
|
|
m => m.id === message.id
|
|
)
|
|
return (
|
|
<MessageAndDropdown
|
|
key={message.id}
|
|
message={message}
|
|
fromSelf={fromSelf}
|
|
isLast={nonDeletedIndex === nonDeletedMessages.length - 1}
|
|
isFirst={nonDeletedIndex === 0}
|
|
/>
|
|
)
|
|
})}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default MessageGroup
|