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