Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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