import React from 'react' import { displayDate } from '@/_utils/datetime' import Image from 'next/image' import { MessageSenderType } from '@/_models/ChatMessage' import LoadingIndicator from '../LoadingIndicator' import { Marked } from 'marked' import { markedHighlight } from 'marked-highlight' import hljs from 'highlight.js' type Props = { avatarUrl: string senderName: string createdAt: number senderType: MessageSenderType text?: string } const marked = new Marked( markedHighlight({ langPrefix: 'hljs', highlight(code, lang) { if (lang === undefined || lang === '') { return hljs.highlightAuto(code).value } return hljs.highlight(code, { language: lang }).value }, }), { renderer: { code(code, lang, escaped) { return `
${escaped ? code : escape(code)}
` }, }, } ) const SimpleTextMessage: React.FC = ({ senderName, createdAt, senderType, avatarUrl = '', text = '', }) => { const backgroundColor = senderType === MessageSenderType.User ? '' : 'bg-gray-100' const parsedText = marked.parse(text) return (
{senderName}
{displayDate(createdAt)}
{text === '' ? ( ) : ( )}
) } export default React.memo(SimpleTextMessage)