/* eslint-disable @typescript-eslint/no-unused-vars */ import React, { useContext } from 'react' import { ChatCompletionRole, MessageStatus, ThreadMessage } from '@janhq/core' import hljs from 'highlight.js' import { MoreVertical } from 'lucide-react' import { Marked } from 'marked' import { markedHighlight } from 'marked-highlight' import { twMerge } from 'tailwind-merge' import LogoMark from '@/containers/Brand/Logo/Mark' import BubbleLoader from '@/containers/Loader/Bubble' import { FeatureToggleContext } from '@/context/FeatureToggle' import { displayDate } from '@/utils/datetime' import MessageToolbar from '../MessageToolbar' 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) { // Make a copy paste return `
          ${
            escaped ? code : encodeURIComponent(code)
          }
          
` }, }, } ) const SimpleTextMessage: React.FC = (props) => { const { experimentalFeatureEnabed } = useContext(FeatureToggleContext) const parsedText = marked.parse(props.content ?? '') const isUser = props.role === ChatCompletionRole.User const isSystem = props.role === ChatCompletionRole.System return (
{!isUser && !isSystem && }
{props.role}

{displayDate(props.createdAt)}

{experimentalFeatureEnabed && (
)}
{props.status === MessageStatus.Pending && (!props.content || props.content === '') ? ( ) : ( <>
)}
) } export default React.memo(SimpleTextMessage)