import { useEffect, useRef } from "react"; import { MessageBubble, type Message } from "./MessageBubble"; export function ChatThread({ messages, onCitation, renderExtra, empty, }: { messages: Message[]; onCitation?: (message: Message, index: number) => void; renderExtra?: (message: Message) => React.ReactNode; empty?: React.ReactNode; }) { const endRef = useRef(null); useEffect(() => { endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" }); }, [messages]); if (messages.length === 0 && empty) { return
{empty}
; } return (
{messages.map((m) => ( onCitation?.(m, idx)}> {renderExtra?.(m)} ))}
); }