akhaliq HF Staff commited on
Commit
d870750
·
verified ·
1 Parent(s): 38af7f4

Upload components/MessageBubble.jsx with huggingface_hub

Browse files
Files changed (1) hide show
  1. components/MessageBubble.jsx +36 -0
components/MessageBubble.jsx ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Image from 'next/image'
2
+
3
+ export default function MessageBubble({ message, isLast }) {
4
+ const isUser = message.role === 'user'
5
+ const hasImage = Array.isArray(message.content) &&
6
+ message.content.some(item => item.type === 'image_url')
7
+
8
+ const textContent = Array.isArray(message.content)
9
+ ? message.content.find(item => item.type === 'text')?.text || ''
10
+ : message.content
11
+
12
+ const imageContent = Array.isArray(message.content)
13
+ ? message.content.find(item => item.type === 'image_url')
14
+ : null
15
+
16
+ return (
17
+ <div className={`flex ${isUser ? 'justify-end' : 'justify-start'} mb-4`}>
18
+ <div className={`message-bubble ${isUser ? 'user-bubble' : 'assistant-bubble'} ${!textContent && imageContent ? 'p-0 overflow-hidden' : ''}`}>
19
+ {imageContent && (
20
+ <div className="mb-2">
21
+ <Image
22
+ src={imageContent.image_url.url}
23
+ alt="Uploaded image"
24
+ width={200}
25
+ height={200}
26
+ className="rounded-lg object-cover"
27
+ />
28
+ </div>
29
+ )}
30
+ {textContent && (
31
+ <p className="whitespace-pre-wrap">{textContent}</p>
32
+ )}
33
+ </div>
34
+ </div>
35
+ )
36
+ }