import React, { useMemo } from 'react' import Markdown from 'react-markdown' import { InfioBlockAction, ParsedInfioBlock, parseinfioBlocks, } from '../../utils/parse-infio-block' import MarkdownActionBlock from './MarkdownActionBlock' import MarkdownReferenceBlock from './MarkdownReferenceBlock' function ReactMarkdown({ onApply, isApplying, children, }: { onApply: (blockInfo: { content: string filename?: string startLine?: number endLine?: number }) => void children: string isApplying: boolean }) { const blocks: ParsedInfioBlock[] = useMemo( () => parseinfioBlocks(children), [children], ) return ( <> {blocks.map((block, index) => block.type === 'string' ? ( {block.content} ) : block.startLine && block.endLine && block.filename && block.action === InfioBlockAction.Reference ? ( ) : ( {block.content} ), )} ) } export default React.memo(ReactMarkdown)