components/message.tsx (40 lines of code) (raw):
import { MessageItem } from "@/lib/assistant";
import React from "react";
import ReactMarkdown from "react-markdown";
interface MessageProps {
message: MessageItem;
}
const Message: React.FC<MessageProps> = ({ message }) => {
return (
<div className="text-sm">
{message.role === "user" ? (
<div className="flex justify-end">
<div>
<div className="ml-4 rounded-[16px] px-4 py-2 md:ml-24 bg-[#ededed] text-stone-900 font-light">
<div>
<div>
<ReactMarkdown>
{message.content[0].text as string}
</ReactMarkdown>
</div>
</div>
</div>
</div>
</div>
) : (
<div className="flex flex-col">
<div className="flex">
<div className="mr-4 rounded-[16px] px-4 py-2 md:mr-24 text-black bg-white font-light">
<div>
<ReactMarkdown>
{message.content[0].text as string}
</ReactMarkdown>
</div>
</div>
</div>
</div>
)}
</div>
);
};
export default Message;