diff --git a/src/renderer/components/AIChat/ChatPanel.tsx b/src/renderer/components/AIChat/ChatPanel.tsx index 444aba9..6684ca4 100644 --- a/src/renderer/components/AIChat/ChatPanel.tsx +++ b/src/renderer/components/AIChat/ChatPanel.tsx @@ -1,4 +1,4 @@ -import { useRef, useEffect, useState } from 'react' +import { useRef, useEffect, useState, useMemo, memo } from 'react' import { useBorgesStore } from '../../store/borgesStore' import type { ChatMessage, TextAnnotation } from '../../types/borges' import { marked } from 'marked' @@ -11,19 +11,20 @@ function renderMarkdown(text: string): string { } } -function MessageBubble({ msg }: { msg: ChatMessage }): JSX.Element { +const MessageBubble = memo(function MessageBubble({ msg }: { msg: ChatMessage }): JSX.Element { const isUser = msg.role === 'user' + const html = useMemo(() => (isUser ? null : renderMarkdown(msg.content)), [isUser, msg.content]) return (