import { useState } from 'react' import { User, Bot, Eye, EyeOff, Volume2 } from 'lucide-react' import { ChatMessage as ChatMessageType } from '../stores/chatStore' import { MessageContent } from './MessageContent' import { TTSControls } from './TTSControls' import { useSettingsStore } from '../stores/settingsStore' import clsx from 'clsx' interface ChatMessageProps { message: ChatMessageType } export function ChatMessage({ message }: ChatMessageProps) { const isUser = message.role === 'user' const { ttsConversationMode } = useSettingsStore() const [isTextVisible, setIsTextVisible] = useState(!ttsConversationMode) return (
{isUser ? : }
{isUser ? 'You' : 'EVE'} {new Date(message.timestamp).toLocaleTimeString()}
{isUser ? ( // User messages: simple pre-wrap for plain text
{message.content}
) : ( // Assistant messages: full markdown rendering <> {ttsConversationMode && (
Audio Mode
)} {isTextVisible && } )}
) }