{
+ // Allow expansion when there's thinking content, even during thinking process
+ if (finalThinkingContent && finalThinkingContent.trim() !== '') {
+ setIsThinkingExpanded(!isThinkingExpanded)
}
- ] as any] : []),
- rehypeReact
- ]}
- skipHtml={false}
- // Memoize the components object to prevent unnecessary re-renders of ReactMarkdown children
- components={useMemo(() => ({
- code: (props: any) => ( // Add type annotation if needed, e.g., props: CodeProps from 'react-markdown/lib/ast-to-react'
-
- ),
- p: ({ children }: { children?: ReactNode }) =>
{children}
,
- h1: ({ children }: { children?: ReactNode }) =>
{children}
,
- h2: ({ children }: { children?: ReactNode }) =>
{children}
,
- h3: ({ children }: { children?: ReactNode }) =>
{children}
,
- h4: ({ children }: { children?: ReactNode }) =>
{children}
,
- ul: ({ children }: { children?: ReactNode }) =>
,
- ol: ({ children }: { children?: ReactNode }) =>
{children}
,
- li: ({ children }: { children?: ReactNode }) =>
{children}
- }), [message.mermaidRendered])} // Dependency ensures update if mermaid state changes
- >
- {message.content}
-
- {message.role === 'assistant' && message.content && message.content.length > 0 && ( // Added check for message.content existence
-
- )}
-
- {message.content === '' &&