"use client"; import { useEffect, useRef } from "react"; import { useChatContext } from "./chat-provider"; import { EmailCapture } from "./components/email-capture"; import { ErrorMessage } from "./components/error-message"; import { MessageBubble } from "./components/message-bubble"; import { TypingIndicator } from "./components/typing-indicator"; import { WelcomeMessage } from "./components/welcome-message"; export function ChatMessages() { const { messages, isTyping, showEmailCapture, captureEmail, dismissEmailCapture, config, retryLastMessage, } = useChatContext(); const scrollRef = useRef(null); // Auto-scroll to bottom on new messages useEffect(() => { if (scrollRef.current) { scrollRef.current.scrollTop = scrollRef.current.scrollHeight; } }, [messages, isTyping]); return (
{messages.map((message) => message.isError ? ( ) : ( ), )} {isTyping && } {showEmailCapture && ( )}
); }