All files / src/components/chat MessageList.tsx

100% Statements 27/27
100% Branches 3/3
100% Functions 1/1
100% Lines 27/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 371x   1x 1x             1x 24x 24x 24x 24x 24x 24x 36x 36x 36x 36x 24x   24x 12x 12x 12x 12x 12x 12x 12x 12x 12x   24x   24x
import React from 'react';
import type { Message } from './types';
import { MessageBubble } from './MessageBubble';
import { LoadingIndicator } from './LoadingIndicator';
 
interface MessageListProps {
  messages: Message[];
  isLoading?: boolean;
}
 
export const MessageList: React.FC<MessageListProps> = ({ 
  messages, 
  isLoading = false 
}) => {
  return (
    <div className="message-list">
      {messages.map((message) => (
        <MessageBubble
          key={message.id}
          message={message}
        />
      ))}
      
      {isLoading && (
        <div className="message-bubble ai-message">
          <div className="message-header">
            <span className="sender-name">家庭智慧助手</span>
            <span className="message-time">正在思考...</span>
          </div>
          <div className="message-content">
            <LoadingIndicator />
          </div>
        </div>
      )}
    </div>
  );
};