Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

import React from 'react'
import styles from '../../mobile-chat/mobile-chat/chat/messages/messages.module.scss'

const MessageTemplate = ({ message }) => {

    const isRightPosition = message.side === "right";

    const messageRenderer = (msg) => {

        const {
            sender_name,
            sender_image,
            sender_profile,
            receiver_name,
            receiver_image,
            receiver_profile,
            side,
            message,
            type,
            filename,
            date
        } = msg;

        switch (type) {
            case "text":
                return (
                    <div className={`main-message-box ${isRightPosition ? 'ta-right' : ''}`} key={message}>
                        <div className="messg-usr-img">
                            <a href={sender_profile}>
                                <img
                                    src={sender_image}
                                    className="cursor-pointer"
                                    alt={`${sender_name} profile image`}
                                />
                            </a>
                        </div>
                        <div className={`message-dt mw-30 border-radius ${isRightPosition ? 'bg-light-gray' : 'bg-custom-gray'} `}>
                            <div className="message-inner-dt">
                                <p className={`w-100 border-none bg-transparent ${'text-' + side}`}>
                                    {message}
                                </p>
                            </div>
                            <span className="p-1">{date}</span>
                        </div>
                    </div>
                );
            case "image":
                return (
                    <div className={`main-message-box ${isRightPosition ? 'ta-right' : ''}`} key={message}>
                        <div className="messg-usr-img">
                            <a href={sender_profile}>
                                <img
                                    src={sender_image}
                                    className="cursor-pointer"
                                    alt={`${sender_name} profile image`}
                                />
                            </a>
                        </div>
                        <div className={`message-dt mw-30 border-radius ${isRightPosition ? 'bg-light-gray' : 'bg-custom-gray'} `}>
                            <div className="message-inner-dt">
                                <img
                                    src={filename}
                                    alt={`${sender_name} message image`}
                                />
                            </div>
                            <span className="p-1">{date}</span>
                        </div>
                    </div>
                );
            case "video":
                return (
                    <div
                        className={`main-message-box ${isRightPosition ? 'ta-right' : ''}`}
                        key={message}
                    >
                        <div className="messg-usr-img">
                            <a href={sender_profile}>
                                <img
                                    src={sender_image}
                                    className="cursor-pointer"
                                    alt={sender_name}
                                />
                            </a>
                        </div>
                        <div className={`message-dt mw-30 border-radius ${isRightPosition ? 'bg-light-gray' : 'bg-custom-gray'} `}>
                            <div className="message-inner-dt">
                                <video src={filename} />
                            </div>
                            <span className="p-1">{date}</span>
                        </div>
                    </div>
                );
            case "document":
                return (
                    <div
                        className={`main-message-box ${isRightPosition ? 'ta-right' : ''}`}
                        key={message}
                    >
                        <div className="messg-usr-img">
                            <a href={sender_profile}>
                                <img
                                    src={sender_image}
                                    className="cursor-pointer"
                                    alt={sender_name}
                                />
                            </a>
                        </div>
                        <div className={`message-dt mw-30 border-radius ${isRightPosition ? 'bg-light-gray' : 'bg-custom-gray'} `}>
                            <div className="message-inner-dt">
                                <a href={filename} target="_blank" className={styles.downloadBtn}>
                                    Abrir documento
                                    <i className="fa ti-arrow-circle-down" />
                                </a>
                            </div>
                            <span className="p-1">{date}</span>
                        </div>
                    </div>
                );
            default:
                break;
        }
    };

    return messageRenderer(message)

}
export default MessageTemplate