Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
1 www 1
import React from 'react'
2
 
3
export default ({messages, selectedConversation, onSend, backendVars, getMoreMessages}) => {
4
    const [text, setText] = React.useState('')
5
    const handleScroll = (event) => {
6
        const node = event.target;
7
        if(node.clientHeight >= (node.scrollHeight * .62)){
8
            getMoreMessages()
9
        }
10
    }
11
    const paneDidMount = (node) => {
12
        if(node) {
13
            node.addEventListener("scroll", handleScroll.bind(this));
14
        }
15
    }
727 stevensc 16
    console.log('Test')
1 www 17
    return(
18
        <React.Fragment>
19
            <div className="main-conversation-box">
20
                {
21
                    !selectedConversation
22
                    ?
23
                            <div className="message-bar-head">
24
                                <div className="usr-mg-info">
25
                                    <h3>No hay mensajes</h3>
26
                                </div>
27
                            </div>
28
                    :
29
                        <React.Fragment>
30
                            <div
31
                                className="message-bar-head"
32
                                style={{
33
                                    minHeight: '13vh'
34
                                }}
35
                            >
36
                                <div className="usr-msg-details">
37
                                    <div className="usr-ms-img">
38
                                        <img src="images/resources/m-img1.png" alt="" />
39
                                    </div>
40
                                    <div className="usr-mg-info">
41
                                        <h3>{selectedConversation.name}</h3>
42
                                        <p>Online</p>
43
                                    </div>
44
                                </div>
45
                                <div className="ed-opts">
46
                                    <a href="#" title="" className="ed-opts-open"><i className="la la-ellipsis-v"></i></a>
47
                                    <ul className="ed-options">
48
                                        <li><a href="#" className="btn-clean-messages" title="">Limpiar </a></li>
49
                                        <li><a href="#" className="btn-delete-conversation" title="">Borrar</a></li>
50
                                        <li><a href="#" className="btn-block-user" title="">Bloquear</a></li>
51
                                    </ul>
52
                                </div>
53
                            </div>
54
                            <div
55
                                className="messages-line overflow-auto"
56
                                style={{
57
                                    display: 'flex',
58
                                    flexDirection: 'column-reverse',
59
                                    backgroundColor: 'white'
60
                                }}
61
                                ref={paneDidMount}
62
                            >
63
                                {
726 stevensc 64
                                    (messages) && (
65
                                        messages.reverse().map((element, i) => {
1 www 66
                                            const isLeft = element.side === 'left'
67
                                            return(
68
                                                <div
69
                                                    className={"main-message-box "+(isLeft ? 'st3' : 'ta-right') }
70
                                                    key={element.message}
71
                                                >
72
                                                    {
73
                                                        isLeft && (
74
                                                            <div className="messg-usr-img">
75
                                                                <img
76
                                                                    src={element.sender_image}
77
                                                                    onClick={() => window.location.href = element.sender_profile}
78
                                                                    className="cursor-pointer"
79
                                                                    alt={element.sender_name}
80
                                                                />
81
                                                            </div>
82
                                                        )
83
                                                    }
84
                                                    <div
85
                                                        className="message-dt"
86
                                                        style={
87
                                                            {
88
                                                                 padding: 0,
89
                                                                //  display: 'flex',
90
                                                                 justifyContent: isLeft ? 'flex-start' : 'flex-end',
91
                                                                 width: '85%',
92
                                                                 paddingLeft: isLeft ? '13%' : '40%',
93
                                                                 paddingRight: isLeft ? '40%': 0
94
                                                             }
95
                                                         }
96
                                                    >
97
                                                        <div
98
                                                            className="message-inner-dt"
99
 
100
                                                        >
101
                                                            <p className='w-100'>{element.message}</p>
102
                                                        </div>
103
                                                        <span>{element.date}</span>
104
                                                    </div>
105
                                                    {
106
                                                        !isLeft  && (
107
                                                            <div className="messg-usr-img">
108
                                                                <img
109
                                                                    src={element.sender_image}
110
                                                                    onClick={() => window.location.href = element.sender_profile}
111
                                                                    className="cursor-pointer"
112
                                                                    alt={element.sender_name}
113
                                                                />
114
                                                            </div>
115
                                                        )
116
                                                    }
117
                                                </div>
118
                                            )
119
                                        })
120
                                    )
121
                                }
122
                            </div>
123
                            <div className="message-send-area">
124
                                <form id="form-send-message" name="form-send-message"
125
                                    onSubmit={e => {
126
                                        e.preventDefault()
127
                                        onSend(text)
128
                                        setText('')
129
                                    }}
130
                                >
131
                                    <div className="mf-field">
132
                                        <input
133
                                            type="text"
134
                                            name="message"
135
                                            id="message"
136
                                            value={text}
137
                                            placeholder={backendVars.labelWriteMessage}
138
                                            onChange={e => {
139
                                                setText(e.target.value || '')
140
                                            }}
141
                                        />
142
                                        <button type="submit">{backendVars.labelSend}</button>
143
                                    </div>
144
                                </form>
145
                            </div>
146
                        </React.Fragment>
147
                }
148
            </div>
149
        </React.Fragment>
150
    )
151
}