From 4316b28b9f36d7497d9eee8782be058057f983c2 Mon Sep 17 00:00:00 2001 From: MatrixSeven Date: Sat, 9 Aug 2025 23:21:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=87=AA=E5=8A=A8=E8=BF=9E=E6=8E=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E7=A7=BB=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E7=8A=B6=E6=80=81=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/webrtc/WebRTCTextReceiver.tsx | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/chuan-next/src/components/webrtc/WebRTCTextReceiver.tsx b/chuan-next/src/components/webrtc/WebRTCTextReceiver.tsx index 1ad7a22..c73f116 100644 --- a/chuan-next/src/components/webrtc/WebRTCTextReceiver.tsx +++ b/chuan-next/src/components/webrtc/WebRTCTextReceiver.tsx @@ -29,7 +29,7 @@ export const WebRTCTextReceiver: React.FC = ({ const [receivedImages, setReceivedImages] = useState>([]); const [isTyping, setIsTyping] = useState(false); const [isValidating, setIsValidating] = useState(false); - + const hasTriedAutoConnect = useRef(false); // 创建共享连接 [需要优化] @@ -184,26 +184,16 @@ export const WebRTCTextReceiver: React.FC = ({ // 处理初始代码连接 useEffect(() => { - if (initialCode && initialCode.length === 6 && !hasAnyConnection && !isAnyConnecting) { + // initialCode isAutoConnected + console.log(`initialCode: ${initialCode}, hasTriedAutoConnect: ${hasTriedAutoConnect.current}`); + if (initialCode && initialCode.length === 6 && !hasTriedAutoConnect.current) { console.log('=== 自动连接初始代码 ===', initialCode); + hasTriedAutoConnect.current = true setInputCode(initialCode); - - const timeoutId = setTimeout(() => { - console.log('=== setTimeout 触发,检查最新状态 ==='); - - if (!hasAnyConnection && !isAnyConnecting) { - console.log('=== 最新状态检查通过,调用 joinRoom ===', initialCode); - joinRoom(initialCode); - } - }, 500); - return () => { - console.log('=== 清理 setTimeout ==='); - clearTimeout(timeoutId); - }; + joinRoom(initialCode); + return; } - // 注意:这里故意不包含 joinRoom 作为依赖, - // 因为我们要的是"一次性"的自动连接行为 - }, [initialCode, hasAnyConnection, isAnyConnecting]); + }, [initialCode]); return (