Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1189 | Rev 1192 | 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);
1 www 37
  const senderName = (message) => {
38
    if (message.type === "group") {
39
      return message.u === 1 ? "" : message.user_name;
40
    }
41
  };
1191 stevensc 42
 
1 www 43
  switch (message.mtype) {
44
    case "text":
45
      return (
46
        <li
47
          key={message.id}
1189 stevensc 48
          className={`clearfix ${message.u === 1 ? "odd" : ""
49
            } m-t-10 conversers${message.u}`}
1 www 50
        >
51
          <div
52
            className="conversation-text"
53
            data-toggle="tooltip"
54
            data-placement="left"
55
            data-html="true"
56
          >
57
            <div className="ctext-wrap">
58
              {senderName(message)}
59
              <p className="">
60
                {parse(emojione.shortnameToImage(message.m))}
61
                <br />
62
                <i className="text-right">{message.time}</i>
63
              </p>
64
            </div>
1191 stevensc 65
            <i
66
              className="la la-ellipsis-v icon"
67
              style={{ position: 'relative' }}
68
              onClick={() => setIsShow(!isShow)}
69
            >
70
              {
71
                isShow
72
                &&
73
                <div
74
                  style={{ position: "absolute", top: '-100%', left: '0', width: '2rem', height: '2rem', display: 'grid', placeItems: 'center' }}
75
                >
76
                  <LikeButton />
77
                </div>
78
              }
79
            </i>
1 www 80
          </div>
81
        </li>
82
      );
83
    case "image":
84
      return (
85
        <li
86
          key={message.id}
1189 stevensc 87
          className={`clearfix ${message.u === 1 ? "odd" : ""
88
            } m-t-10 conversers${message.u}`}
1 www 89
        >
90
          <div
91
            className="conversation-text"
92
            data-toggle="tooltip"
93
            data-placement="left"
94
            data-html="true"
95
          >
96
            <div className="ctext-wrap">
97
              {senderName(message)}
98
              <StyledChatImgMessage>
99
                <div className="chat_image_container">
100
                  <img src={message.m} alt="chat_image" />
101
                </div>
102
                {message.u === 1 ? (
103
                  ""
104
                ) : (
105
                  <a
106
                    href={message.m}
107
                    target="_blank"
108
                    className="chat_image__download_button"
109
                  >
110
                    <i className="fa ti-arrow-circle-down"></i>
111
                  </a>
112
                )}
113
              </StyledChatImgMessage>
114
              <br />
115
              <i className="text-right">{message.time}</i>
116
            </div>
117
          </div>
118
        </li>
119
      );
120
    case "video":
121
      return (
122
        <li
123
          key={message.id}
1189 stevensc 124
          className={`clearfix ${message.u === 1 ? "odd" : ""
125
            } m-t-10 conversers${message.u}`}
1 www 126
        >
127
          <div
128
            className="conversation-text"
129
            data-toggle="tooltip"
130
            data-placement="left"
131
            data-html="true"
132
          >
133
            <div className="ctext-wrap">
134
              {senderName(message)}
135
              <StyledChatImgMessage>
136
                <div className="chat_image_container">
137
                  <video src={message.m} preload="none" controls></video>
138
                </div>
139
                {message.u === 1 ? (
140
                  ""
141
                ) : (
142
                  <a
143
                    href={message.m}
144
                    target="_blank"
145
                    className="chat_image__download_button"
146
                  >
147
                    <i className="fa ti-arrow-circle-down"></i>
148
                  </a>
149
                )}
150
              </StyledChatImgMessage>
151
              <br />
152
              <i className="text-right">{message.time}</i>
153
            </div>
154
          </div>
155
        </li>
156
      );
157
    case "document":
158
      return (
159
        <li
160
          key={message.id}
1189 stevensc 161
          className={`clearfix ${message.u === 1 ? "odd" : ""
162
            } m-t-10 conversers${message.u}`}
1 www 163
        >
164
          <div
165
            className="conversation-text"
166
            data-toggle="tooltip"
167
            data-placement="left"
168
            data-html="true"
169
          >
170
            <div className="ctext-wrap">
171
              {senderName(message)}
172
              <StyledChatImgMessage>
173
                <div className="chat_image_container">
174
                  <img
175
                    className="pdf"
176
                    src="/storage/type/default/filename/pdf.png"
177
                    alt="pdf"
178
                  />
179
                </div>
180
                {message.u === 1 ? (
181
                  ""
182
                ) : (
183
                  <a
184
                    href={message.m}
185
                    target="_blank"
186
                    className="chat_image__download_button"
187
                  >
188
                    <i className="fa ti-arrow-circle-down"></i>
189
                  </a>
190
                )}
191
              </StyledChatImgMessage>
192
              <br />
193
              <i className="text-right">{message.time}</i>
194
            </div>
195
          </div>
196
        </li>
197
      );
198
    default:
199
      return (
200
        <li
201
          key={message.id}
1189 stevensc 202
          className={`clearfix ${message.u === 1 ? "odd" : ""
203
            } m-t-10 conversers${message.u}`}
1 www 204
        >
205
          <div
206
            className="conversation-text"
207
            data-toggle="tooltip"
208
            data-placement="left"
209
            data-html="true"
210
          >
211
            <div className="ctext-wrap">
212
              {senderName(message)}
213
              <p className="">
214
                {message.mtype}
215
                <br />
216
                <i className="text-right">{message.time}</i>
217
              </p>
218
            </div>
219
          </div>
220
        </li>
221
      );
222
  }
223
};
224
 
225
export default MessageTemplate;