| 
					
				 | 
			
			
				@@ -8,7 +8,6 @@ import type { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ChatConfig, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ChatItem, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from '../../types' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { useChatContext } from '../context' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Operation from './operation' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import AgentContent from './agent-content' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import BasicContent from './basic-content' 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -16,13 +15,13 @@ import SuggestedQuestions from './suggested-questions' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import More from './more' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import WorkflowProcess from './workflow-process' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { AnswerTriangle } from '@/app/components/base/icons/src/vender/solid/general' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { MessageFast } from '@/app/components/base/icons/src/vender/solid/communication' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import LoadingAnim from '@/app/components/base/chat/chat/loading-anim' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Citation from '@/app/components/base/chat/chat/citation' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { EditTitle } from '@/app/components/app/annotation/edit-annotation-modal/edit-item' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import type { Emoji } from '@/app/components/tools/types' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import type { AppData } from '@/models/share' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import AnswerIcon from '@/app/components/base/answer-icon' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn from '@/utils/classnames' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 type AnswerProps = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   item: ChatItem 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -61,26 +60,24 @@ const Answer: FC<AnswerProps> = ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } = item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const hasAgentThoughts = !!agent_thoughts?.length 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const [containerWidth] = useState(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const [containerWidth, setContainerWidth] = useState(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const [contentWidth, setContentWidth] = useState(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const containerRef = useRef<HTMLDivElement>(null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const contentRef = useRef<HTMLDivElement>(null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    config: chatContextConfig, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } = useChatContext() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const getContainerWidth = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (containerRef.current) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      setContainerWidth(containerRef.current?.clientWidth + 16) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  useEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getContainerWidth() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, []) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const voiceRef = useRef(chatContextConfig?.text_to_speech?.voice) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const getContentWidth = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (contentRef.current) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       setContentWidth(contentRef.current?.clientWidth) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  useEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    voiceRef.current = chatContextConfig?.text_to_speech?.voice 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  , [chatContextConfig?.text_to_speech?.voice]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   useEffect(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!responding) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       getContentWidth() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -89,36 +86,20 @@ const Answer: FC<AnswerProps> = ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div className='flex mb-2 last:mb-0'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div className='shrink-0 relative w-10 h-10'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          answerIcon || <AnswerIcon /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          responding && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div className='absolute -top-[3px] -left-[3px] pl-[6px] flex items-center w-4 h-4 bg-white rounded-full shadow-xs border-[0.5px] border-gray-50'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <LoadingAnim type='avatar' /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {answerIcon || <AnswerIcon />} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {responding && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div className='absolute -top-[3px] -left-[3px] pl-[6px] flex items-center w-4 h-4 bg-white rounded-full shadow-xs border-[0.5px] border-gray-50'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <LoadingAnim type='avatar' /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div className='chat-answer-container group grow w-0 ml-4' ref={containerRef}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div className={`group relative pr-10 ${chatAnswerContainerInner}`}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div className={cn('group relative pr-10', chatAnswerContainerInner)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <AnswerTriangle className='absolute -left-2 top-0 w-2 h-3 text-gray-100' /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ref={contentRef} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            className={` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              relative inline-block px-4 py-3 max-w-full bg-gray-100 rounded-b-2xl rounded-tr-2xl text-sm text-gray-900 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ${workflowProcess && 'w-full'} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            `} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            className={cn('relative inline-block px-4 py-3 max-w-full bg-gray-100 rounded-b-2xl rounded-tr-2xl text-sm text-gray-900', workflowProcess && 'w-full')} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            {annotation?.id && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                className='absolute -top-3.5 -right-3.5 box-border flex items-center justify-center h-7 w-7 p-0.5 rounded-lg bg-white cursor-pointer text-[#444CE7] shadow-md group-hover:hidden' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div className='p-1 rounded-lg bg-[#EEF4FF] '> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  <MessageFast className='w-4 h-4' /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               !responding && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <Operation 
			 |