'use client' import { memo, type RefObject } from 'react' import { Button } from '@sim/emcn' import { ArrowDown } from 'lucide-react' import { type ChatMessage, ClientChatMessage, } from '@/app/(interfaces)/chat/components/message/message' interface ChatMessageContainerProps { messages: ChatMessage[] isLoading: boolean showScrollButton: boolean messagesContainerRef: RefObject messagesEndRef: RefObject scrollToBottom: () => void scrollToMessage?: (messageId: string) => void chatConfig: { description?: string } | null } export const ChatMessageContainer = memo(function ChatMessageContainer({ messages, isLoading, showScrollButton, messagesContainerRef, messagesEndRef, scrollToBottom, scrollToMessage, chatConfig, }: ChatMessageContainerProps) { return (
{/* Scrollable Messages Area */}
{messages.length === 0 ? (

How can I help you today?

{chatConfig?.description || 'Ask me anything.'}

) : ( messages.map((message) => ) )} {/* Loading indicator (shows only when executing) */} {isLoading && (
)} {/* End of messages marker for scrolling */}
{/* Scroll to bottom button - appears when user scrolls up */} {showScrollButton && (
)}
) })