anycoder-728b0a8c / components /MessageBubble.jsx
akhaliq's picture
akhaliq HF Staff
Upload components/MessageBubble.jsx with huggingface_hub
d870750 verified
raw
history blame
1.2 kB
import Image from 'next/image'
export default function MessageBubble({ message, isLast }) {
const isUser = message.role === 'user'
const hasImage = Array.isArray(message.content) &&
message.content.some(item => item.type === 'image_url')
const textContent = Array.isArray(message.content)
? message.content.find(item => item.type === 'text')?.text || ''
: message.content
const imageContent = Array.isArray(message.content)
? message.content.find(item => item.type === 'image_url')
: null
return (
<div className={`flex ${isUser ? 'justify-end' : 'justify-start'} mb-4`}>
<div className={`message-bubble ${isUser ? 'user-bubble' : 'assistant-bubble'} ${!textContent && imageContent ? 'p-0 overflow-hidden' : ''}`}>
{imageContent && (
<div className="mb-2">
<Image
src={imageContent.image_url.url}
alt="Uploaded image"
width={200}
height={200}
className="rounded-lg object-cover"
/>
</div>
)}
{textContent && (
<p className="whitespace-pre-wrap">{textContent}</p>
)}
</div>
</div>
)
}