Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5188 | Rev 5196 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3710 stevensc 1
/* eslint-disable react/prop-types */
5185 stevensc 2
import React, { useEffect, useRef } from 'react'
3
import EmptySection from '../../shared/empty-section/EmptySection'
4
import MessageBox from './MessageBox'
5
import MessageTemplate from './MessageTemplate'
6
import SpeakerNotesOffRoundedIcon from '@mui/icons-material/SpeakerNotesOffRounded'
7
import QuestionAnswerRoundedIcon from '@mui/icons-material/QuestionAnswerRounded'
5188 stevensc 8
import useNear from '../../hooks/useNear'
1 www 9
 
3074 stevensc 10
const Chatmail = ({
5185 stevensc 11
  selectedConversation = null,
12
  messages = [],
13
  setConversation = () => { },
14
  getMoreMessages = () => { },
5187 stevensc 15
  onSend = () => { }
1741 stevensc 16
}) => {
5185 stevensc 17
  const lastMessage = useRef(null)
5188 stevensc 18
  const [isIntersecting, reset] = useNear(lastMessage)
835 stevensc 19
 
5185 stevensc 20
  useEffect(() => {
5188 stevensc 21
    if (isIntersecting) {
22
      getMoreMessages()
5195 stevensc 23
      console.log('Intersecting')
5188 stevensc 24
      reset()
5185 stevensc 25
    }
5188 stevensc 26
  }, [isIntersecting])
917 stevensc 27
 
5185 stevensc 28
  if (!selectedConversation) {
5187 stevensc 29
    return <EmptySection message={LABELS.SELECT_CONVERSATION} Icon={<QuestionAnswerRoundedIcon/>} />
5185 stevensc 30
  }
31
 
32
  return (
33
    <div className='chat'>
34
      <div className='icon-hide' onClick={() => setConversation(null)}>
35
        <i className="fas fa-angle-left" />
36
        <span>{LABELS.RETURN}</span>
37
      </div>
38
      <a href={selectedConversation.profile}>
39
        <h2 className='chat-header'>{selectedConversation.name}</h2>
40
      </a>
41
      <div className="messages-line">
42
        {messages.length
43
          ? messages.map((element, index) =>
44
            <MessageTemplate
45
              key={index}
46
              message={element}
47
              date={element.date}
48
            />)
5187 stevensc 49
          : <EmptySection message={LABELS.NO_MESSAGE_CONVERSATION} Icon={<SpeakerNotesOffRoundedIcon/>} />
876 stevensc 50
        }
5185 stevensc 51
        <hr ref={lastMessage} style={{ visibility: 'hidden' }} />
52
      </div>
5187 stevensc 53
      <MessageBox onSend={onSend} sendUrl={selectedConversation.send_link}/>
5185 stevensc 54
    </div>
55
  )
3074 stevensc 56
}
57
 
5185 stevensc 58
export default Chatmail