Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1189 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
import React from "react";
2
import parse from "html-react-parser";
3
import styled from "styled-components";
4
 
5
const StyledChatImgMessage = styled.div`
6
  display: flex;
7
  justify-content: center;
8
  align-items: center;
9
  position: initial !important;
10
  transform: initial !important;
11
  .chat_image_container {
12
    video {
13
      width: 150px;
14
      outline: none;
15
    }
16
    img {
17
      width: 150px;
18
      max-height: 200px;
19
    }
20
    .pdf {
21
      width: 40px;
22
    }
23
  }
24
  .chat_image__download_button {
25
    margin-left: 0.5rem;
26
    .fa {
27
      font-size: 1.5rem;
28
      color: black;
29
    }
30
  }
31
`;
32
 
33
const MessageTemplate = ({ message }) => {
34
  const senderName = (message) => {
35
    if (message.type === "group") {
36
      return message.u === 1 ? "" : message.user_name;
37
    }
38
  };
39
  switch (message.mtype) {
40
    case "text":
41
      return (
42
        <li
43
          key={message.id}
44
          className={`clearfix ${
45
            message.u === 1 ? "odd" : ""
46
          } m-t-10 conversers${message.u}`}
47
        >
48
          <div
49
            className="conversation-text"
50
            data-toggle="tooltip"
51
            data-placement="left"
52
            data-html="true"
53
          >
54
            <div className="ctext-wrap">
55
              {senderName(message)}
56
              <p className="">
57
                {parse(emojione.shortnameToImage(message.m))}
58
                <br />
59
                <i className="text-right">{message.time}</i>
60
              </p>
61
            </div>
62
          </div>
63
        </li>
64
      );
65
    case "image":
66
      return (
67
        <li
68
          key={message.id}
69
          className={`clearfix ${
70
            message.u === 1 ? "odd" : ""
71
          } m-t-10 conversers${message.u}`}
72
        >
73
          <div
74
            className="conversation-text"
75
            data-toggle="tooltip"
76
            data-placement="left"
77
            data-html="true"
78
          >
79
            <div className="ctext-wrap">
80
              {senderName(message)}
81
              <StyledChatImgMessage>
82
                <div className="chat_image_container">
83
                  <img src={message.m} alt="chat_image" />
84
                </div>
85
                {message.u === 1 ? (
86
                  ""
87
                ) : (
88
                  <a
89
                    href={message.m}
90
                    target="_blank"
91
                    className="chat_image__download_button"
92
                  >
93
                    <i className="fa ti-arrow-circle-down"></i>
94
                  </a>
95
                )}
96
              </StyledChatImgMessage>
97
              <br />
98
              <i className="text-right">{message.time}</i>
99
            </div>
100
          </div>
101
        </li>
102
      );
103
    case "video":
104
      return (
105
        <li
106
          key={message.id}
107
          className={`clearfix ${
108
            message.u === 1 ? "odd" : ""
109
          } m-t-10 conversers${message.u}`}
110
        >
111
          <div
112
            className="conversation-text"
113
            data-toggle="tooltip"
114
            data-placement="left"
115
            data-html="true"
116
          >
117
            <div className="ctext-wrap">
118
              {senderName(message)}
119
              <StyledChatImgMessage>
120
                <div className="chat_image_container">
121
                  <video src={message.m} preload="none" controls></video>
122
                </div>
123
                {message.u === 1 ? (
124
                  ""
125
                ) : (
126
                  <a
127
                    href={message.m}
128
                    target="_blank"
129
                    className="chat_image__download_button"
130
                  >
131
                    <i className="fa ti-arrow-circle-down"></i>
132
                  </a>
133
                )}
134
              </StyledChatImgMessage>
135
              <br />
136
              <i className="text-right">{message.time}</i>
137
            </div>
138
          </div>
139
        </li>
140
      );
141
    case "document":
142
      return (
143
        <li
144
          key={message.id}
145
          className={`clearfix ${
146
            message.u === 1 ? "odd" : ""
147
          } m-t-10 conversers${message.u}`}
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
                  <img
160
                    className="pdf"
161
                    src="/storage/type/default/filename/pdf.png"
162
                    alt="pdf"
163
                  />
164
                </div>
165
                {message.u === 1 ? (
166
                  ""
167
                ) : (
168
                  <a
169
                    href={message.m}
170
                    target="_blank"
171
                    className="chat_image__download_button"
172
                  >
173
                    <i className="fa ti-arrow-circle-down"></i>
174
                  </a>
175
                )}
176
              </StyledChatImgMessage>
177
              <br />
178
              <i className="text-right">{message.time}</i>
179
            </div>
180
          </div>
181
        </li>
182
      );
183
    default:
184
      return (
185
        <li
186
          key={message.id}
187
          className={`clearfix ${
188
            message.u === 1 ? "odd" : ""
189
          } m-t-10 conversers${message.u}`}
190
        >
191
          <div
192
            className="conversation-text"
193
            data-toggle="tooltip"
194
            data-placement="left"
195
            data-html="true"
196
          >
197
            <div className="ctext-wrap">
198
              {senderName(message)}
199
              <p className="">
200
                {message.mtype}
201
                <br />
202
                <i className="text-right">{message.time}</i>
203
              </p>
204
            </div>
205
          </div>
206
        </li>
207
      );
208
  }
209
};
210
 
211
export default MessageTemplate;