@@ -89,34 +89,34 @@ interface MermaidBlockProps {
8989 code : string
9090}
9191
92- export default function MermaidBlock ( { code : originalCode } : MermaidBlockProps ) {
92+ export default function MermaidBlock ( { code } : MermaidBlockProps ) {
9393 const containerRef = useRef < HTMLDivElement > ( null )
9494 const [ isLoading , setIsLoading ] = useState ( false )
9595 const [ error , setError ] = useState < string | null > ( null )
9696 const [ isErrorExpanded , setIsErrorExpanded ] = useState ( false )
9797 const [ svgContent , setSvgContent ] = useState < string > ( "" )
9898 const [ isFixing , setIsFixing ] = useState ( false )
99- const [ code , setCode ] = useState ( "" )
99+ const [ currentCode , setCurrentCode ] = useState ( "" )
100100 const { showCopyFeedback, copyWithFeedback } = useCopyToClipboard ( )
101101 const { t } = useAppTranslation ( )
102102
103103 // 1) Whenever `code` changes, mark that we need to re-render a new chart
104104 useEffect ( ( ) => {
105105 setIsLoading ( true )
106106 setError ( null )
107- setCode ( originalCode )
107+ setCurrentCode ( code )
108108 setIsFixing ( false )
109- } , [ originalCode ] )
109+ } , [ code ] )
110110
111111 const handleSyntaxFix = async ( ) => {
112112 if ( isFixing ) return
113113
114114 setIsLoading ( true )
115115 setIsFixing ( true )
116- const result = await MermaidSyntaxFixer . autoFixSyntax ( code )
116+ const result = await MermaidSyntaxFixer . autoFixSyntax ( currentCode )
117117 if ( result . fixedCode ) {
118118 // Use the improved code even if not completely successful
119- setCode ( result . fixedCode )
119+ setCurrentCode ( result . fixedCode )
120120 }
121121
122122 if ( ! result . success ) {
@@ -135,10 +135,10 @@ export default function MermaidBlock({ code: originalCode }: MermaidBlockProps)
135135 setIsLoading ( true )
136136
137137 mermaid
138- . parse ( code )
138+ . parse ( currentCode )
139139 . then ( ( ) => {
140140 const id = `mermaid-${ Math . random ( ) . toString ( 36 ) . substring ( 2 ) } `
141- return mermaid . render ( id , code )
141+ return mermaid . render ( id , currentCode )
142142 } )
143143 . then ( ( { svg } ) => {
144144 setError ( null )
@@ -154,7 +154,7 @@ export default function MermaidBlock({ code: originalCode }: MermaidBlockProps)
154154 } )
155155 } ,
156156 500 , // Delay 500ms
157- [ code , isFixing , originalCode , t ] , // Dependencies for scheduling
157+ [ currentCode , isFixing , code , t ] , // Dependencies for scheduling
158158 )
159159
160160 /**
@@ -233,7 +233,7 @@ export default function MermaidBlock({ code: originalCode }: MermaidBlockProps)
233233 < CopyButton
234234 onClick = { ( e ) => {
235235 e . stopPropagation ( )
236- const combinedContent = `Error: ${ error } \n\n\`\`\`mermaid\n${ code } \n\`\`\``
236+ const combinedContent = `Error: ${ error } \n\n\`\`\`mermaid\n${ currentCode } \n\`\`\``
237237 copyWithFeedback ( combinedContent , e )
238238 } } >
239239 < span className = { `codicon codicon-${ showCopyFeedback ? "check" : "copy" } ` } > </ span >
@@ -251,20 +251,20 @@ export default function MermaidBlock({ code: originalCode }: MermaidBlockProps)
251251 < div style = { { marginBottom : "8px" , color : "var(--vscode-descriptionForeground)" } } >
252252 { error }
253253 </ div >
254- < CodeBlock language = "mermaid" source = { code } />
255- { code !== originalCode && (
254+ < CodeBlock language = "mermaid" source = { currentCode } />
255+ { currentCode !== code && (
256256 < div style = { { marginTop : "8px" } } >
257257 < div style = { { marginBottom : "4px" , fontSize : "0.9em" , fontWeight : "bold" } } >
258258 { t ( "common:mermaid.original_code" ) }
259259 </ div >
260- < CodeBlock language = "mermaid" source = { originalCode } />
260+ < CodeBlock language = "mermaid" source = { code } />
261261 </ div >
262262 ) }
263263 </ div >
264264 ) }
265265 </ div >
266266 ) : (
267- < MermaidButton containerRef = { containerRef } code = { code } isLoading = { isLoading } svgToPng = { svgToPng } >
267+ < MermaidButton containerRef = { containerRef } code = { currentCode } isLoading = { isLoading } svgToPng = { svgToPng } >
268268 < SvgContainer
269269 onClick = { handleClick }
270270 ref = { containerRef }
0 commit comments