UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

35 lines (34 loc) 1.13 kB
"use client"; import { addToCache, contentCache, preprocessMarkdownContent } from "./utils.mjs"; import { useMarkdownContext } from "../../Markdown/components/MarkdownProvider.mjs"; import { useMemo } from "react"; //#region src/hooks/useMarkdown/useMarkdownContent.ts const useMarkdownContent = (children) => { const { enableLatex = true, enableCustomFootnotes, citations } = useMarkdownContext(); const citationsLength = citations?.length || 0; const cacheKey = useMemo(() => `${children}|${enableLatex ? 1 : 0}|${enableCustomFootnotes ? 1 : 0}|${citationsLength}`, [ children, enableLatex, enableCustomFootnotes, citationsLength ]); return useMemo(() => { if (contentCache.has(cacheKey)) return contentCache.get(cacheKey); const processedContent = preprocessMarkdownContent(children, { citationsLength, enableCustomFootnotes, enableLatex }); addToCache(cacheKey, processedContent); return processedContent; }, [ cacheKey, children, enableLatex, enableCustomFootnotes, citationsLength ]); }; //#endregion export { useMarkdownContent }; //# sourceMappingURL=useMarkdownContent.mjs.map