manage screen share preview lifecycle
Build and Publish / Metadata (push) Successful in 2s
Build and Publish / BuildAndDeployAmd64 (push) Successful in 56s

This commit is contained in:
mats committed 2026-09-22 17:05:04 +02:00
1 parent f2d62ac142
commit 1fc8f0d469
1 file changed
+21
+21
View File
@@ -869,9 +869,26 @@ function onRemoteTrack(peer, ev) {
track.addEventListener('ended', () => {
if (peer.screenStreams.get(stream.id) === stream) {
peer.screenStreams.delete(stream.id);
if (!peer.screenStreams.size) {
peer.state = { ...peer.state, sharing: false };
captureRumIssue('Remote screen share ended', 'INFO', {
peerId: peer.id,
peerName: peer.name,
streamId: stream.id,
});
}
renderScreens();
renderTiles();
}
});
stream.addEventListener('inactive', () => {
if (peer.screenStreams.get(stream.id) === stream) {
peer.screenStreams.delete(stream.id);
peer.state = { ...peer.state, sharing: false };
renderScreens();
renderTiles();
}
}, { once: true });
renderScreens();
if (isNewScreenShare) playRetroCue('share');
console.log('remote screen share from', peer.name);
@@ -993,6 +1010,10 @@ async function startScreenShare() {
videoTrack.addEventListener('ended', () => stopScreenShare(stream));
}
renderScreens();
// Open a desktop preview automatically; mobile keeps the in-page preview.
if (window.matchMedia('(min-width: 700px)').matches) {
popOutShare({ key: `me:${stream.id}`, name: `${S.name} (you)`, stream, local: true });
}
renderTiles();
for (const btn of shareButtons) btn.classList.add('active');
toast('You are sharing your screen', 'ok');