From d9598ba15f46f7b343e7c43d8fc6a5342ec3cfd3 Mon Sep 17 00:00:00 2001 From: abdussamedulutas Date: Wed, 17 Jun 2026 13:43:49 +0300 Subject: [PATCH] =?UTF-8?q?Studio:=20kabul=20sonras=C4=B1=20E=C5=9Fler=20k?= =?UTF-8?q?olonuna=20y=C3=B6nlendir=20+=20addStream=20duplicate=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - acceptPair başarılı → popTo(1) + pushPeersColumn() → kabul eden taraf anında Eşler kolonunda yeni eşi görür - _call(): aynı type (cam+mic/mic/screen) zaten varsa removeStream sonra addStream - _pushDevicesColumn: aynı cihaz label'ı varsa removeStream sonra addStream (kullanıcı ikinci kez cihaz seçtiğinde 'already exists' hatası önlendi) Co-Authored-By: Claude Sonnet 4.6 --- public/studio/Studio.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/public/studio/Studio.js b/public/studio/Studio.js index 9beddae..5b26105 100644 --- a/public/studio/Studio.js +++ b/public/studio/Studio.js @@ -143,7 +143,9 @@ export default class Studio { bar.remove(); if (ok) { this._watchIncoming(peer); - this._view.refresh(); + // Kabul eden tarafta Eşler kolonuna yönlendir. + this._view.popTo(1); + this._pushPeersColumn(); this._setStatus('online', `${peer.socketId.slice(-8)} kabul edildi`); } else { this._setStatus('error', 'Eşleşme kurulamadı'); @@ -386,7 +388,9 @@ export default class Studio { if (peer) { this._ensureRTC(peer); - peer.rtc.addStream(dev.label || dev.deviceId.slice(-6), stream); + const label = dev.label || dev.deviceId.slice(-6); + if (peer.rtc._streams?.has(label)) peer.rtc.removeStream(label); + peer.rtc.addStream(label, stream); this._view.popTo(4); this._pushStreamsColumn(peer); } else { @@ -475,6 +479,8 @@ export default class Studio { this._setStatus('error', e.message); return; } + // Aynı label zaten varsa önce durdur (kullanıcı ikinci kez tıkladı). + if (peer.rtc._streams?.has(type)) peer.rtc.removeStream(type); peer.rtc.addStream(type, stream); this._setStatus('online', `${type} → ${peer.socketId.slice(-8)}`); this._view.popTo(3);