diff --git a/src/components/ContentPanel.tsx b/src/components/ContentPanel.tsx index 5107e9cc..eb94eb01 100644 --- a/src/components/ContentPanel.tsx +++ b/src/components/ContentPanel.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useRef } from 'react' +import React, { useMemo } from 'react' import ReactMarkdown from 'react-markdown' import remarkGfm from 'remark-gfm' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' @@ -52,9 +52,7 @@ const ContentPanel: React.FC = ({ onTextSelection, onClearSelection }) => { - const markdownPreviewRef = useRef(null) - - const renderedMarkdownHtml = useMarkdownToHTML(markdown) + const { renderedHtml: renderedMarkdownHtml, previewRef: markdownPreviewRef } = useMarkdownToHTML(markdown) const { finalHtml, relevantHighlights } = useHighlightedContent({ html, diff --git a/src/hooks/useMarkdownToHTML.ts b/src/hooks/useMarkdownToHTML.ts index b0f30e70..39afa8f0 100644 --- a/src/hooks/useMarkdownToHTML.ts +++ b/src/hooks/useMarkdownToHTML.ts @@ -1,10 +1,10 @@ -import { useState, useEffect, useRef } from 'react' +import React, { useState, useEffect, useRef } from 'react' /** * Hook to convert markdown to HTML using a hidden ReactMarkdown component */ -export const useMarkdownToHTML = (markdown?: string): string => { - const markdownPreviewRef = useRef(null) +export const useMarkdownToHTML = (markdown?: string): { renderedHtml: string, previewRef: React.RefObject } => { + const previewRef = useRef(null) const [renderedHtml, setRenderedHtml] = useState('') useEffect(() => { @@ -16,8 +16,8 @@ export const useMarkdownToHTML = (markdown?: string): string => { console.log('📝 Converting markdown to HTML...') const rafId = requestAnimationFrame(() => { - if (markdownPreviewRef.current) { - const html = markdownPreviewRef.current.innerHTML + if (previewRef.current) { + const html = previewRef.current.innerHTML console.log('✅ Markdown converted to HTML:', html.length, 'chars') setRenderedHtml(html) } else { @@ -28,10 +28,8 @@ export const useMarkdownToHTML = (markdown?: string): string => { return () => cancelAnimationFrame(rafId) }, [markdown]) - return renderedHtml + return { renderedHtml, previewRef } } -export const useMarkdownPreviewRef = () => { - return useRef(null) -} +// Removed separate useMarkdownPreviewRef; use useMarkdownToHTML to obtain previewRef