Yuki Takei 1 год назад
Родитель
Сommit
b8724b7e97
1 измененных файлов с 19 добавлено и 8 удалено
  1. 19 8
      apps/app/src/client/components/RagSearch/RagSearchModal.tsx

+ 19 - 8
apps/app/src/client/components/RagSearch/RagSearchModal.tsx

@@ -45,13 +45,16 @@ const RagSearchModal = (): JSX.Element => {
   const isOpened = ragSearchModalData?.isOpened ?? false;
 
   useEffect(() => {
-    // do nothing when modal is not opened
+    // clear states when the modal is closed
     if (!isOpened) {
-      return;
+      setMessageLogs([]);
+      setThreadId(undefined);
     }
+  }, [isOpened]);
 
-    // do nothing when threadId is already set
-    if (threadId != null) {
+  useEffect(() => {
+    // do nothing when the modal is closed or threadId is already set
+    if (!isOpened || threadId != null) {
       return;
     }
 
@@ -115,8 +118,11 @@ const RagSearchModal = (): JSX.Element => {
 
         // add assistant message to the logs
         if (done) {
-          setMessageLogs(msgs => [...msgs, newAssistantMessage]);
-          setLastMessage(undefined);
+          setLastMessage((lastMessage) => {
+            if (lastMessage == null) return;
+            setMessageLogs(msgs => [...msgs, lastMessage]);
+            return undefined;
+          });
           return;
         }
 
@@ -132,8 +138,13 @@ const RagSearchModal = (): JSX.Element => {
           });
 
         // append text values to the assistant message
-        newAssistantMessage.content += textValues.join('');
-        setLastMessage(newAssistantMessage);
+        setLastMessage((prevMessage) => {
+          if (prevMessage == null) return;
+          return {
+            ...prevMessage,
+            content: prevMessage.content + textValues.join(''),
+          };
+        });
 
         read();
       };