Studio: kabul sonrası Eşler kolonuna yönlendir + addStream duplicate fix

- 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 <noreply@anthropic.com>
This commit is contained in:
abdussamedulutas 2026-06-17 13:43:49 +03:00
parent 3736d78dfe
commit d9598ba15f
1 changed files with 8 additions and 2 deletions

View File

@ -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);