import { FiCopy, FiRefreshCw } from 'react-icons/fi'; import { FilePreview } from './file-preview'; import { StreamingMessage } from './streaming-message'; import { ChatMessage } from '../../types/chat'; export interface ChatMessageProps { message: ChatMessage; isStreaming?: boolean; onRetry?: () => void; onCopy?: () => void; onDelete?: () => void; showActions?: boolean; } export function ChatMessageComponent({ message, isStreaming = false, onRetry, onCopy, showActions = true, }: ChatMessageProps) { const isUser = message.role === 'user'; const files = message.metadata?.files || []; const handleCopy = () => { if (message.content) { navigator.clipboard.writeText(message.content); onCopy?.(); } }; const formatTime = (dateString: string) => { const date = new Date(dateString); return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); }; return (
{message.content}
)} {files.length > 0 && (