import React from 'react'; import { __ } from '@wordpress/i18n'; import ProductCarousel from '../ProductCarousel'; import OrderStatus from '../OrderStatus'; import ContactForm from '../features/ContactForm'; import formatMessageTimestamp from '../utils/formatMessageTimestamp'; import Composer from './Composer'; import ViewHeader from './ViewHeader'; const ChatView = ({ brand, headerActions, onBack, messages, isLoadingMessages, greeting, suggestedQuestions, onQuestionClick, conversationId, onOrderAction, messagesContainerRef, messagesEndRef, inputValue, onInputChange, onSend, placeholder, readOnly, isLoading, }) => { const questions = (suggestedQuestions || []).filter((q) => typeof q === 'string' && q.trim() !== ''); const isFresh = messages.length <= 1 && !isLoadingMessages; const avatar = ( {brand.logo ? : {(brand.name || 'A').charAt(0).toUpperCase()}} ); return (
{isFresh ? ( <>
{greeting}
{questions.length > 0 && (
{questions.map((question, index) => ( ))}
)} ) : ( <> {isLoadingMessages && messages.length === 0 && (
{__( 'Loading messages...', 'aisk-ai-chat' )}
)} {messages.map((message, index) => (
{!message.isOptimistic && (
{formatMessageTimestamp(message.timestamp)}
)}
{message.products && Array.isArray(message.products) && message.products.length > 0 ? ( ) : null} {message.order?.order_info && ( )} {(message.type === 'bot' || message.type === 'contact_support') && message.support === true && message.response_type === 'form' && ( )}
))} )}
); }; export default ChatView;