diff --git a/src/frontend/src/features/layout/components/StageLayout.tsx b/src/frontend/src/features/layout/components/StageLayout.tsx index 3acb9ac86..b1fac8355 100644 --- a/src/frontend/src/features/layout/components/StageLayout.tsx +++ b/src/frontend/src/features/layout/components/StageLayout.tsx @@ -40,19 +40,15 @@ export const StageLayout = () => { // The popped-out share stays mounted below, but out of the grid and the // carousel. It comes back with the other tracks when its window closes. - const visibleTracks = detachedSid - ? tracks.filter( - (track) => - !isTrackReference(track) || track.publication.trackSid !== detachedSid - ) - : tracks - - const detachedTrack = detachedSid - ? tracks.find( - (track) => - isTrackReference(track) && track.publication.trackSid === detachedSid - ) - : undefined + const visibleTracks: TrackReferenceOrPlaceholder[] = [] + let detachedTrack: TrackReferenceOrPlaceholder | undefined + for (const track of tracks) { + if (isTrackReference(track) && track.publication.trackSid === detachedSid) { + detachedTrack = track + } else { + visibleTracks.push(track) + } + } const carouselTracks = visibleTracks.filter( (track) => !isEqualTrackRef(track, pinnedTrackRef)