import { type Message } from "@prisma/client"; import CodeBlock from "@/components/ui/codeblock"; import { MemoizedReactMarkdown } from "@/components/markdown"; import remarkGfm from "remark-gfm"; import remarkMath from "remark-math"; import { cn } from "@/lib/utils"; import { fontMessage } from "@/lib/fonts"; export interface ChatMessageProps { message: Message; } export function ChatMessage(props: ChatMessageProps) { return (
{props.message.role === "user" ? (
User
) : (
)} ▍ ); } children[0] = (children[0] as string).replace("`▍`", "▍"); } const match = /language-(\w+)/.exec(className || ""); return !inline ? ( ) : ( {children} ); }, table({ children }) { return ( {children}
); }, th({ children }) { return ( {children} ); }, td({ children }) { return ( {children} ); }, }} > {props.message.content}
); } ChatMessage.displayName = "ChatMessage"; export function IconOpenAI(props: JSX.IntrinsicElements["svg"]) { return ( OpenAI icon ); }