import React, { useEffect } from 'react'; import { MessageEntity } from '../../../../Domain/entity/MessageEntity'; import ReplyFilled from '../../../components/UI/svgs/Icons/Actions/ReplyFilled'; import { FunctionTypeVoidToVoid } from '../../../../CommonTypes/BaseViewModel'; import { FileType } from '../../../../Domain/entity/FileTypes'; import ReplyImagePreviewAttachment from './ReplyImagePreviewAttachment/ReplyImagePreviewAttachment'; import TextDocument from '../../../components/UI/svgs/Icons/Media/TextDocument'; import { MessageDTOMapper } from '../../../../Data/source/remote/Mapper/MessageDTOMapper'; import './ReplyMessagePreview.scss'; import { CloseSvg } from '../../../icons'; type ReplyMessagePreviewProps = { messages: MessageEntity[]; userNameSentMessage: string; // userId: string; onClose: FunctionTypeVoidToVoid; }; function trimMessage(messageText: string) { return `${messageText.substring(0, 39)} ...`; } // eslint-disable-next-line react/function-component-definition const ReplyMessagePreview = ({ messages, userNameSentMessage, onClose, }: ReplyMessagePreviewProps) => { const [messageTextValue, setMessageTextValue] = React.useState(''); useEffect(() => { const value = MessageDTOMapper.formatMessage(messages[0].message); setMessageTextValue(value); }, [messages[0]?.message]); return (
{messages.length > 0 && messages[0].attachments && messages[0].attachments.length > 0 ? (
{messages && messages[0].attachments && messages[0].attachments.length > 0 && messages[0].attachments[0].type .toString() .includes(FileType.image) && messages[0].attachments[0].file ? ( ) : ( )}
) : null}
Reply to {userNameSentMessage}
{messages.length > 0 && (!messages[0].attachments || (messages[0].attachments && messages[0].attachments.length === 0)) ? (
{messages.length > 1 ? '2 messages' : trimMessage(messageTextValue)}
) : (
{messages.length > 1 ? '2 messages' : trimMessage(messageTextValue)}
)}
); }; export default ReplyMessagePreview;