import { useEffect, useRef } from 'react'; import mermaid from 'mermaid'; interface MermaidRendererProps { content: string; className?: string; } export function MermaidRenderer({ content, className = '' }: MermaidRendererProps) { const ref = useRef(null); const id = useRef(`mermaid-${Math.random().toString(36).substr(2, 9)}`); useEffect(() => { mermaid.initialize({ startOnLoad: false, theme: document.documentElement.classList.contains('dark') ? 'dark' : 'default', securityLevel: 'loose', fontFamily: 'Inter, system-ui, sans-serif', }); if (ref.current) { // Clear previous content ref.current.innerHTML = ''; mermaid.render(id.current, content) .then(({ svg }) => { if (ref.current) { ref.current.innerHTML = svg; } }) .catch((error) => { console.error('Mermaid rendering error:', error); if (ref.current) { ref.current.innerHTML = `

Mermaid Diagram Error

${error.message}
`; } }); } }, [content]); return (
); }