Rev 4375 | Rev 5187 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { useEffect, useRef } from 'react';import EmptySection from '../../shared/empty-section/EmptySection';import MessageBox from './MessageBox';import MessageTemplate from './MessageTemplate';const Chatmail = ({selectedConversation = null,messages = [],backendVars = {},setConversation = () => { },getMoreMessages = () => { },onSend = () => { },setMsgs = () => { },}) => {const lastMessage = useRef(null);useEffect(() => {const observer = new IntersectionObserver(([entry]) => {if (entry.isIntersecting) {getMoreMessages()}})if (lastMessage.current) {observer.observe(lastMessage.current)}}, [messages]);if (!selectedConversation) {return (<EmptySectionIcon={<i className='fas fa-comments icon' />}message='No hay mensajes'/>)}return (<div className='chat'><div className='icon-hide' onClick={() => setConversation(null)}><i className="fas fa-angle-left" /><span>Volver</span></div><a href={selectedConversation.profile}><h2 className='chat-header'>{selectedConversation.name}</h2></a><div className="messages-line">{messages.length? messages.map((element, index) => {return (<MessageTemplatekey={index}message={element}date={element.date}/>)}):<div className='message-select-conversation'><div className='msgs-select-container'><i className='fas fa-inbox icon' /><h3>No hay mensajes en esta conversación</h3></div></div>}<hr ref={lastMessage} style={{ visibility: 'hidden' }} /></div><MessageBoxsetMsgs={setMsgs}onSend={onSend}backendVars={backendVars}sendLink={selectedConversation.send_link}/></div >)}export default Chatmail