@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.
42 lines • 1.91 kB
JavaScript
import React from 'react';
import { useSelector } from 'react-redux';
import { View } from 'react-native';
import { HMSTrackSource } from '@100mslive/react-native-hms';
import PeerRTCStatsContainer from './PeerRTCStatsContainer';
import { LocalPeerScreenshareView } from './LocalPeerScreenshareView';
import { PeerVideoTileView } from './PeerVideoTile/PeerVideoTileView';
const _Tile = ({
aspectRatio,
width,
height,
onPeerTileMorePress,
peerTrackNode,
setHmsViewRefs,
style
}) => {
var _peerTrackNode$track, _peerTrackNode$track2, _peerTrackNode$track3;
const showStatsOnTiles = useSelector(state => state.app.joinConfig.showStats);
const trackSource = (_peerTrackNode$track = peerTrackNode.track) === null || _peerTrackNode$track === void 0 ? void 0 : _peerTrackNode$track.source;
const isNonRegularTrack = trackSource && trackSource !== HMSTrackSource.REGULAR;
return /*#__PURE__*/React.createElement(View, {
style: [{
position: 'relative'
}, {
width,
height,
aspectRatio
}, style]
}, isNonRegularTrack && peerTrackNode.peer.isLocal ? /*#__PURE__*/React.createElement(LocalPeerScreenshareView, null) : /*#__PURE__*/React.createElement(PeerVideoTileView, {
ref: ref => setHmsViewRefs(peerTrackNode.id, ref),
peerTrackNode: peerTrackNode,
onMoreOptionsPress: onPeerTileMorePress
}), showStatsOnTiles ? /*#__PURE__*/React.createElement(PeerRTCStatsContainer, {
trackId: (_peerTrackNode$track2 = peerTrackNode.track) === null || _peerTrackNode$track2 === void 0 ? void 0 : _peerTrackNode$track2.trackId,
peerId: peerTrackNode.peer.peerID,
trackSource: (_peerTrackNode$track3 = peerTrackNode.track) === null || _peerTrackNode$track3 === void 0 ? void 0 : _peerTrackNode$track3.source
}) : null);
};
const Tile = /*#__PURE__*/React.memo(_Tile);
Tile.displayName = 'Tile';
export { Tile };
//# sourceMappingURL=Tile.js.map