import React from 'react'; interface Message { id: string; text: string; isUser: boolean; timestamp: number; files?: string[]; } interface MessageBubbleProps { message: Message; } const MessageBubble: React.FC = ({ message }) => { const formatTime = (timestamp: number) => { return new Date(timestamp).toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit' }); }; if (message.isUser) { return (
{message.files && message.files.length > 0 && (
{message.files.map((file, index) => (
📎 {file}
))}
)}
{message.text}
{formatTime(message.timestamp)}
); } return (
{/* AI Avatar */}
{message.text}
AI • {formatTime(message.timestamp)}
); }; interface LoadingIndicatorProps { className?: string; } const LoadingIndicator: React.FC = ({ className = '' }) => (
{/* AI Avatar */}
); interface MessageThreadProps { messages: Message[]; isLoading?: boolean; className?: string; } const MessageThread: React.FC = ({ messages, isLoading = false, className = '' }) => { return (
{messages.map((message) => ( ))} {isLoading && }
); }; export default MessageThread; export { MessageBubble, LoadingIndicator };