llama-stack-mirror/llama_stack/ui/components/chat-playground/message-list.tsx
Francisco Javier Arceo 3f87db2eea adding linted files and nvmrc -- will trigger precommit failures
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
2025-08-14 16:04:50 -04:00

45 lines
1.1 KiB
TypeScript

import {
ChatMessage,
type ChatMessageProps,
type Message,
} from "@/components/chat-playground/chat-message";
import { TypingIndicator } from "@/components/chat-playground/typing-indicator";
type AdditionalMessageOptions = Omit<ChatMessageProps, keyof Message>;
interface MessageListProps {
messages: Message[];
showTimeStamps?: boolean;
isTyping?: boolean;
messageOptions?:
| AdditionalMessageOptions
| ((message: Message) => AdditionalMessageOptions);
}
export function MessageList({
messages,
showTimeStamps = true,
isTyping = false,
messageOptions,
}: MessageListProps) {
return (
<div className="space-y-4 overflow-visible">
{messages.map((message, index) => {
const additionalOptions =
typeof messageOptions === "function"
? messageOptions(message)
: messageOptions;
return (
<ChatMessage
key={index}
showTimeStamp={showTimeStamps}
{...message}
{...additionalOptions}
/>
);
})}
{isTyping && <TypingIndicator />}
</div>
);
}