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

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 // Wrap handleSend to update status
const handleSendWithPersist = useCallback( const handleSendWithPersist = useCallback(
(draft: PromptDraft, selectedModeId?: string | null) => { (draft: PromptDraft, selectedModeId?: string | null) => {
setPendingMessages((prev) => [ setPendingMessages([
...prev,
{ {
id: `pending-${Date.now()}`, id: `pending-${Date.now()}`,
role: "user", role: "user",

View File

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