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);