import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; import { cn } from "@/lib/utils"; import { Message } from "@/hooks/use-chat"; import { Bot, User } from "lucide-react"; import { markdownRenderers } from "./markdown-renderers"; import { MessageActions } from "./message-actions"; export function ChatMessage({ message }: { message: Message }) { const isUser = message.role === 'user'; return (
{isUser ? : }
{(() => { let content = message.content || ''; // Remove metadata tags content = content.replace(/[\s\S]*?<\/metadata>/gi, '').trim(); // Also remove common prefixes if they appear at the end const prefixes = [ 'Bloco oculto de metadados:', 'Metadata:', 'Metadados:', 'Hidden metadata block:', 'JSON metadata:', '---' ]; for (const prefix of prefixes) { const regex = new RegExp(`${prefix}\\s*$`, 'i'); if (regex.test(content)) { content = content.replace(regex, '').trim(); } } return content || message.content; })()}
{/* Actions Toolbar - Absolute positioned or flex end */} {!isUser && (
)}
); }