fix(ui): avoid mutating markdown part renderCache

This commit is contained in:
Shantur Rathore
2026-03-02 23:21:26 +00:00
parent 38f75ab06d
commit 044e46cd6b

View File

@@ -92,7 +92,6 @@ export function Markdown(props: MarkdownProps) {
const globalCache = cacheHandle.get<RenderCache>() const globalCache = cacheHandle.get<RenderCache>()
if (globalCache && cacheMatches(globalCache)) { if (globalCache && cacheMatches(globalCache)) {
setHtml(globalCache.html) setHtml(globalCache.html)
part.renderCache = globalCache
notifyRendered() notifyRendered()
return return
} }
@@ -100,14 +99,11 @@ export function Markdown(props: MarkdownProps) {
const commitCacheEntry = (renderedHtml: string) => { const commitCacheEntry = (renderedHtml: string) => {
const cacheEntry: RenderCache = { text, html: renderedHtml, theme: themeKey, mode: version } const cacheEntry: RenderCache = { text, html: renderedHtml, theme: themeKey, mode: version }
setHtml(renderedHtml) setHtml(renderedHtml)
part.renderCache = cacheEntry
cacheHandle.set(cacheEntry) cacheHandle.set(cacheEntry)
notifyRendered() notifyRendered()
} }
if (!highlightEnabled) { if (!highlightEnabled) {
part.renderCache = undefined
try { try {
const rendered = await renderMarkdown(text, { suppressHighlight: true }) const rendered = await renderMarkdown(text, { suppressHighlight: true })
@@ -185,7 +181,6 @@ export function Markdown(props: MarkdownProps) {
if (latestRequestedText === text) { if (latestRequestedText === text) {
const cacheEntry: RenderCache = { text, html: rendered, theme: themeKey, mode: version } const cacheEntry: RenderCache = { text, html: rendered, theme: themeKey, mode: version }
setHtml(rendered) setHtml(rendered)
part.renderCache = cacheEntry
cacheHandle.set(cacheEntry) cacheHandle.set(cacheEntry)
notifyRendered() notifyRendered()
} }