Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

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