Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6010 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5334 stevensc 1
import React, { useState } from 'react'
2
import parse from 'html-react-parser'
3
import LikeButton from '../../chat/chat/personal-chat/like-button/LikeButton'
4
 
6753 stevensc 5
const Message = ({ message }) => {
5334 stevensc 6
  const senderName = (message) => {
7
    if (message.type === 'group' && !message.u === 1) return message.user_name
8
  }
9
 
10
  const messagesContent = {
11
    text: <p>{parse(emojione.shortnameToImage(message.m))}</p>,
5336 stevensc 12
    image: <img src={message.m} alt="chat_image" />,
5923 stevensc 13
    video: <video src={message.m} preload="none" controls />,
14
    document: (
15
      <img
16
        className="pdf"
17
        src="/storage/type/default/filename/pdf.png"
18
        alt="pdf"
19
      />
20
    ),
5334 stevensc 21
  }
22
 
23
  return (
5926 stevensc 24
    <div
25
      className={`message_container ${message.u === 1 ? 'sent' : 'received'}`}
26
    >
5925 stevensc 27
      <span className="user_name">{senderName(message)}</span>
5926 stevensc 28
      <div className={`message ${message.u === 1 ? 'sent' : 'received'}`}>
5923 stevensc 29
        {messagesContent[message.mtype]}
5926 stevensc 30
        <label className="message_time">
5923 stevensc 31
          {!message.not_received && (
32
            <i
33
              className="fa fa-check"
34
              style={message.seen ? { color: 'blue' } : { color: 'gray' }}
5334 stevensc 35
            />
5923 stevensc 36
          )}
37
          {message.time}
38
        </label>
39
      </div>
40
    </div>
5334 stevensc 41
  )
42
}
43
 
44
const Reactions = ({
45
  message = {},
46
  onLike = () => false,
47
  onResponse = () => false,
5923 stevensc 48
  onClipboard = () => false,
5334 stevensc 49
}) => {
50
  const [isShow, setIsShow] = useState(false)
51
 
52
  return (
5923 stevensc 53
    <>
54
      <i className="la la-ellipsis-v icon" onClick={() => setIsShow(!isShow)} />
55
      {isShow && (
56
        <div className="display-reactions">
57
          <LikeButton onClick={onLike} />
58
          <button onClick={() => onResponse(message)}>
59
            <i className="fa fa-reply" />
60
          </button>
61
          <button onClick={() => onClipboard(message)}>
62
            <i className="fa fa-copy" />
63
          </button>
64
        </div>
65
      )}
66
    </>
5334 stevensc 67
  )
68
}
69
 
70
Message.Reactions = Reactions
71
 
72
export default Message