@@ -221,35 +221,35 @@ export const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(
221221 const [ modalCopied , setModalCopied ] = useState ( false ) ;
222222 const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
223223 const [ isWrapped , setIsWrapped ] = useState ( wrap ) ;
224+ const normalizedCode = code ?. trim ( ) ?? "" ;
224225
225226 const onCopied = useCallback (
226227 ( event : React . MouseEvent < HTMLButtonElement > ) => {
227228 event . preventDefault ( ) ;
228229 event . stopPropagation ( ) ;
229- navigator . clipboard . writeText ( code ) ;
230+ navigator . clipboard . writeText ( normalizedCode ) ;
230231 setCopied ( true ) ;
231232 setTimeout ( ( ) => {
232233 setCopied ( false ) ;
233234 } , 1500 ) ;
234235 } ,
235- [ code ]
236+ [ normalizedCode ]
236237 ) ;
237238
238239 const onModalCopied = useCallback (
239240 ( event : React . MouseEvent < HTMLButtonElement > ) => {
240241 event . preventDefault ( ) ;
241242 event . stopPropagation ( ) ;
242- navigator . clipboard . writeText ( code ) ;
243+ navigator . clipboard . writeText ( normalizedCode ) ;
243244 setModalCopied ( true ) ;
244245 setTimeout ( ( ) => {
245246 setModalCopied ( false ) ;
246247 } , 1500 ) ;
247248 } ,
248- [ code ]
249+ [ normalizedCode ]
249250 ) ;
250251
251- code = code ?. trim ( ) ?? "" ;
252- const lineCount = code . split ( "\n" ) . length ;
252+ const lineCount = normalizedCode . split ( "\n" ) . length ;
253253 const maxLineWidth = lineCount . toString ( ) . length ;
254254 let maxHeight : string | undefined = undefined ;
255255 if ( maxLines && lineCount > maxLines ) {
@@ -345,7 +345,7 @@ export const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(
345345 { shouldHighlight ? (
346346 < HighlightCode
347347 theme = { theme }
348- code = { code }
348+ code = { normalizedCode }
349349 language = { language }
350350 showLineNumbers = { showLineNumbers }
351351 highlightLines = { highlightLines }
@@ -373,7 +373,7 @@ export const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(
373373 ) }
374374 dir = "ltr"
375375 >
376- { highlightSearchText ( code , searchTerm ) }
376+ { highlightSearchText ( normalizedCode , searchTerm ) }
377377 </ pre >
378378 </ div >
379379 ) }
@@ -400,7 +400,7 @@ export const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(
400400 { shouldHighlight ? (
401401 < HighlightCode
402402 theme = { theme }
403- code = { code }
403+ code = { normalizedCode }
404404 language = { language }
405405 showLineNumbers = { showLineNumbers }
406406 highlightLines = { highlightLines }
@@ -415,7 +415,7 @@ export const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(
415415 className = "overflow-auto px-3 py-3 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-surface-control"
416416 >
417417 < pre className = "relative mr-2 p-2 font-mono text-base leading-relaxed" dir = "ltr" >
418- { highlightSearchText ( code , searchTerm ) }
418+ { highlightSearchText ( normalizedCode , searchTerm ) }
419419 </ pre >
420420 </ div >
421421 ) }
0 commit comments