Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
1191 stevensc 1
import React, { useState } from "react";
1 www 2
import parse from "html-react-parser";
3
import styled from "styled-components";
1191 stevensc 4
import LikeButton from "../like-button/LikeButton";
1 www 5
 
6
const StyledChatImgMessage = styled.div`
7
  display: flex;
8
  justify-content: center;
9
  align-items: center;
10
  position: initial !important;
11
  transform: initial !important;
12
  .chat_image_container {
13
    video {
14
      width: 150px;
15
      outline: none;
16
    }
17
    img {
18
      width: 150px;
19
      max-height: 200px;
20
    }
21
    .pdf {
22
      width: 40px;
23
    }
24
  }
25
  .chat_image__download_button {
26
    margin-left: 0.5rem;
27
    .fa {
28
      font-size: 1.5rem;
29
      color: black;
30
    }
31
  }
32
`;
33
 
34
const MessageTemplate = ({ message }) => {
1191 stevensc 35
 
36
  const [isShow, setIsShow] = useState(false);
1198 stevensc 37
  const [isLiked, setIsLiked] = useState(false);
38
 
1 www 39
  const senderName = (message) => {
40
    if (message.type === "group") {
41
      return message.u === 1 ? "" : message.user_name;
42
    }
43
  };
1191 stevensc 44
 
1198 stevensc 45
  const handleLike = () => {
46
    setIsLiked(!isLiked)
1199 stevensc 47
    setIsShow(!isShow)
1198 stevensc 48
  }
49
 
1 www 50
  switch (message.mtype) {
51
    case "text":
52
      return (
53
        <li
54
          key={message.id}
1189 stevensc 55
          className={`clearfix ${message.u === 1 ? "odd" : ""
56
            } m-t-10 conversers${message.u}`}
1 www 57
        >
58
          <div
59
            className="conversation-text"
60
            data-toggle="tooltip"
61
            data-placement="left"
62
            data-html="true"
63
          >
64
            <div className="ctext-wrap">
65
              {senderName(message)}
66
              <p className="">
67
                {parse(emojione.shortnameToImage(message.m))}
68
                <br />
69
                <i className="text-right">{message.time}</i>
70
              </p>
1198 stevensc 71
              {
72
                isLiked
73
                &&
74
                <i
75
                  className="fas fa-heart"
1200 stevensc 76
                  style={{
77
                    color: '#0961bf',
78
                    position: 'absolute',
79
                    top: '87%',
80
                    left: '85%'
81
                  }}
1198 stevensc 82
                />
83
              }
1 www 84
            </div>
1191 stevensc 85
            <i
86
              className="la la-ellipsis-v icon"
87
              style={{ position: 'relative' }}
88
              onClick={() => setIsShow(!isShow)}
89
            >
90
            </i>
1197 stevensc 91
            {
92
              isShow
93
              &&
94
              <div
95
                className="display-reactions"
96
              >
1198 stevensc 97
                <LikeButton
98
                  onClick={handleLike}
99
                />
1197 stevensc 100
              </div>
101
            }
1 www 102
          </div>
103
        </li>
104
      );
105
    case "image":
106
      return (
107
        <li
108
          key={message.id}
1189 stevensc 109
          className={`clearfix ${message.u === 1 ? "odd" : ""
110
            } m-t-10 conversers${message.u}`}
1 www 111
        >
112
          <div
113
            className="conversation-text"
114
            data-toggle="tooltip"
115
            data-placement="left"
116
            data-html="true"
117
          >
118
            <div className="ctext-wrap">
119
              {senderName(message)}
120
              <StyledChatImgMessage>
121
                <div className="chat_image_container">
122
                  <img src={message.m} alt="chat_image" />
123
                </div>
124
                {message.u === 1 ? (
125
                  ""
126
                ) : (
127
                  <a
128
                    href={message.m}
129
                    target="_blank"
130
                    className="chat_image__download_button"
131
                  >
132
                    <i className="fa ti-arrow-circle-down"></i>
133
                  </a>
134
                )}
135
              </StyledChatImgMessage>
136
              <br />
137
              <i className="text-right">{message.time}</i>
138
            </div>
139
          </div>
140
        </li>
141
      );
142
    case "video":
143
      return (
144
        <li
145
          key={message.id}
1189 stevensc 146
          className={`clearfix ${message.u === 1 ? "odd" : ""
147
            } m-t-10 conversers${message.u}`}
1 www 148
        >
149
          <div
150
            className="conversation-text"
151
            data-toggle="tooltip"
152
            data-placement="left"
153
            data-html="true"
154
          >
155
            <div className="ctext-wrap">
156
              {senderName(message)}
157
              <StyledChatImgMessage>
158
                <div className="chat_image_container">
159
                  <video src={message.m} preload="none" controls></video>
160
                </div>
161
                {message.u === 1 ? (
162
                  ""
163
                ) : (
164
                  <a
165
                    href={message.m}
166
                    target="_blank"
167
                    className="chat_image__download_button"
168
                  >
169
                    <i className="fa ti-arrow-circle-down"></i>
170
                  </a>
171
                )}
172
              </StyledChatImgMessage>
173
              <br />
174
              <i className="text-right">{message.time}</i>
175
            </div>
176
          </div>
177
        </li>
178
      );
179
    case "document":
180
      return (
181
        <li
182
          key={message.id}
1189 stevensc 183
          className={`clearfix ${message.u === 1 ? "odd" : ""
184
            } m-t-10 conversers${message.u}`}
1 www 185
        >
186
          <div
187
            className="conversation-text"
188
            data-toggle="tooltip"
189
            data-placement="left"
190
            data-html="true"
191
          >
192
            <div className="ctext-wrap">
193
              {senderName(message)}
194
              <StyledChatImgMessage>
195
                <div className="chat_image_container">
196
                  <img
197
                    className="pdf"
198
                    src="/storage/type/default/filename/pdf.png"
199
                    alt="pdf"
200
                  />
201
                </div>
202
                {message.u === 1 ? (
203
                  ""
204
                ) : (
205
                  <a
206
                    href={message.m}
207
                    target="_blank"
208
                    className="chat_image__download_button"
209
                  >
210
                    <i className="fa ti-arrow-circle-down"></i>
211
                  </a>
212
                )}
213
              </StyledChatImgMessage>
214
              <br />
215
              <i className="text-right">{message.time}</i>
216
            </div>
217
          </div>
218
        </li>
219
      );
220
    default:
221
      return (
222
        <li
223
          key={message.id}
1189 stevensc 224
          className={`clearfix ${message.u === 1 ? "odd" : ""
225
            } m-t-10 conversers${message.u}`}
1 www 226
        >
227
          <div
228
            className="conversation-text"
229
            data-toggle="tooltip"
230
            data-placement="left"
231
            data-html="true"
232
          >
233
            <div className="ctext-wrap">
234
              {senderName(message)}
235
              <p className="">
236
                {message.mtype}
237
                <br />
238
                <i className="text-right">{message.time}</i>
239
              </p>
240
            </div>
241
          </div>
242
        </li>
243
      );
244
  }
245
};
246
 
247
export default MessageTemplate;