|
@@ -25,6 +25,7 @@ import {
|
|
|
stopChatMessageResponding,
|
|
|
} from '@/service/debug'
|
|
|
import { useStore as useAppStore } from '@/app/components/app/store'
|
|
|
+import { getLastAnswer } from '@/app/components/base/chat/utils'
|
|
|
|
|
|
type ChatWrapperProps = {
|
|
|
showConversationVariableModal: boolean
|
|
@@ -76,19 +77,13 @@ const ChatWrapper = forwardRef<ChatWrapperRefType, ChatWrapperProps>(({ showConv
|
|
|
)
|
|
|
|
|
|
const doSend = useCallback<OnSend>((query, files, last_answer) => {
|
|
|
- const lastAnswer = chatListRef.current.at(-1)
|
|
|
-
|
|
|
handleSend(
|
|
|
{
|
|
|
query,
|
|
|
files,
|
|
|
inputs: workflowStore.getState().inputs,
|
|
|
conversation_id: conversationId,
|
|
|
- parent_message_id: last_answer?.id || (lastAnswer
|
|
|
- ? lastAnswer.isOpeningStatement
|
|
|
- ? null
|
|
|
- : lastAnswer.id
|
|
|
- : null),
|
|
|
+ parent_message_id: last_answer?.id || getLastAnswer(chatListRef.current)?.id || null,
|
|
|
},
|
|
|
{
|
|
|
onGetSuggestedQuestions: (messageId, getAbortController) => fetchSuggestedQuestions(appDetail!.id, messageId, getAbortController),
|
|
@@ -103,13 +98,13 @@ const ChatWrapper = forwardRef<ChatWrapperRefType, ChatWrapperProps>(({ showConv
|
|
|
|
|
|
const prevMessages = chatList.slice(0, index)
|
|
|
const question = prevMessages.pop()
|
|
|
- const lastAnswer = prevMessages.at(-1)
|
|
|
+ const lastAnswer = getLastAnswer(prevMessages)
|
|
|
|
|
|
if (!question)
|
|
|
return
|
|
|
|
|
|
handleUpdateChatList(prevMessages)
|
|
|
- doSend(question.content, question.message_files, (!lastAnswer || lastAnswer.isOpeningStatement) ? undefined : lastAnswer)
|
|
|
+ doSend(question.content, question.message_files, lastAnswer)
|
|
|
}, [chatList, handleUpdateChatList, doSend])
|
|
|
|
|
|
useImperativeHandle(ref, () => {
|