steep-balloon-41261
10/27/2023, 6:56 AMpolite-kilobyte-67570
10/27/2023, 10:55 AMgreat-piano-33741
10/27/2023, 10:56 AMpolite-kilobyte-67570
10/27/2023, 11:55 AMuseHooks and returns the “newest” one only.great-piano-33741
10/27/2023, 11:58 AMpolite-kilobyte-67570
10/27/2023, 12:04 PMuseOrderedTracks() {
const [orderedTracks, setOrderedTracks] = React.useState([]);
const unOrderedTracks = useTracks();
unOrderedTracks.forEach(track => if(!orderedTracks.includes(track)) setOrderedTracks(tracks => [...tracks, track]));
return orderedTracks[orderedTracks.length-1];
}great-piano-33741
10/27/2023, 12:08 PMpolite-kilobyte-67570
10/27/2023, 12:12 PMmute events here, so that you always re-order the array in a way that the latest track that has been unmuted is chosengreat-piano-33741
10/27/2023, 12:15 PMpolite-kilobyte-67570
10/27/2023, 12:17 PMtrackPublished events are emitted for publications that are already present on the room.
You’ll have to loop over room.participants.foreach(p => p.tracks.forEach)) to handle those.
For locally published tracks you’ll additionally want to handle RoomEvent.LocalTrackPublished, toogreat-piano-33741
10/27/2023, 12:20 PMpolite-kilobyte-67570
10/27/2023, 12:21 PMgreat-piano-33741
10/27/2023, 2:58 PM