import { Paper, Stack } from "@mantine/core";
import type { ChatMessage } from "gpt-tokenizer/GptEncoding";
import { Suspense, lazy, memo } from "react";
const FormattedMarkdown = lazy(() => import("./FormattedMarkdown"));
interface MessageListProps {
messages: ChatMessage[];
}
interface MessageProps {
message: ChatMessage;
index: number;
}
const Message = memo(
function Message({ message, index }: MessageProps) {
return (
{message.content}
);
},
(prevProps, nextProps) => {
return (
prevProps.message.content === nextProps.message.content &&
prevProps.message.role === nextProps.message.role
);
},
);
const MessageList = memo(function MessageList({ messages }: MessageListProps) {
if (messages.length <= 2) return null;
return (
{messages
.slice(2)
.filter((message) => message.content.length > 0)
.map((message, index) => (
))}
);
});
export default MessageList;