mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-23 02:12:26 +00:00
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com> fixing package.json Signed-off-by: Francisco Javier Arceo <farceo@redhat.com> moving ui -> chat Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import {
|
|
ChatMessage,
|
|
type ChatMessageProps,
|
|
type Message,
|
|
} from "@/components/chat/chat-message"
|
|
import { TypingIndicator } from "@/components/chat/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>
|
|
)
|
|
}
|