import React, { useRef } from 'react'; import { Box, Paper, Typography, Avatar, useMediaQuery, useTheme } from '@mui/material'; import type { Message as MessageType } from '../types/types'; interface MessageProps { message: MessageType; isLast?: boolean; } const Message: React.FC = ({ message, isLast = false }) => { const isUser = message.sender === 'user'; const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down('sm')); const paperRef = useRef(null); // 计算气泡的borderRadius const borderRadius = isUser ? '18px 18px 4px 18px' : '18px 18px 18px 4px'; return ( {!isUser && ( 🤖 )}
{message.content.split('\n').map((line, index) => ( {line} {index < message.content.split('\n').length - 1 &&
}
))}
{message.timestamp.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}
{isUser && ( 👤 )}
); }; export default Message;