Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3136 | Rev 4346 | 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 */
2981 stevensc 2
import React, { useEffect, useRef } from 'react';
1748 stevensc 3
import MessageBox from './MessageBox';
4
import MessageTemplate from './MessageTemplate';
1 www 5
 
3074 stevensc 6
const Chatmail = ({
1748 stevensc 7
    messages,
8
    selectedConversation,
9
    onSend,
10
    backendVars,
11
    getMoreMessages,
1741 stevensc 12
    handleShowConversation,
3044 stevensc 13
    setMsgs
1741 stevensc 14
}) => {
835 stevensc 15
 
1750 stevensc 16
    const lastMessage = useRef(null);
765 stevensc 17
 
853 stevensc 18
    useEffect(() => {
917 stevensc 19
        const observer = new IntersectionObserver(([entry]) => {
20
            if (entry.isIntersecting) {
21
                getMoreMessages()
22
            }
1752 stevensc 23
        }, {
24
            rootMargin: '0px'
917 stevensc 25
        })
26
 
879 stevensc 27
        if (lastMessage.current) {
915 stevensc 28
            observer.observe(lastMessage.current)
876 stevensc 29
        }
1752 stevensc 30
    }, [messages]);
876 stevensc 31
 
747 stevensc 32
    return (
2747 stevensc 33
        !selectedConversation
34
            ?
35
            <div className="main-conversation-box border-gray border-radius">
36
                <div className='message-select-conversation'>
37
                    <div className='msgs-select-container'>
38
                        <i className='fas fa-comments icon text-gray' />
39
                        <h3>
40
                            No hay mensajes
41
                        </h3>
1884 steven 42
                    </div>
2747 stevensc 43
                </div>
44
            </div>
45
            :
2748 stevensc 46
            <div className='inmail-conversation-container'>
2770 stevensc 47
                <div className='w-100 icon-hide'>
48
                    <span className='d-flex align-items-center mr-2 cursor-pointer' onClick={() => handleShowConversation(false)}>
2756 stevensc 49
                        <i className="fas fa-angle-left mr-2" />
2751 stevensc 50
                        Volver
51
                    </span>
52
                </div>
2748 stevensc 53
                <div className="inmail-conversation-box border-gray border-radius">
54
                    <div className="py-3 mb-2 chat-header">
55
                        <a href={selectedConversation.profile}>
56
                            <h2>
57
                                {selectedConversation.name}
58
                            </h2>
59
                        </a>
60
                    </div>
61
                    <div className="messages-line">
62
                        {
63
                            messages.length
64
                                ?
65
                                messages.map((element, i) =>
66
                                    <MessageTemplate
67
                                        key={i}
68
                                        message={element}
3136 stevensc 69
                                        date={element.date}
2748 stevensc 70
                                    />
71
                                )
72
                                :
73
                                <div className='message-select-conversation'>
74
                                    <div className='msgs-select-container'>
75
                                        <i className='fas fa-inbox icon' />
76
                                        <h3>No hay mensajes en esta conversación</h3>
77
                                    </div>
2747 stevensc 78
                                </div>
2748 stevensc 79
                        }
2750 stevensc 80
                        <hr ref={lastMessage} style={{ visibility: 'hidden' }} />
2748 stevensc 81
                    </div>
2747 stevensc 82
                </div>
83
                <MessageBox
3044 stevensc 84
                    setMsgs={setMsgs}
2747 stevensc 85
                    onSend={onSend}
86
                    backendVars={backendVars}
87
                    sendLink={selectedConversation.send_link}
88
                />
89
            </div>
90
 
1 www 91
    )
3074 stevensc 92
}
93
 
94
export default Chatmail