import { useEffect } from "react";
import { motion } from "motion/react";
import { Bot } from "lucide-react";
import type { Message } from "./types";
import TypingIndicator from "./TypingIndicator";
import FeedbackWidget from "./FeedbackWidget";
import MarkdownRenderer from "./renderers/MarkdownRenderer";
interface MessageBubbleProps {
message: Message;
isStreamingPlaceholder?: boolean;
}
export default function MessageBubble({ message, isStreamingPlaceholder }: MessageBubbleProps) {
useEffect(() => {
if (message.role === "assistant") {
// console.log(
// `[MessageBubble] id=...${message.id.slice(-6)} isStreamingPlaceholder=${isStreamingPlaceholder} contentLen=${message.content.length}`
// );
}
}, [isStreamingPlaceholder, message.id, message.role, message.content.length]);
if (message.role === "user") {
return (
{message.content}
);
}
// Show TypingIndicator when the assistant placeholder has no content yet
if (isStreamingPlaceholder && message.content === "") {
return ;
}
return (