@100mslive/react-native-room-kit 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/HMSRoomSetup.js +1 -1
- package/lib/commonjs/HMSRoomSetup.js.map +1 -1
- package/lib/commonjs/Icons/AnswerPhone/assets/answer-phone.png +0 -0
- package/lib/commonjs/Icons/AnswerPhone/assets/answer-phone@2x.png +0 -0
- package/lib/commonjs/Icons/AnswerPhone/assets/answer-phone@3x.png +0 -0
- package/lib/commonjs/Icons/AnswerPhone/index.js +30 -0
- package/lib/commonjs/Icons/AnswerPhone/index.js.map +1 -0
- package/lib/commonjs/Icons/Bluetooth/assets/bluetooth-on.png +0 -0
- package/lib/commonjs/Icons/Bluetooth/assets/bluetooth-on@2x.png +0 -0
- package/lib/commonjs/Icons/Bluetooth/assets/bluetooth-on@3x.png +0 -0
- package/lib/commonjs/Icons/Bluetooth/index.js +30 -0
- package/lib/commonjs/Icons/Bluetooth/index.js.map +1 -0
- package/lib/commonjs/Icons/GenericLogo/assets/generic-logo.png +0 -0
- package/lib/commonjs/Icons/GenericLogo/assets/generic-logo@2x.png +0 -0
- package/lib/commonjs/Icons/GenericLogo/assets/generic-logo@3x.png +0 -0
- package/lib/commonjs/Icons/GenericLogo/index.js +30 -0
- package/lib/commonjs/Icons/GenericLogo/index.js.map +1 -0
- package/lib/commonjs/Icons/Headphones/assets/headphones.png +0 -0
- package/lib/commonjs/Icons/Headphones/assets/headphones@2x.png +0 -0
- package/lib/commonjs/Icons/Headphones/assets/headphones@3x.png +0 -0
- package/lib/commonjs/Icons/Headphones/index.js +30 -0
- package/lib/commonjs/Icons/Headphones/index.js.map +1 -0
- package/lib/commonjs/Icons/Person/assets/person.png +0 -0
- package/lib/commonjs/Icons/Person/assets/person@2x.png +0 -0
- package/lib/commonjs/Icons/Person/assets/person@3x.png +0 -0
- package/lib/commonjs/Icons/Person/index.js +30 -0
- package/lib/commonjs/Icons/Person/index.js.map +1 -0
- package/lib/commonjs/Icons/Speaker/assets/speaker-large.png +0 -0
- package/lib/commonjs/Icons/Speaker/assets/speaker-large@2x.png +0 -0
- package/lib/commonjs/Icons/Speaker/assets/speaker-large@3x.png +0 -0
- package/lib/commonjs/Icons/Speaker/index.js +7 -2
- package/lib/commonjs/Icons/Speaker/index.js.map +1 -1
- package/lib/commonjs/Icons/Wave/assets/wave.png +0 -0
- package/lib/commonjs/Icons/Wave/assets/wave@2x.png +0 -0
- package/lib/commonjs/Icons/Wave/assets/wave@3x.png +0 -0
- package/lib/commonjs/Icons/Wave/index.js +30 -0
- package/lib/commonjs/Icons/Wave/index.js.map +1 -0
- package/lib/commonjs/Icons/index.js +66 -0
- package/lib/commonjs/Icons/index.js.map +1 -1
- package/lib/commonjs/components/BackButton.js +1 -1
- package/lib/commonjs/components/BackButton.js.map +1 -1
- package/lib/commonjs/components/DisplayTrack.js +1 -1
- package/lib/commonjs/components/DisplayTrack.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewEditName.js +1 -1
- package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewJoinButton.js +11 -4
- package/lib/commonjs/components/HMSPreviewJoinButton.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewPeersList.js +9 -32
- package/lib/commonjs/components/HMSPreviewPeersList.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewSubtitle.js +1 -1
- package/lib/commonjs/components/HMSPreviewSubtitle.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewTile.js +11 -61
- package/lib/commonjs/components/HMSPreviewTile.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewTitle.js +0 -1
- package/lib/commonjs/components/HMSPreviewTitle.js.map +1 -1
- package/lib/commonjs/components/{HMSPreviewDeviceSettings.js → HMSSpeakerSettings.js} +69 -161
- package/lib/commonjs/components/HMSSpeakerSettings.js.map +1 -0
- package/lib/commonjs/components/Header.js +2 -1
- package/lib/commonjs/components/Header.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsList.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsList.js.map +1 -1
- package/lib/commonjs/components/PeerSettingsModalContent.js +4 -3
- package/lib/commonjs/components/PeerSettingsModalContent.js.map +1 -1
- package/lib/commonjs/components/Preview.js +72 -21
- package/lib/commonjs/components/Preview.js.map +1 -1
- package/lib/commonjs/components/RoomSettingsModalContent.js +5 -5
- package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/commonjs/hooks-util.js +111 -93
- package/lib/commonjs/hooks-util.js.map +1 -1
- package/lib/commonjs/redux/actionTypes.js +2 -0
- package/lib/commonjs/redux/actionTypes.js.map +1 -1
- package/lib/commonjs/redux/actions/index.js +11 -1
- package/lib/commonjs/redux/actions/index.js.map +1 -1
- package/lib/commonjs/redux/reducers/hmsStates.js +12 -1
- package/lib/commonjs/redux/reducers/hmsStates.js.map +1 -1
- package/lib/commonjs/redux/reducers/userState.js +1 -1
- package/lib/commonjs/redux/reducers/userState.js.map +1 -1
- package/lib/commonjs/utils/theme.js +5 -1
- package/lib/commonjs/utils/theme.js.map +1 -1
- package/lib/module/HMSRoomSetup.js +1 -1
- package/lib/module/HMSRoomSetup.js.map +1 -1
- package/lib/module/Icons/AnswerPhone/assets/answer-phone.png +0 -0
- package/lib/module/Icons/AnswerPhone/assets/answer-phone@2x.png +0 -0
- package/lib/module/Icons/AnswerPhone/assets/answer-phone@3x.png +0 -0
- package/lib/module/Icons/AnswerPhone/index.js +22 -0
- package/lib/module/Icons/AnswerPhone/index.js.map +1 -0
- package/lib/module/Icons/Bluetooth/assets/bluetooth-on.png +0 -0
- package/lib/module/Icons/Bluetooth/assets/bluetooth-on@2x.png +0 -0
- package/lib/module/Icons/Bluetooth/assets/bluetooth-on@3x.png +0 -0
- package/lib/module/Icons/Bluetooth/index.js +22 -0
- package/lib/module/Icons/Bluetooth/index.js.map +1 -0
- package/lib/module/Icons/GenericLogo/assets/generic-logo.png +0 -0
- package/lib/module/Icons/GenericLogo/assets/generic-logo@2x.png +0 -0
- package/lib/module/Icons/GenericLogo/assets/generic-logo@3x.png +0 -0
- package/lib/module/Icons/GenericLogo/index.js +22 -0
- package/lib/module/Icons/GenericLogo/index.js.map +1 -0
- package/lib/module/Icons/Headphones/assets/headphones.png +0 -0
- package/lib/module/Icons/Headphones/assets/headphones@2x.png +0 -0
- package/lib/module/Icons/Headphones/assets/headphones@3x.png +0 -0
- package/lib/module/Icons/Headphones/index.js +22 -0
- package/lib/module/Icons/Headphones/index.js.map +1 -0
- package/lib/module/Icons/Person/assets/person.png +0 -0
- package/lib/module/Icons/Person/assets/person@2x.png +0 -0
- package/lib/module/Icons/Person/assets/person@3x.png +0 -0
- package/lib/module/Icons/Person/index.js +22 -0
- package/lib/module/Icons/Person/index.js.map +1 -0
- package/lib/module/Icons/Speaker/assets/speaker-large.png +0 -0
- package/lib/module/Icons/Speaker/assets/speaker-large@2x.png +0 -0
- package/lib/module/Icons/Speaker/assets/speaker-large@3x.png +0 -0
- package/lib/module/Icons/Speaker/index.js +7 -2
- package/lib/module/Icons/Speaker/index.js.map +1 -1
- package/lib/module/Icons/Wave/assets/wave.png +0 -0
- package/lib/module/Icons/Wave/assets/wave@2x.png +0 -0
- package/lib/module/Icons/Wave/assets/wave@3x.png +0 -0
- package/lib/module/Icons/Wave/index.js +22 -0
- package/lib/module/Icons/Wave/index.js.map +1 -0
- package/lib/module/Icons/index.js +6 -0
- package/lib/module/Icons/index.js.map +1 -1
- package/lib/module/components/BackButton.js +1 -1
- package/lib/module/components/BackButton.js.map +1 -1
- package/lib/module/components/DisplayTrack.js +1 -1
- package/lib/module/components/DisplayTrack.js.map +1 -1
- package/lib/module/components/HMSPreviewEditName.js +1 -1
- package/lib/module/components/HMSPreviewEditName.js.map +1 -1
- package/lib/module/components/HMSPreviewJoinButton.js +11 -4
- package/lib/module/components/HMSPreviewJoinButton.js.map +1 -1
- package/lib/module/components/HMSPreviewPeersList.js +9 -32
- package/lib/module/components/HMSPreviewPeersList.js.map +1 -1
- package/lib/module/components/HMSPreviewSubtitle.js +1 -1
- package/lib/module/components/HMSPreviewSubtitle.js.map +1 -1
- package/lib/module/components/HMSPreviewTile.js +12 -62
- package/lib/module/components/HMSPreviewTile.js.map +1 -1
- package/lib/module/components/HMSPreviewTitle.js +0 -1
- package/lib/module/components/HMSPreviewTitle.js.map +1 -1
- package/lib/module/components/HMSSpeakerSettings.js +204 -0
- package/lib/module/components/HMSSpeakerSettings.js.map +1 -0
- package/lib/module/components/Header.js +2 -1
- package/lib/module/components/Header.js.map +1 -1
- package/lib/module/components/Participants/ParticipantsList.js +1 -1
- package/lib/module/components/Participants/ParticipantsList.js.map +1 -1
- package/lib/module/components/PeerSettingsModalContent.js +4 -3
- package/lib/module/components/PeerSettingsModalContent.js.map +1 -1
- package/lib/module/components/Preview.js +73 -23
- package/lib/module/components/Preview.js.map +1 -1
- package/lib/module/components/RoomSettingsModalContent.js +5 -5
- package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/module/hooks-util.js +114 -103
- package/lib/module/hooks-util.js.map +1 -1
- package/lib/module/redux/actionTypes.js +2 -0
- package/lib/module/redux/actionTypes.js.map +1 -1
- package/lib/module/redux/actions/index.js +8 -0
- package/lib/module/redux/actions/index.js.map +1 -1
- package/lib/module/redux/reducers/hmsStates.js +12 -1
- package/lib/module/redux/reducers/hmsStates.js.map +1 -1
- package/lib/module/redux/reducers/userState.js +1 -1
- package/lib/module/redux/reducers/userState.js.map +1 -1
- package/lib/module/utils/theme.js +5 -1
- package/lib/module/utils/theme.js.map +1 -1
- package/lib/typescript/Icons/AnswerPhone/index.d.ts +7 -0
- package/lib/typescript/Icons/AnswerPhone/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Bluetooth/index.d.ts +7 -0
- package/lib/typescript/Icons/Bluetooth/index.d.ts.map +1 -0
- package/lib/typescript/Icons/GenericLogo/index.d.ts +7 -0
- package/lib/typescript/Icons/GenericLogo/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Headphones/index.d.ts +7 -0
- package/lib/typescript/Icons/Headphones/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Person/index.d.ts +7 -0
- package/lib/typescript/Icons/Person/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Speaker/index.d.ts +1 -0
- package/lib/typescript/Icons/Speaker/index.d.ts.map +1 -1
- package/lib/typescript/Icons/Wave/index.d.ts +7 -0
- package/lib/typescript/Icons/Wave/index.d.ts.map +1 -0
- package/lib/typescript/Icons/index.d.ts +6 -0
- package/lib/typescript/Icons/index.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewJoinButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewPeersList.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewTile.d.ts.map +1 -1
- package/lib/typescript/components/HMSSpeakerSettings.d.ts +3 -0
- package/lib/typescript/components/HMSSpeakerSettings.d.ts.map +1 -0
- package/lib/typescript/components/Header.d.ts.map +1 -1
- package/lib/typescript/components/Participants/ParticipantsList.d.ts.map +1 -1
- package/lib/typescript/components/PeerSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/components/Preview.d.ts.map +1 -1
- package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/hooks-util.d.ts +1 -1
- package/lib/typescript/hooks-util.d.ts.map +1 -1
- package/lib/typescript/redux/actionTypes.d.ts +3 -1
- package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
- package/lib/typescript/redux/actions/index.d.ts +8 -0
- package/lib/typescript/redux/actions/index.d.ts.map +1 -1
- package/lib/typescript/redux/index.d.ts +1 -0
- package/lib/typescript/redux/index.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/hmsStates.d.ts +11 -2
- package/lib/typescript/redux/reducers/hmsStates.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/index.d.ts +1 -0
- package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
- package/lib/typescript/utils/theme.d.ts +4 -0
- package/lib/typescript/utils/theme.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/HMSRoomSetup.tsx +1 -1
- package/src/Icons/AnswerPhone/assets/answer-phone.png +0 -0
- package/src/Icons/AnswerPhone/assets/answer-phone@2x.png +0 -0
- package/src/Icons/AnswerPhone/assets/answer-phone@3x.png +0 -0
- package/src/Icons/AnswerPhone/index.tsx +27 -0
- package/src/Icons/Bluetooth/assets/bluetooth-on.png +0 -0
- package/src/Icons/Bluetooth/assets/bluetooth-on@2x.png +0 -0
- package/src/Icons/Bluetooth/assets/bluetooth-on@3x.png +0 -0
- package/src/Icons/Bluetooth/index.tsx +27 -0
- package/src/Icons/GenericLogo/assets/generic-logo.png +0 -0
- package/src/Icons/GenericLogo/assets/generic-logo@2x.png +0 -0
- package/src/Icons/GenericLogo/assets/generic-logo@3x.png +0 -0
- package/src/Icons/GenericLogo/index.tsx +27 -0
- package/src/Icons/Headphones/assets/headphones.png +0 -0
- package/src/Icons/Headphones/assets/headphones@2x.png +0 -0
- package/src/Icons/Headphones/assets/headphones@3x.png +0 -0
- package/src/Icons/Headphones/index.tsx +27 -0
- package/src/Icons/Person/assets/person.png +0 -0
- package/src/Icons/Person/assets/person@2x.png +0 -0
- package/src/Icons/Person/assets/person@3x.png +0 -0
- package/src/Icons/Person/index.tsx +27 -0
- package/src/Icons/Speaker/assets/speaker-large.png +0 -0
- package/src/Icons/Speaker/assets/speaker-large@2x.png +0 -0
- package/src/Icons/Speaker/assets/speaker-large@3x.png +0 -0
- package/src/Icons/Speaker/index.tsx +10 -2
- package/src/Icons/Wave/assets/wave.png +0 -0
- package/src/Icons/Wave/assets/wave@2x.png +0 -0
- package/src/Icons/Wave/assets/wave@3x.png +0 -0
- package/src/Icons/Wave/index.tsx +24 -0
- package/src/Icons/index.ts +6 -0
- package/src/components/BackButton.tsx +1 -1
- package/src/components/DisplayTrack.tsx +1 -1
- package/src/components/HMSPreviewEditName.tsx +1 -1
- package/src/components/HMSPreviewJoinButton.tsx +21 -4
- package/src/components/HMSPreviewPeersList.tsx +19 -40
- package/src/components/HMSPreviewSubtitle.tsx +1 -1
- package/src/components/HMSPreviewTile.tsx +11 -67
- package/src/components/HMSPreviewTitle.tsx +0 -1
- package/src/components/HMSSpeakerSettings.tsx +259 -0
- package/src/components/Header.tsx +4 -1
- package/src/components/Participants/ParticipantsList.tsx +0 -1
- package/src/components/PeerSettingsModalContent.tsx +7 -5
- package/src/components/Preview.tsx +92 -37
- package/src/components/RoomSettingsModalContent.tsx +7 -6
- package/src/hooks-util.ts +133 -103
- package/src/redux/actionTypes.ts +2 -0
- package/src/redux/actions/index.ts +10 -0
- package/src/redux/reducers/hmsStates.ts +28 -1
- package/src/redux/reducers/userState.ts +1 -1
- package/src/utils/theme.ts +5 -1
- package/lib/commonjs/components/HMSPreviewDeviceSettings.js.map +0 -1
- package/lib/module/components/HMSPreviewDeviceSettings.js +0 -296
- package/lib/module/components/HMSPreviewDeviceSettings.js.map +0 -1
- package/lib/typescript/components/HMSPreviewDeviceSettings.d.ts +0 -3
- package/lib/typescript/components/HMSPreviewDeviceSettings.d.ts.map +0 -1
- package/src/components/HMSPreviewDeviceSettings.tsx +0 -387
|
@@ -117,7 +117,6 @@ export const ParticipantsList: React.FC<ParticipantsListProps> = ({ data }) => {
|
|
|
117
117
|
<View style={styles.participantDescription}>
|
|
118
118
|
<Text style={styles.participantName} numberOfLines={1}>
|
|
119
119
|
{peer.name}
|
|
120
|
-
{peer.isLocal && ' (You)'}
|
|
121
120
|
</Text>
|
|
122
121
|
<Text style={styles.participantRole} numberOfLines={1}>
|
|
123
122
|
{peer.role?.name}
|
|
@@ -41,6 +41,7 @@ export const PeerSettingsModalContent: React.FC<
|
|
|
41
41
|
const spotlightTrackId = useSelector(
|
|
42
42
|
(state: RootState) => state.user.spotlightTrackId
|
|
43
43
|
);
|
|
44
|
+
const debugMode = useSelector((state: RootState) => state.user.debugMode);
|
|
44
45
|
const { handleModalVisibleType: setModalVisible } = useModalType();
|
|
45
46
|
|
|
46
47
|
const removePeer = () => {
|
|
@@ -241,9 +242,10 @@ export const PeerSettingsModalContent: React.FC<
|
|
|
241
242
|
) : null}
|
|
242
243
|
|
|
243
244
|
{/* Don't show Capture Screenshot option, if track is screenshare of local peer */}
|
|
244
|
-
{
|
|
245
|
-
peerTrackNode.
|
|
246
|
-
|
|
245
|
+
{!debugMode ||
|
|
246
|
+
(peerTrackNode.peer.isLocal &&
|
|
247
|
+
peerTrackNode.track &&
|
|
248
|
+
peerTrackNode.track.source === HMSTrackSource.SCREEN) ? null : (
|
|
247
249
|
<SettingItem
|
|
248
250
|
text="Capture Screenshot"
|
|
249
251
|
IconType={MaterialCommunityIcons}
|
|
@@ -254,7 +256,7 @@ export const PeerSettingsModalContent: React.FC<
|
|
|
254
256
|
)}
|
|
255
257
|
|
|
256
258
|
{/* Local Image Capture is only available for local peer */}
|
|
257
|
-
{peerTrackNode.peer.isLocal ? (
|
|
259
|
+
{debugMode && peerTrackNode.peer.isLocal ? (
|
|
258
260
|
<SettingItem
|
|
259
261
|
text="Local Image Capture"
|
|
260
262
|
IconType={MaterialCommunityIcons}
|
|
@@ -267,7 +269,7 @@ export const PeerSettingsModalContent: React.FC<
|
|
|
267
269
|
) : null}
|
|
268
270
|
|
|
269
271
|
{/* Don't show Streaming Quality option for local peer */}
|
|
270
|
-
{!peer.isLocal ? (
|
|
272
|
+
{debugMode && !peer.isLocal ? (
|
|
271
273
|
<SettingItem
|
|
272
274
|
text="Streaming Quality"
|
|
273
275
|
IconType={Ionicons}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import React, { useEffect } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
3
|
import { AvoidSoftInput } from 'react-native-avoid-softinput';
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
useSafeAreaInsets,
|
|
8
|
-
} from 'react-native-safe-area-context';
|
|
4
|
+
import { useSelector } from 'react-redux';
|
|
5
|
+
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
6
|
+
import LinearGradient from 'react-native-linear-gradient';
|
|
9
7
|
|
|
10
8
|
import { COLORS } from '../utils/theme';
|
|
11
9
|
|
|
@@ -19,7 +17,9 @@ import { HMSPreviewPeersList } from './HMSPreviewPeersList';
|
|
|
19
17
|
import { HMSPreviewSubtitle } from './HMSPreviewSubtitle';
|
|
20
18
|
import { HMSPreviewTile } from './HMSPreviewTile';
|
|
21
19
|
import { HMSPreviewTitle } from './HMSPreviewTitle';
|
|
22
|
-
import {
|
|
20
|
+
import { HMSSpeakerSettings } from './HMSSpeakerSettings';
|
|
21
|
+
import { GenericLogoIcon, NetworkQualityIcon } from '../Icons';
|
|
22
|
+
import type { RootState } from '../redux';
|
|
23
23
|
|
|
24
24
|
export const Preview = ({
|
|
25
25
|
join,
|
|
@@ -28,7 +28,10 @@ export const Preview = ({
|
|
|
28
28
|
join(): void;
|
|
29
29
|
loadingButtonState: boolean;
|
|
30
30
|
}) => {
|
|
31
|
-
const
|
|
31
|
+
const localPeerNetworkQuality = useSelector(
|
|
32
|
+
(state: RootState) =>
|
|
33
|
+
state.hmsStates.localPeer?.networkQuality?.downlinkQuality
|
|
34
|
+
);
|
|
32
35
|
|
|
33
36
|
useEffect(() => {
|
|
34
37
|
AvoidSoftInput.setAdjustNothing();
|
|
@@ -38,58 +41,111 @@ export const Preview = ({
|
|
|
38
41
|
}, []);
|
|
39
42
|
|
|
40
43
|
return (
|
|
41
|
-
<
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
<View style={styles.container}>
|
|
45
|
+
<HMSPreviewTile />
|
|
46
|
+
|
|
47
|
+
<LinearGradient
|
|
48
|
+
colors={[
|
|
49
|
+
'#000000',
|
|
50
|
+
'rgba(0, 0, 0, 0.9)',
|
|
51
|
+
'rgba(0, 0, 0, 0.7)',
|
|
52
|
+
'rgba(0, 0, 0, 0.1)',
|
|
53
|
+
'rgba(0, 0, 0, 0.05)',
|
|
54
|
+
'rgba(0, 0, 0, 0)',
|
|
55
|
+
]}
|
|
56
|
+
locations={[0.45, 0.55, 0.7, 0.9, 0.95, 1]}
|
|
57
|
+
style={{
|
|
58
|
+
position: 'absolute',
|
|
59
|
+
top: 0,
|
|
60
|
+
width: '100%',
|
|
61
|
+
height: 260,
|
|
62
|
+
}}
|
|
63
|
+
/>
|
|
64
|
+
|
|
65
|
+
<SafeAreaView
|
|
66
|
+
style={{ position: 'absolute', top: 0, width: '100%', marginTop: 24 }}
|
|
67
|
+
edges={['top', 'left', 'right']}
|
|
68
|
+
mode="margin"
|
|
45
69
|
>
|
|
46
|
-
<
|
|
70
|
+
<GenericLogoIcon style={{ alignSelf: 'center', marginBottom: 16 }} />
|
|
47
71
|
|
|
48
72
|
<HMSPreviewTitle />
|
|
49
73
|
|
|
50
74
|
<HMSPreviewSubtitle />
|
|
51
75
|
|
|
52
76
|
<HMSPreviewPeersList />
|
|
77
|
+
</SafeAreaView>
|
|
78
|
+
|
|
79
|
+
<SafeAreaView
|
|
80
|
+
style={{ position: 'absolute', top: 0 }}
|
|
81
|
+
edges={['top']}
|
|
82
|
+
mode="margin"
|
|
83
|
+
>
|
|
84
|
+
<BackButton />
|
|
85
|
+
</SafeAreaView>
|
|
86
|
+
|
|
87
|
+
<View
|
|
88
|
+
style={{
|
|
89
|
+
position: 'absolute',
|
|
90
|
+
bottom: 0,
|
|
91
|
+
width: '100%',
|
|
92
|
+
}}
|
|
93
|
+
>
|
|
94
|
+
<View
|
|
95
|
+
style={{
|
|
96
|
+
marginLeft: 8,
|
|
97
|
+
marginBottom: 8,
|
|
98
|
+
borderRadius: 8,
|
|
99
|
+
paddingVertical: 4,
|
|
100
|
+
paddingHorizontal: 8,
|
|
101
|
+
backgroundColor: COLORS.BACKGROUND.DIM_80,
|
|
102
|
+
alignSelf: 'flex-start',
|
|
103
|
+
}}
|
|
104
|
+
>
|
|
105
|
+
<NetworkQualityIcon quality={localPeerNetworkQuality} />
|
|
106
|
+
</View>
|
|
53
107
|
|
|
54
|
-
<
|
|
108
|
+
<View
|
|
109
|
+
style={{
|
|
110
|
+
flex: 1,
|
|
111
|
+
backgroundColor: COLORS.BACKGROUND.DEFAULT,
|
|
112
|
+
borderTopLeftRadius: 16,
|
|
113
|
+
borderTopRightRadius: 16,
|
|
114
|
+
padding: 16,
|
|
115
|
+
}}
|
|
116
|
+
>
|
|
117
|
+
<View style={styles.controlsContainer}>
|
|
118
|
+
<View style={styles.micAndCameraControls}>
|
|
119
|
+
<HMSManageLocalAudio />
|
|
55
120
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
121
|
+
<View style={styles.manageLocalVideoWrapper}>
|
|
122
|
+
<HMSManageLocalVideo />
|
|
123
|
+
</View>
|
|
59
124
|
|
|
60
|
-
|
|
61
|
-
<HMSManageLocalVideo />
|
|
125
|
+
<HMSManageCameraRotation />
|
|
62
126
|
</View>
|
|
63
127
|
|
|
64
|
-
<
|
|
128
|
+
<HMSSpeakerSettings />
|
|
65
129
|
</View>
|
|
66
130
|
|
|
67
|
-
<
|
|
68
|
-
|
|
131
|
+
<View style={styles.joinButtonRow}>
|
|
132
|
+
<HMSPreviewEditName />
|
|
69
133
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
>
|
|
73
|
-
<HMSPreviewEditName />
|
|
74
|
-
|
|
75
|
-
<HMSPreviewJoinButton onJoin={join} loading={loadingButtonState} />
|
|
134
|
+
<HMSPreviewJoinButton onJoin={join} loading={loadingButtonState} />
|
|
135
|
+
</View>
|
|
76
136
|
</View>
|
|
77
|
-
</
|
|
78
|
-
</
|
|
137
|
+
</View>
|
|
138
|
+
</View>
|
|
79
139
|
);
|
|
80
140
|
};
|
|
81
141
|
|
|
82
142
|
const styles = StyleSheet.create({
|
|
83
143
|
container: {
|
|
84
144
|
flex: 1,
|
|
145
|
+
position: 'relative',
|
|
85
146
|
backgroundColor: COLORS.BACKGROUND.DIM,
|
|
86
147
|
},
|
|
87
|
-
scrollContainer: {
|
|
88
|
-
flexGrow: 1,
|
|
89
|
-
},
|
|
90
148
|
controlsContainer: {
|
|
91
|
-
marginHorizontal: 24,
|
|
92
|
-
marginTop: 24,
|
|
93
149
|
flexDirection: 'row',
|
|
94
150
|
alignItems: 'center',
|
|
95
151
|
justifyContent: 'space-between',
|
|
@@ -101,8 +157,7 @@ const styles = StyleSheet.create({
|
|
|
101
157
|
marginHorizontal: 16,
|
|
102
158
|
},
|
|
103
159
|
joinButtonRow: {
|
|
104
|
-
|
|
105
|
-
marginTop: 16,
|
|
160
|
+
marginVertical: 16,
|
|
106
161
|
flexDirection: 'row',
|
|
107
162
|
},
|
|
108
163
|
});
|
|
@@ -435,7 +435,7 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
435
435
|
/>
|
|
436
436
|
) : null}
|
|
437
437
|
|
|
438
|
-
{localPeerRole?.permissions?.hlsStreaming ? (
|
|
438
|
+
{debugMode && localPeerRole?.permissions?.hlsStreaming ? (
|
|
439
439
|
<SettingItem
|
|
440
440
|
onPress={handleHLSStreaming}
|
|
441
441
|
text={`${isHLSStreaming === true ? 'Stop' : 'Start'} HLS Streaming`}
|
|
@@ -444,7 +444,7 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
444
444
|
/>
|
|
445
445
|
) : null}
|
|
446
446
|
|
|
447
|
-
{localPeerRole?.permissions?.rtmpStreaming ? (
|
|
447
|
+
{debugMode && localPeerRole?.permissions?.rtmpStreaming ? (
|
|
448
448
|
<SettingItem
|
|
449
449
|
onPress={handleRTMPAndRecording}
|
|
450
450
|
text={
|
|
@@ -457,7 +457,7 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
457
457
|
/>
|
|
458
458
|
) : null}
|
|
459
459
|
|
|
460
|
-
{localPeerRole?.permissions?.changeRole ? (
|
|
460
|
+
{debugMode && localPeerRole?.permissions?.changeRole ? (
|
|
461
461
|
<SettingItem
|
|
462
462
|
onPress={changeBulkRole}
|
|
463
463
|
text="Bulk Role Change"
|
|
@@ -466,7 +466,7 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
466
466
|
/>
|
|
467
467
|
) : null}
|
|
468
468
|
|
|
469
|
-
{localPeerRole?.permissions?.mute ? (
|
|
469
|
+
{debugMode && localPeerRole?.permissions?.mute ? (
|
|
470
470
|
<SettingItem
|
|
471
471
|
onPress={handleRemoteAudiosMute}
|
|
472
472
|
text="Remote Mute All Audio Tracks"
|
|
@@ -475,8 +475,9 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
475
475
|
/>
|
|
476
476
|
) : null}
|
|
477
477
|
|
|
478
|
-
{
|
|
479
|
-
localPeerRole?.permissions?.
|
|
478
|
+
{debugMode &&
|
|
479
|
+
(localPeerRole?.permissions?.mute ||
|
|
480
|
+
localPeerRole?.permissions?.unmute) ? (
|
|
480
481
|
<SettingItem
|
|
481
482
|
onPress={changeTrackState}
|
|
482
483
|
text="Change Track State For Role"
|
package/src/hooks-util.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
HMSMessage,
|
|
6
6
|
HMSPIPListenerActions,
|
|
7
7
|
HMSPeer,
|
|
8
|
-
|
|
8
|
+
HMSPeerUpdate,
|
|
9
9
|
HMSRemotePeer,
|
|
10
10
|
HMSRoleChangeRequest,
|
|
11
11
|
HMSRoom,
|
|
@@ -33,8 +33,10 @@ import type { RootState } from './redux';
|
|
|
33
33
|
import {
|
|
34
34
|
addMessage,
|
|
35
35
|
addPinnedMessage,
|
|
36
|
+
addToPreviewPeersList,
|
|
36
37
|
changePipModeStatus,
|
|
37
38
|
clearStore,
|
|
39
|
+
removeFromPreviewPeersList,
|
|
38
40
|
saveUserData,
|
|
39
41
|
setHMSLocalPeerState,
|
|
40
42
|
setHMSRoleState,
|
|
@@ -45,9 +47,9 @@ import {
|
|
|
45
47
|
} from './redux/actions';
|
|
46
48
|
import {
|
|
47
49
|
degradeOrRestorePeerTrackNodes,
|
|
48
|
-
|
|
50
|
+
peerTrackNodeExistForPeer,
|
|
49
51
|
peerTrackNodeExistForPeerAndTrack,
|
|
50
|
-
|
|
52
|
+
removePeerTrackNodes,
|
|
51
53
|
removePeerTrackNodesWithTrack,
|
|
52
54
|
replacePeerTrackNodes,
|
|
53
55
|
replacePeerTrackNodesWithTrack,
|
|
@@ -71,6 +73,7 @@ import {
|
|
|
71
73
|
import { selectIsHLSViewer } from './hooks-util-selectors';
|
|
72
74
|
|
|
73
75
|
export const useHMSListeners = (
|
|
76
|
+
meetingState: MeetingState,
|
|
74
77
|
setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>,
|
|
75
78
|
setMeetingState: React.Dispatch<React.SetStateAction<MeetingState>>
|
|
76
79
|
) => {
|
|
@@ -79,7 +82,12 @@ export const useHMSListeners = (
|
|
|
79
82
|
|
|
80
83
|
useHMSRoomUpdate(hmsInstance, setMeetingState);
|
|
81
84
|
|
|
82
|
-
|
|
85
|
+
useHMSPeersUpdate(
|
|
86
|
+
meetingState,
|
|
87
|
+
hmsInstance,
|
|
88
|
+
updateLocalPeer,
|
|
89
|
+
setPeerTrackNodes
|
|
90
|
+
);
|
|
83
91
|
|
|
84
92
|
useHMSTrackUpdate(hmsInstance, updateLocalPeer, setPeerTrackNodes);
|
|
85
93
|
};
|
|
@@ -198,72 +206,94 @@ const useHMSRoomUpdate = (
|
|
|
198
206
|
}, [hmsInstance]);
|
|
199
207
|
};
|
|
200
208
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
//
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
//
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
//
|
|
245
|
-
//
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
209
|
+
type PeerUpdate = {
|
|
210
|
+
peer: HMSPeer;
|
|
211
|
+
type: HMSPeerUpdate;
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
const useHMSPeersUpdate = (
|
|
215
|
+
meetingState: MeetingState,
|
|
216
|
+
hmsInstance: HMSSDK,
|
|
217
|
+
updateLocalPeer: () => void,
|
|
218
|
+
setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>
|
|
219
|
+
) => {
|
|
220
|
+
const dispatch = useDispatch();
|
|
221
|
+
const inMeeting = meetingState === MeetingState.IN_MEETING;
|
|
222
|
+
|
|
223
|
+
useEffect(() => {
|
|
224
|
+
const peerUpdateHandler = ({ peer, type }: PeerUpdate) => {
|
|
225
|
+
// Handle State from Preview screen
|
|
226
|
+
if (!inMeeting) {
|
|
227
|
+
if (type === HMSPeerUpdate.PEER_JOINED) {
|
|
228
|
+
dispatch(addToPreviewPeersList(peer));
|
|
229
|
+
} else if (type === HMSPeerUpdate.PEER_LEFT) {
|
|
230
|
+
dispatch(removeFromPreviewPeersList(peer));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Handle State for Meeting screen
|
|
235
|
+
if (type === HMSPeerUpdate.PEER_JOINED) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (type === HMSPeerUpdate.PEER_LEFT) {
|
|
239
|
+
setPeerTrackNodes((prevPeerTrackNodes) =>
|
|
240
|
+
removePeerTrackNodes(prevPeerTrackNodes, peer)
|
|
241
|
+
);
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
if (peer.isLocal) {
|
|
245
|
+
setPeerTrackNodes((prevPeerTrackNodes) => {
|
|
246
|
+
if (peerTrackNodeExistForPeer(prevPeerTrackNodes, peer)) {
|
|
247
|
+
return replacePeerTrackNodes(prevPeerTrackNodes, peer);
|
|
248
|
+
}
|
|
249
|
+
return prevPeerTrackNodes;
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
// - TODO: update local localPeer state
|
|
253
|
+
// - Pass this updated data to Meeting component -> DisplayView component
|
|
254
|
+
updateLocalPeer();
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
if (type === HMSPeerUpdate.ROLE_CHANGED) {
|
|
258
|
+
if (
|
|
259
|
+
peer.role?.publishSettings?.allowed === undefined ||
|
|
260
|
+
(peer.role?.publishSettings?.allowed &&
|
|
261
|
+
peer.role?.publishSettings?.allowed.length < 1)
|
|
262
|
+
) {
|
|
263
|
+
setPeerTrackNodes((prevPeerTrackNodes) => {
|
|
264
|
+
if (peerTrackNodeExistForPeer(prevPeerTrackNodes, peer)) {
|
|
265
|
+
return removePeerTrackNodes(prevPeerTrackNodes, peer);
|
|
266
|
+
}
|
|
267
|
+
return prevPeerTrackNodes;
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
if (
|
|
273
|
+
type === HMSPeerUpdate.METADATA_CHANGED ||
|
|
274
|
+
type === HMSPeerUpdate.NAME_CHANGED ||
|
|
275
|
+
type === HMSPeerUpdate.NETWORK_QUALITY_UPDATED
|
|
276
|
+
) {
|
|
277
|
+
setPeerTrackNodes((prevPeerTrackNodes) => {
|
|
278
|
+
if (peerTrackNodeExistForPeer(prevPeerTrackNodes, peer)) {
|
|
279
|
+
return replacePeerTrackNodes(prevPeerTrackNodes, peer);
|
|
280
|
+
}
|
|
281
|
+
return prevPeerTrackNodes;
|
|
282
|
+
});
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
hmsInstance.addEventListener(
|
|
288
|
+
HMSUpdateListenerActions.ON_PEER_UPDATE,
|
|
289
|
+
peerUpdateHandler
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
return () => {
|
|
293
|
+
hmsInstance.removeEventListener(HMSUpdateListenerActions.ON_PEER_UPDATE);
|
|
294
|
+
};
|
|
295
|
+
}, [inMeeting, hmsInstance]); // TODO: When `inMeeting` becomes true Peer Update is resubscribed, we might lose some events during that time
|
|
296
|
+
};
|
|
267
297
|
|
|
268
298
|
type TrackUpdate = {
|
|
269
299
|
peer: HMSPeer;
|
|
@@ -527,7 +557,7 @@ export const useHMSSessionStoreListeners = () => {
|
|
|
527
557
|
useEffect(() => {
|
|
528
558
|
// Check if instance of HMSSessionStore is available
|
|
529
559
|
if (hmsSessionStore) {
|
|
530
|
-
let toastTimeoutId: NodeJS.Timeout | null = null;
|
|
560
|
+
// let toastTimeoutId: NodeJS.Timeout | null = null;
|
|
531
561
|
|
|
532
562
|
const addSessionStoreListeners = () => {
|
|
533
563
|
// Handle 'spotlight' key values
|
|
@@ -575,8 +605,8 @@ export const useHMSSessionStoreListeners = () => {
|
|
|
575
605
|
)
|
|
576
606
|
);
|
|
577
607
|
|
|
578
|
-
let lastSpotlightValue: HMSSessionStoreValue = null;
|
|
579
|
-
let lastPinnedMessageValue: HMSSessionStoreValue = null;
|
|
608
|
+
// let lastSpotlightValue: HMSSessionStoreValue = null;
|
|
609
|
+
// let lastPinnedMessageValue: HMSSessionStoreValue = null;
|
|
580
610
|
|
|
581
611
|
// Add subscription for `spotlight` & `pinnedMessage` keys updates on Session Store
|
|
582
612
|
const subscription = hmsSessionStore.addKeyChangeListener<
|
|
@@ -598,41 +628,41 @@ export const useHMSSessionStoreListeners = () => {
|
|
|
598
628
|
handleSpotlightIdChange(data.value);
|
|
599
629
|
|
|
600
630
|
// Showing Toast message if value has actually changed
|
|
601
|
-
if (
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
) {
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
lastSpotlightValue = data.value;
|
|
631
|
+
// if (
|
|
632
|
+
// data.value !== lastSpotlightValue &&
|
|
633
|
+
// (data.value || lastSpotlightValue)
|
|
634
|
+
// ) {
|
|
635
|
+
// Toast.showWithGravity(
|
|
636
|
+
// `SessionStore: \`spotlight\` key's value changed to ${data.value}`,
|
|
637
|
+
// Toast.LONG,
|
|
638
|
+
// Toast.TOP
|
|
639
|
+
// );
|
|
640
|
+
// }
|
|
641
|
+
|
|
642
|
+
// lastSpotlightValue = data.value;
|
|
613
643
|
break;
|
|
614
644
|
}
|
|
615
645
|
case 'pinnedMessage': {
|
|
616
646
|
handlePinnedMessageChange(data.value);
|
|
617
647
|
|
|
618
648
|
// Showing Toast message if value has actually changed
|
|
619
|
-
if (
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
) {
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
lastPinnedMessageValue = data.value;
|
|
649
|
+
// if (
|
|
650
|
+
// data.value !== lastPinnedMessageValue &&
|
|
651
|
+
// (data.value || lastPinnedMessageValue)
|
|
652
|
+
// ) {
|
|
653
|
+
// if (toastTimeoutId !== null) {
|
|
654
|
+
// clearTimeout(toastTimeoutId);
|
|
655
|
+
// }
|
|
656
|
+
// toastTimeoutId = setTimeout(() => {
|
|
657
|
+
// Toast.showWithGravity(
|
|
658
|
+
// `SessionStore: \`pinnedMessage\` key's value changed to ${data.value}`,
|
|
659
|
+
// Toast.LONG,
|
|
660
|
+
// Toast.TOP
|
|
661
|
+
// );
|
|
662
|
+
// }, 1500);
|
|
663
|
+
// }
|
|
664
|
+
|
|
665
|
+
// lastPinnedMessageValue = data.value;
|
|
636
666
|
break;
|
|
637
667
|
}
|
|
638
668
|
}
|
|
@@ -651,7 +681,7 @@ export const useHMSSessionStoreListeners = () => {
|
|
|
651
681
|
listener.remove()
|
|
652
682
|
);
|
|
653
683
|
|
|
654
|
-
if (toastTimeoutId !== null) clearTimeout(toastTimeoutId);
|
|
684
|
+
// if (toastTimeoutId !== null) clearTimeout(toastTimeoutId);
|
|
655
685
|
};
|
|
656
686
|
}
|
|
657
687
|
}, [hmsSessionStore]);
|
package/src/redux/actionTypes.ts
CHANGED
|
@@ -82,4 +82,6 @@ export enum HmsStateActionTypes {
|
|
|
82
82
|
SET_IS_LOCAL_SCREEN_SHARED_STATE = 'SET_IS_LOCAL_SCREEN_SHARED_STATE',
|
|
83
83
|
SET_ROOM_LOCALLY_MUTED = 'SET_ROOM_LOCALLY_MUTED',
|
|
84
84
|
SET_USER_NAME = 'SET_USER_NAME',
|
|
85
|
+
ADD_TO_PREVIEW_PEERS_LIST = 'ADD_TO_PREVIEW_PEERS_LIST',
|
|
86
|
+
REMOVE_FROM_PREVIEW_PEERS_LIST = 'REMOVE_FROM_PREVIEW_PEERS_LIST',
|
|
85
87
|
}
|
|
@@ -194,3 +194,13 @@ export const setPeerToUpdate = (peerToUpdate: HMSPeer) => ({
|
|
|
194
194
|
type: actionTypes.SET_PEER_TO_UPDATE,
|
|
195
195
|
payload: { peerToUpdate },
|
|
196
196
|
});
|
|
197
|
+
|
|
198
|
+
export const addToPreviewPeersList = (peer: HMSPeer) => ({
|
|
199
|
+
type: HmsStateActionTypes.ADD_TO_PREVIEW_PEERS_LIST,
|
|
200
|
+
peer,
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
export const removeFromPreviewPeersList = (peer: HMSPeer) => ({
|
|
204
|
+
type: HmsStateActionTypes.REMOVE_FROM_PREVIEW_PEERS_LIST,
|
|
205
|
+
peerId: peer.peerID,
|
|
206
|
+
});
|