Spaces:
Sleeping
Sleeping
File size: 917 Bytes
085db90 03151b9 085db90 03151b9 085db90 03151b9 085db90 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import React from 'react';
import ReactMarkdown from 'react-markdown';
import remarkGfm from 'remark-gfm';
export default function MessageBubble({ message, showResponseTime }) {
const isA = message.speaker_idx === 0;
const side = isA ? 'a' : 'b';
const initial = message.speaker ? message.speaker.charAt(0).toUpperCase() : (isA ? 'A' : 'B');
const elapsed = message.elapsed_seconds;
return (
<div className={`message-row speaker-${side}`}>
<div className={`avatar avatar-${side}`}>
{initial}
</div>
<div className={`message-bubble bubble-${side}`}>
<div className="message-speaker">{message.speaker}</div>
<ReactMarkdown remarkPlugins={[remarkGfm]}>
{message.text}
</ReactMarkdown>
{showResponseTime && elapsed > 0 && (
<div className="message-elapsed">{elapsed.toFixed(1)}s</div>
)}
</div>
</div>
);
}
|