@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
35 lines (34 loc) • 1.13 kB
JavaScript
"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