Rev 3618 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react';import { Box, styled } from '@mui/material';import { Check } from '@mui/icons-material';import { parse } from '@utils';import Options from '@components/UI/Option';const MessageTemplate = styled(Box)`box-shadow: var(--light-shadow);display: inline-flex;flex-direction: column;gap: 0.5rem;margin-bottom: 0.5rem;max-width: 70%;min-width: 4rem;padding: 0.5rem;position: relative;p {color: var(--chat-color);max-width: 100%;overflow: hidden;text-overflow: ellipsis;word-break: break-word;}img,video {max-width: 250px;max-height: 250px;object-fit: contain;}svg,small {color: var(--subtitle-color);font-size: 0.8rem;}.time {display: inline-flex;gap: 5px;}.emojione {width: 1rem;height: 1rem;}`;export default function Message({ message, reportUrl, onReport }) {const { u, type, user_name, not_received, seen, id, content, send, contentType, time } = message;const showName = type === 'group' && !u === 1;const messagesContent = {text: <p>{parse(window.emojione.shortnameToImage(content))}</p>,image: <img src={content} alt='chat_image' />,video: <video src={content} preload='none' controls />,document: (<a href={content} download><img className='pdf' src='/images/extension/pdf.png' alt='pdf' /></a>)};return (<>{showName ? <span className='user_name'>{user_name}</span> : null}<MessageTemplatesx={send? {alignSelf: 'flex-end',backgroundColor: '#eee',borderRadius: '10px 0px 10px 10px',marginRight: '0.5rem',color: '#393939'}: {alignSelf: 'flex-start',backgroundColor: 'var(--chat-received)',borderRadius: '0 10px 10px 10px',marginLeft: '0.5rem'}}>{messagesContent[contentType]}<small className='time'><Checksx={{color: seen ? 'blue' : 'gray',display: not_received ? 'none' : 'flex'}}/>{time}</small><Options>{reportUrl && (<Options.Item onClick={() => onReport({ url: reportUrl, id })}>Reportar</Options.Item>)}</Options></MessageTemplate></>);}