"use client"; import React from "react"; // Type-safe wrapper that bypasses react-markdown typing issues interface MarkdownWrapperProps { children: string; remarkPlugins?: any[]; rehypePlugins?: any[]; linkTarget?: string; components?: any; } const MarkdownWrapper: React.FC = ({ children, remarkPlugins, rehypePlugins, linkTarget, components }) => { const [MarkdownComponent, setMarkdownComponent] = React.useState(null); React.useEffect(() => { // Dynamically import react-markdown at runtime to avoid build-time type issues import("react-markdown").then((mod) => { setMarkdownComponent(() => mod.default); }); }, []); if (!MarkdownComponent) { return
Loading markdown...
; } return React.createElement(MarkdownComponent, { remarkPlugins, rehypePlugins, linkTarget, components, children, }); }; export default MarkdownWrapper;