import Icon from '@/components/ui/icon' import MarkdownRenderer from '@/components/ui/typography/MarkdownRenderer' import { usePlaygroundStore } from '@/store' import type { PlaygroundChatMessage } from '@/types/playground' import Videos from './Multimedia/Videos' import Images from './Multimedia/Images' import Audios from './Multimedia/Audios' import { memo } from 'react' import AgentThinkingLoader from './AgentThinkingLoader' interface MessageProps { message: PlaygroundChatMessage } const AgentMessage = ({ message }: MessageProps) => { const { streamingErrorMessage } = usePlaygroundStore() let messageContent if (message.streamingError) { messageContent = (

Oops! Something went wrong while streaming.{' '} {streamingErrorMessage ? ( <>{streamingErrorMessage} ) : ( 'Please try refreshing the page or try again later.' )}

) } else if (message.content) { messageContent = (
{message.content} {message.videos && message.videos.length > 0 && ( )} {message.images && message.images.length > 0 && ( )} {message.audio && message.audio.length > 0 && ( )}
) } else if (message.response_audio) { if (!message.response_audio.transcript) { messageContent = (
) } else { messageContent = (
{message.response_audio.transcript} {message.response_audio.content && message.response_audio && ( )}
) } } else { messageContent = (
) } return (
{messageContent}
) } const UserMessage = memo(({ message }: MessageProps) => { return (

{message.content}
) }) AgentMessage.displayName = 'AgentMessage' UserMessage.displayName = 'UserMessage' export { AgentMessage, UserMessage }