Commit 13311e18 by Liu

fix:欢迎语更换时机

parent 8537a077
...@@ -538,6 +538,8 @@ export const TacticsChat: React.FC = () => { ...@@ -538,6 +538,8 @@ export const TacticsChat: React.FC = () => {
/** 获取qa记录 */ /** 获取qa记录 */
const getUserQaRecordPage = useCallback(async (conversationId: string) => { const getUserQaRecordPage = useCallback(async (conversationId: string) => {
setIsLoading(true) setIsLoading(true)
// 在异步操作开始前保存 createdFromClearRef 的值,避免在异步过程中被其他逻辑修改
const wasCreatedFromClear = createdFromClearRef.current
try { try {
const res = await fetchTacticsQaRecordPage(conversationId) const res = await fetchTacticsQaRecordPage(conversationId)
const qaRecords = res.data || [] const qaRecords = res.data || []
...@@ -574,8 +576,11 @@ export const TacticsChat: React.FC = () => { ...@@ -574,8 +576,11 @@ export const TacticsChat: React.FC = () => {
} }
return processedMessages return processedMessages
}) })
// 如果是清除记录创建的新会话且没有历史记录,保持 hasCleared 为 true // 统一管理 hasCleared 状态:
setHasCleared(createdFromClearRef.current && !hasHistoryFlag) // 1. 如果是清除记录创建的新会话且没有历史记录,保持 hasCleared 为 true
// 2. 其他情况都设置为 false
// 使用保存的值而不是 ref.current,避免异步过程中的时序问题
setHasCleared(wasCreatedFromClear && !hasHistoryFlag)
setHistoryDividers([]) setHistoryDividers([])
setHasHistory(hasHistoryFlag) setHasHistory(hasHistoryFlag)
} }
...@@ -593,7 +598,8 @@ export const TacticsChat: React.FC = () => { ...@@ -593,7 +598,8 @@ export const TacticsChat: React.FC = () => {
return [{ role: 'system' } as ChatRecord] return [{ role: 'system' } as ChatRecord]
}) })
// 如果是清除记录创建的新会话,保持 hasCleared 为 true // 如果是清除记录创建的新会话,保持 hasCleared 为 true
setHasCleared(createdFromClearRef.current) // 使用保存的值而不是 ref.current,避免异步过程中的时序问题
setHasCleared(wasCreatedFromClear)
setHistoryDividers([]) setHistoryDividers([])
// 拉取失败时视为无历史记录,后续可按需触发自动提问 // 拉取失败时视为无历史记录,后续可按需触发自动提问
setHasHistory(false) setHasHistory(false)
...@@ -707,6 +713,7 @@ export const TacticsChat: React.FC = () => { ...@@ -707,6 +713,7 @@ export const TacticsChat: React.FC = () => {
// 每次切换会话时重置历史标记,等待新会话的历史查询结果 // 每次切换会话时重置历史标记,等待新会话的历史查询结果
setHasHistory(null) setHasHistory(null)
setHistoryDividers([]) setHistoryDividers([])
// hasCleared 状态由 getUserQaRecordPage 统一管理,避免时序问题
getUserQaRecordPage(id) getUserQaRecordPage(id)
} }
else { else {
...@@ -715,6 +722,7 @@ export const TacticsChat: React.FC = () => { ...@@ -715,6 +722,7 @@ export const TacticsChat: React.FC = () => {
setHistoryDividers([]) setHistoryDividers([])
setIsLoading(false) setIsLoading(false)
setHasHistory(false) setHasHistory(false)
setHasCleared(false)
} }
}, [id, getUserQaRecordPage, dispatch]) }, [id, getUserQaRecordPage, dispatch])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment