Loop over call state and pass participant audio tracks to individual tile components
// In Call.js | |
// Below, isScreenShare, isLocal, and containsScreenShare are state-access helpers defined in callState.js | |
function getTiles() { | |
let largeTiles = []; | |
let smallTiles = []; | |
Object.entries(callState.callItems).forEach(([id, callItem]) => { | |
const isLarge = | |
isScreenShare(id) || | |
(!isLocal(id) && !containsScreenShare(callState.callItems)); | |
const tile = ( | |
<Tile | |
key={id} | |
videoTrack={callItem.videoTrack} | |
audioTrack={callItem.audioTrack} | |
isLocalPerson={isLocal(id)} | |
isLarge={isLarge} | |
isLoading={callItem.isLoading} | |
/> | |
); | |
if (isLarge) { | |
largeTiles.push(tile); | |
} else { | |
smallTiles.push(tile); | |
} | |
}); | |
return [largeTiles, smallTiles]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment