import { RenderMessageProps } from "../props"; import { UserMessage as DefaultUserMessage } from "./UserMessage"; import { AssistantMessage as DefaultAssistantMessage } from "./AssistantMessage"; import { ImageRenderer as DefaultImageRenderer } from "./ImageRenderer"; export function RenderMessage({ UserMessage = DefaultUserMessage, AssistantMessage = DefaultAssistantMessage, ImageRenderer = DefaultImageRenderer, ...props }: RenderMessageProps) { const { message, messages, inProgress, index, isCurrentMessage, onRegenerate, onCopy, onThumbsUp, onThumbsDown, messageFeedback, markdownTagRenderers, } = props; switch (message.role) { case "user": return ( ); case "assistant": return ( onRegenerate?.(message.id)} onCopy={onCopy} onThumbsUp={onThumbsUp} onThumbsDown={onThumbsDown} feedback={messageFeedback?.[message.id] || null} markdownTagRenderers={markdownTagRenderers} ImageRenderer={ImageRenderer} /> ); default: return null; } }