@100mslive/react-native-room-kit
Version:
100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.
56 lines • 2.24 kB
JavaScript
import { HMSTrackSource, HMSTrackType } from '@100mslive/react-native-hms';
export const degradeOrRestorePeerTrackNodes = (peerTrackNodes, peer, track, isDegraded) => {
const uniqueId = createPeerTrackNodeUniqueId(peer, track);
return peerTrackNodes.map(peerTrackNode => {
if (peerTrackNode.id !== uniqueId) {
return peerTrackNode;
}
return {
...peerTrackNode,
isDegraded
};
});
};
export const removePeerTrackNodes = (peerTrackNodes, peerToRemove) => {
return peerTrackNodes.filter(peerTrackNode => peerTrackNode.peer.peerID !== peerToRemove.peerID);
};
export const removePeerTrackNodesWithTrack = (peerTrackNodes, peer, track) => {
const uniqueId = peer.peerID + (track.source === undefined ? HMSTrackSource.REGULAR : track.source);
return peerTrackNodes.filter(peerTrackNode => peerTrackNode.id !== uniqueId);
};
export const replacePeerTrackNodes = (peerTrackNodes, peerToReplace) => {
return peerTrackNodes.map(peerTrackNode => {
if (peerTrackNode.peer.peerID !== peerToReplace.peerID) {
return peerTrackNode;
}
return {
...peerTrackNode,
peer: peerToReplace
};
});
};
export const replacePeerTrackNodesWithTrack = (peerTrackNodes, peer, track) => {
const uniqueId = peer.peerID + (track.source ?? HMSTrackSource.REGULAR);
return peerTrackNodes.map(peerTrackNode => {
if (peerTrackNode.id !== uniqueId) {
return peerTrackNode;
}
return {
...peerTrackNode,
peer,
track
};
});
};
export const peerTrackNodeExistForPeer = (peerTrackNodes, peer) => {
return peerTrackNodes.findIndex(peerTrackNode => peerTrackNode.peer.peerID === peer.peerID) >= 0;
};
export const peerTrackNodeExistForPeerAndTrack = (peerTrackNodes, peer, track) => {
const uniqueId = createPeerTrackNodeUniqueId(peer, track);
return peerTrackNodes.findIndex(peerTrackNode => peerTrackNode.id === uniqueId) >= 0;
};
export const createPeerTrackNodeUniqueId = (peer, track) => {
const uniqueId = peer.peerID + (track.type === HMSTrackType.VIDEO ? (track === null || track === void 0 ? void 0 : track.source) || HMSTrackSource.REGULAR : HMSTrackSource.REGULAR);
return uniqueId;
};
//# sourceMappingURL=peerTrackNodeUtils.js.map