fix: 修复新对话首次打字出现两个输入框
根因:sendTextMessage 断开状态时立即 setMessages 添加用户消息到 UI, 同时 connect() 触发连接成功后 flush useEffect 再次 setMessages 添加同一条消息, 导致消息重复、ChatPanel 渲染出两个输入区域。 修复:断开状态时只入队不立即显示,由 flush 统一处理。
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user