Skip to content

Commit

Permalink
remove mermail render cache (#11470)
Browse files Browse the repository at this point in the history
Co-authored-by: Gimling <[email protected]>
  • Loading branch information
VoidIsVoid and Gimling authored Dec 9, 2024
1 parent 41d90c2 commit a594e25
Showing 1 changed file with 1 addition and 13 deletions.
14 changes: 1 addition & 13 deletions web/app/components/base/mermaid/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import React, { useCallback, useEffect, useRef, useState } from 'react'
import mermaid from 'mermaid'
import { usePrevious } from 'ahooks'
import CryptoJS from 'crypto-js'
import { useTranslation } from 'react-i18next'
import { ExclamationTriangleIcon } from '@heroicons/react/24/outline'
import LoadingAnim from '@/app/components/base/chat/chat/loading-anim'
Expand Down Expand Up @@ -38,7 +37,6 @@ const Flowchart = React.forwardRef((props: {
const [svgCode, setSvgCode] = useState(null)
const [look, setLook] = useState<'classic' | 'handDrawn'>('classic')

const chartId = useRef(`flowchart_${CryptoJS.MD5(props.PrimitiveCode).toString()}`)
const prevPrimitiveCode = usePrevious(props.PrimitiveCode)
const [isLoading, setIsLoading] = useState(true)
const timeRef = useRef<NodeJS.Timeout>()
Expand All @@ -51,12 +49,10 @@ const Flowchart = React.forwardRef((props: {

try {
if (typeof window !== 'undefined' && mermaidAPI) {
const svgGraph = await mermaidAPI.render(chartId.current, PrimitiveCode)
const svgGraph = await mermaidAPI.render('flowchart', PrimitiveCode)
const base64Svg: any = await svgToBase64(svgGraph.svg)
setSvgCode(base64Svg)
setIsLoading(false)
if (chartId.current && base64Svg)
localStorage.setItem(chartId.current, base64Svg)
}
}
catch (error) {
Expand All @@ -79,19 +75,11 @@ const Flowchart = React.forwardRef((props: {
},
})

localStorage.removeItem(chartId.current)
renderFlowchart(props.PrimitiveCode)
}
}, [look])

useEffect(() => {
const cachedSvg: any = localStorage.getItem(chartId.current)

if (cachedSvg) {
setSvgCode(cachedSvg)
setIsLoading(false)
return
}
if (timeRef.current)
clearTimeout(timeRef.current)

Expand Down

0 comments on commit a594e25

Please sign in to comment.