优化消息实时响应结束后的处理逻辑,不再立即重新加载本地数据

This commit is contained in:
xintaofei
2026-03-09 19:11:09 +08:00
parent b2f017d6de
commit 160326b703
2 changed files with 5 additions and 11 deletions

View File

@@ -111,8 +111,7 @@ const ExistingConversationView = memo(function ExistingConversationView({
// Wrap handleSend to update status
const handleSendWithPersist = useCallback(
(draft: PromptDraft, selectedModeId?: string | null) => {
setPendingMessages((prev) => [
...prev,
setPendingMessages([
{
id: `pending-${Date.now()}`,
role: "user",

View File

@@ -213,17 +213,12 @@ export function MessageListView({
}: MessageListViewProps) {
const t = useTranslations("Folder.chat.messageList")
const sharedT = useTranslations("Folder.chat.shared")
const { detail, loading, error, refetch } = useDbMessageDetail(conversationId)
const { detail, loading, error } = useDbMessageDetail(conversationId)
const turnCount = detail?.turns.length ?? 0
const prevStatusRef = useRef(connStatus)
useEffect(() => {
const prev = prevStatusRef.current
prevStatusRef.current = connStatus
if (prev === "prompting" && connStatus && connStatus !== "prompting") {
refetch()
}
}, [connStatus, refetch])
// 移除了 prompting 结束后的立即刷新
// 原因:后端自动持久化可能有延迟,立即刷新会读到不完整数据
// 现在通过清空 pending 来避免累积问题,等用户切换会话或手动刷新时再加载
const prevTurnCountRef = useRef(turnCount)
const prevConvIdRef = useRef(conversationId)