Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15855 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React from "react";
import parse from "html-react-parser";

import styles from "./messages.module.scss";

const Message = ({ message }) => {
  const { m, mtype, time, u, user_name } = message;

  const messageContent = {
    text: (
      <div className={styles.messageContainer}>
        {u !== 1 && <span className={styles.userName}>{user_name}</span>}
        <div>{parse(emojione.shortnameToImage(m))}</div>
      </div>
    ),
    image: (
      <>
        <div className={styles.messageContainer}>
          {u !== 1 && <span className={styles.userName}>{user_name}</span>}
          <img className={styles.chatImg} src={m} alt="chat_img" />
        </div>
        <a href={m} target="_blank" className={styles.downloadBtn}>
          <i className="fa ti-arrow-circle-down"></i>
        </a>
      </>
    ),
    video: (
      <>
        <div className={styles.messageContainer}>
          {u !== 1 && <span className={styles.userName}>{user_name}</span>}
          <video
            className={styles.chatImg}
            src={m}
            preload="none"
            controls
          ></video>
        </div>
        <a href={m} target="_blank" className={styles.downloadBtn}>
          <i className="fa ti-arrow-circle-down"></i>
        </a>
      </>
    ),
    document: (
      <>
        <div className={styles.messageContainer}>
          {u !== 1 && <span className={styles.userName}>{user_name}</span>}
          <img
            className={styles.pdfImage}
            src="/storage/type/default/filename/pdf.png"
            alt="pdf"
          />
        </div>
        <a href={m} target="_blank" className={styles.downloadBtn}>
          <i className="fa ti-arrow-circle-down"></i>
        </a>
      </>
    ),
  };

  return (
    <div
      className={`${styles.message} ${
        message.u === 1 ? styles.message_sent : styles.message_received
      }`}
    >
      {messageContent[mtype]}
      <span>{time}</span>
    </div>
  );
};

export default Message;