sifa-classification-agentic-rag
/
src
/components
/ui
/typography
/MarkdownRenderer
/MarkdownRenderer.tsx
import { type FC } from 'react' | |
import ReactMarkdown from 'react-markdown' | |
import rehypeRaw from 'rehype-raw' | |
import rehypeSanitize from 'rehype-sanitize' | |
import remarkGfm from 'remark-gfm' | |
import { cn } from '@/lib/utils' | |
import { type MarkdownRendererProps } from './types' | |
import { inlineComponents } from './inlineStyles' | |
import { components } from './styles' | |
const MarkdownRenderer: FC<MarkdownRendererProps> = ({ | |
children, | |
classname, | |
inline = false | |
}) => ( | |
<ReactMarkdown | |
className={cn( | |
'prose prose-h1:text-xl dark:prose-invert flex w-full flex-col gap-y-5 rounded-lg', | |
classname | |
)} | |
components={{ ...(inline ? inlineComponents : components) }} | |
remarkPlugins={[remarkGfm]} | |
rehypePlugins={[rehypeRaw, rehypeSanitize]} | |
> | |
{children} | |
</ReactMarkdown> | |
) | |
export default MarkdownRenderer | |