Rev 891 | Rev 901 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect, useRef, useState } from 'react'export default ({ messages, selectedConversation, onSend, backendVars, getMoreMessages, handleShowConversation }) => {const [text, setText] = useState('')const lastMessage = useRef(null);useEffect(() => {if (lastMessage.current) {const observer = new IntersectionObserver(getMoreMessages, {rootMargin: '0px'})observer.observe(lastMessage.current)}}, [messages]);return (<React.Fragment><div className="main-conversation-box">{!selectedConversation?<div style={{display: 'grid',placeItems: 'center',width: '100%'}}><div style={{display: 'flex',flexDirection: 'column',alignItems: 'center'}}><i className='fas fa-edit icon' style={{fontSize: '2.5rem'}}/><h3>Selecciona una conversación</h3></div></div>:<React.Fragment><divclassName="message-bar-head"><div className="usr-msg-details"><iclassName="fas fa-angle-left icon"onClick={() => handleShowConversation(false)}></i><div className="usr-ms-img"><img src={selectedConversation.image} alt={`${selectedConversation.name} avatars`} /></div><div className="usr-mg-info"><h3>{selectedConversation.name}</h3><p>Online</p></div></div><div className="ed-opts"><i className="la la-ellipsis-v icon"></i><ul className="ed-options"><li><a href="#" className="btn-clean-messages" title="">Limpiar </a></li><li><a href="#" className="btn-delete-conversation" title="">Borrar</a></li><li><a href="#" className="btn-block-user" title="">Bloquear</a></li></ul></div></div><divclassName="messages-line">{(messages)&&(messages.map((element, i) => {const isLeft = element.side === 'left'return (i === (messages.length - 1)?<divclassName={`main-message-box ref ${!isLeft ? 'ta-right' : ''}`}key={element.message}ref={lastMessage}><div className="messg-usr-img"><imgsrc={element.sender_image}onClick={() => window.location.href = element.sender_profile}className="cursor-pointer"alt={element.sender_name}/></div><divclassName="message-dt"><divclassName="message-inner-dt"><p className='w-100'>{element.message}</p></div><span>{element.date}</span></div></div>:<divclassName={`main-message-box ${!isLeft ? 'ta-right' : ''}`}key={element.message}><div className="messg-usr-img"><imgsrc={element.sender_image}onClick={() => window.location.href = element.sender_profile}className="cursor-pointer"alt={element.sender_name}/></div><divclassName="message-dt"><divclassName="message-inner-dt"><p className='w-100'>{element.message}</p></div><span>{element.date}</span></div></div>)}))}</div><div className="message-send-area"><form id="form-send-message" name="form-send-message"onSubmit={e => {e.preventDefault()onSend(text)setText('')}}><div className="mf-field"><inputtype="text"name="message"id="message"value={text}placeholder={backendVars.labelWriteMessage}onChange={e => {setText(e.target.value || '')}}/><button type="submit"><i class="fas fa-paper-plane"></i>{backendVars.labelSend}</button></div></form></div></React.Fragment>}</div></React.Fragment>)}