import Link from 'next/link'; import React, { memo } from 'react'; import ReactMarkdown, { type Components } from 'react-markdown'; import remarkGfm from 'remark-gfm'; const NonMemoizedMarkdown = ({ children }: { children: string }) => { const components: Partial = { // @ts-expect-error code: ({ node, inline, className, children, ...props }) => { const match = /language-(\w+)/.exec(className || ''); return !inline && match ? ( // @ts-expect-error
          {children}
        
) : ( {children} ); }, ol: ({ node, children, ...props }) => { return (
    {children}
); }, li: ({ node, children, ...props }) => { return (
  • {children}
  • ); }, ul: ({ node, children, ...props }) => { return ( ); }, strong: ({ node, children, ...props }) => { return ( {children} ); }, a: ({ node, children, ...props }) => { return ( // @ts-expect-error {children} ); }, h1: ({ node, children, ...props }) => { return (

    {children}

    ); }, h2: ({ node, children, ...props }) => { return (

    {children}

    ); }, h3: ({ node, children, ...props }) => { return (

    {children}

    ); }, h4: ({ node, children, ...props }) => { return (

    {children}

    ); }, h5: ({ node, children, ...props }) => { return (
    {children}
    ); }, h6: ({ node, children, ...props }) => { return (
    {children}
    ); }, }; return ( {children} ); }; export const Markdown = memo( NonMemoizedMarkdown, (prevProps, nextProps) => prevProps.children === nextProps.children );