/**
 * MessageItem — 单条消息路由组件
 *
 * 根据消息 role 路由到对应的子组件渲染。
 */

import type { ChatMessage } from '@renderer/stores/agent-store';
import { UserMessage } from './UserMessage';
import { AssistantMessage } from './AssistantMessage';
import { SystemMessage } from './SystemMessage';

interface MessageItemProps {
  message: ChatMessage;
  isLast?: boolean;
  isStreaming?: boolean;
  streamContent?: string;
}

export function MessageItem({ message, isLast, isStreaming, streamContent }: MessageItemProps): React.JSX.Element {
  switch (message.role) {
    case 'user':
      return <UserMessage message={message} />;

    case 'assistant':
      return (
        <AssistantMessage
          message={message}
          isStreaming={isLast && isStreaming}
          streamContent={streamContent}
        />
      );

    case 'tool':
      // 工具消息渲染为系统消息样式
      return <SystemMessage message={message} />;

    case 'system':
    default:
      return <SystemMessage message={message} />;
  }
}
