import { MarkdownRenderer } from '../markdown/MarkdownRenderer' import { MessageActionBar } from './MessageActionBar' import { InlineImageGallery } from './InlineImageGallery' type Props = { content: string isStreaming?: boolean } export function AssistantMessage({ content, isStreaming }: Props) { if (!content.trim()) return null const documentLayout = shouldUseDocumentLayout(content) return (
{!isStreaming && } {isStreaming && ( )}
) } function shouldUseDocumentLayout(content: string) { const normalized = content.trim() if (!normalized) return false if (/```/.test(normalized)) return true if (/^\s{0,3}(#{1,6}\s|[-*+]\s|\d+\.\s|>\s|\|.+\|)/m.test(normalized)) return true const paragraphs = normalized .split(/\n\s*\n/) .map((chunk) => chunk.trim()) .filter(Boolean) return paragraphs.length >= 2 || normalized.split('\n').filter((line) => line.trim()).length >= 8 }