fix: 修复新对话首次打字出现两个输入框

根因:sendTextMessage 断开状态时立即 setMessages 添加用户消息到 UI,
同时 connect() 触发连接成功后 flush useEffect 再次 setMessages 添加同一条消息,
导致消息重复、ChatPanel 渲染出两个输入区域。

修复:断开状态时只入队不立即显示,由 flush 统一处理。
This commit is contained in:
2026-06-20 14:32:40 +08:00
parent ae09fba400
commit 50c84fce88

View File

@@ -438,12 +438,7 @@ export function useVisionSession(accessToken?: string | null) {
// 未连接时:自动连接,消息加入待发队列
if (statusRef.current !== "connected") {
pendingMessagesRef.current.push({ text: text.trim(), requestId });
// 添加用户消息到 UI立即反馈
setMessages((prev) => [
...prev,
{ role: "user", content: text.trim(), timestamp: Date.now() }],
);
// 自动连接 WebSocket
// 自动连接 WebSocket消息在连接成功后由 flush 统一添加到 UI避免重复
connect(accessToken || undefined);
return;
}