@100mslive/react-native-room-kit 1.0.2-beta.1 → 1.0.2
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 -0
- package/lib/commonjs/HMSRoomSetup.js.map +1 -1
- package/lib/commonjs/Icons/BRB/index.js +2 -0
- package/lib/commonjs/Icons/BRB/index.js.map +1 -1
- package/lib/commonjs/Icons/Hand/index.js +2 -0
- package/lib/commonjs/Icons/Hand/index.js.map +1 -1
- package/lib/commonjs/Icons/Leave/index.js +2 -0
- package/lib/commonjs/Icons/Leave/index.js.map +1 -1
- package/lib/commonjs/Icons/Mic/index.js +2 -0
- package/lib/commonjs/Icons/Mic/index.js.map +1 -1
- package/lib/commonjs/Icons/Stop/index.js +2 -0
- package/lib/commonjs/Icons/Stop/index.js.map +1 -1
- package/lib/commonjs/components/BackButton.js +2 -0
- package/lib/commonjs/components/BackButton.js.map +1 -1
- package/lib/commonjs/components/BottomSheet.js +7 -1
- package/lib/commonjs/components/BottomSheet.js.map +1 -1
- package/lib/commonjs/components/ChangeNameModalContent.js +5 -0
- package/lib/commonjs/components/ChangeNameModalContent.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsHeader.js +5 -0
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsHeader.js.map +1 -1
- package/lib/commonjs/components/CompanyLogo.js +2 -0
- package/lib/commonjs/components/CompanyLogo.js.map +1 -1
- package/lib/commonjs/components/EndRoomModalContent.js +6 -1
- package/lib/commonjs/components/EndRoomModalContent.js.map +1 -1
- package/lib/commonjs/components/HMSBaseButton.js +2 -0
- package/lib/commonjs/components/HMSBaseButton.js.map +1 -1
- package/lib/commonjs/components/HMSChat.js +2 -0
- package/lib/commonjs/components/HMSChat.js.map +1 -1
- package/lib/commonjs/components/HMSDangerButton.js +2 -0
- package/lib/commonjs/components/HMSDangerButton.js.map +1 -1
- package/lib/commonjs/components/HMSLiveIndicator.js +6 -1
- package/lib/commonjs/components/HMSLiveIndicator.js.map +1 -1
- package/lib/commonjs/components/HMSLocalScreenshareNotification.js +3 -0
- package/lib/commonjs/components/HMSLocalScreenshareNotification.js.map +1 -1
- package/lib/commonjs/components/HMSManageAudioOutput.js +32 -2
- package/lib/commonjs/components/HMSManageAudioOutput.js.map +1 -1
- package/lib/commonjs/components/HMSManageCameraRotation.js +2 -0
- package/lib/commonjs/components/HMSManageCameraRotation.js.map +1 -1
- package/lib/commonjs/components/HMSManageLeave.js +3 -1
- package/lib/commonjs/components/HMSManageLeave.js.map +1 -1
- package/lib/commonjs/components/HMSManageLocalAudio.js +2 -0
- package/lib/commonjs/components/HMSManageLocalAudio.js.map +1 -1
- package/lib/commonjs/components/HMSManageLocalVideo.js +2 -0
- package/lib/commonjs/components/HMSManageLocalVideo.js.map +1 -1
- package/lib/commonjs/components/HMSManageRaiseHand.js +2 -0
- package/lib/commonjs/components/HMSManageRaiseHand.js.map +1 -1
- package/lib/commonjs/components/HMSNotification.js +2 -0
- package/lib/commonjs/components/HMSNotification.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewEditName.js +2 -0
- package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewJoinButton.js +2 -0
- package/lib/commonjs/components/HMSPreviewJoinButton.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewSubtitle.js +8 -0
- package/lib/commonjs/components/HMSPreviewSubtitle.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewTitle.js +2 -0
- package/lib/commonjs/components/HMSPreviewTitle.js.map +1 -1
- package/lib/commonjs/components/HMSPrimaryButton.js +2 -0
- package/lib/commonjs/components/HMSPrimaryButton.js.map +1 -1
- package/lib/commonjs/components/HMSRoomOptions.js +2 -0
- package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
- package/lib/commonjs/components/HMSSendMessageInput.js +3 -0
- package/lib/commonjs/components/HMSSendMessageInput.js.map +1 -1
- package/lib/commonjs/components/HMSTextInput.js +1 -0
- package/lib/commonjs/components/HMSTextInput.js.map +1 -1
- package/lib/commonjs/components/LeaveRoomBottomSheet.js +7 -0
- package/lib/commonjs/components/LeaveRoomBottomSheet.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js +4 -0
- package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsItem.js +2 -0
- package/lib/commonjs/components/Participants/ParticipantsItem.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsSeachInput.js +2 -0
- package/lib/commonjs/components/Participants/ParticipantsSeachInput.js.map +1 -1
- package/lib/commonjs/components/PeerSettingsModalContent.js +8 -1
- package/lib/commonjs/components/PeerSettingsModalContent.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js +3 -0
- package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js +3 -0
- package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
- package/lib/commonjs/components/RoomSettingsModalContent.js +13 -1
- package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/commonjs/utils/constants.js +114 -0
- package/lib/commonjs/utils/constants.js.map +1 -0
- package/lib/module/HMSRoomSetup.js +1 -0
- package/lib/module/HMSRoomSetup.js.map +1 -1
- package/lib/module/Icons/BRB/index.js +2 -0
- package/lib/module/Icons/BRB/index.js.map +1 -1
- package/lib/module/Icons/Hand/index.js +2 -0
- package/lib/module/Icons/Hand/index.js.map +1 -1
- package/lib/module/Icons/Leave/index.js +2 -0
- package/lib/module/Icons/Leave/index.js.map +1 -1
- package/lib/module/Icons/Mic/index.js +2 -0
- package/lib/module/Icons/Mic/index.js.map +1 -1
- package/lib/module/Icons/Stop/index.js +2 -0
- package/lib/module/Icons/Stop/index.js.map +1 -1
- package/lib/module/components/BackButton.js +2 -0
- package/lib/module/components/BackButton.js.map +1 -1
- package/lib/module/components/BottomSheet.js +7 -1
- package/lib/module/components/BottomSheet.js.map +1 -1
- package/lib/module/components/ChangeNameModalContent.js +5 -0
- package/lib/module/components/ChangeNameModalContent.js.map +1 -1
- package/lib/module/components/ChatAndParticipants/ChatAndParticipantsHeader.js +5 -0
- package/lib/module/components/ChatAndParticipants/ChatAndParticipantsHeader.js.map +1 -1
- package/lib/module/components/CompanyLogo.js +2 -0
- package/lib/module/components/CompanyLogo.js.map +1 -1
- package/lib/module/components/EndRoomModalContent.js +6 -1
- package/lib/module/components/EndRoomModalContent.js.map +1 -1
- package/lib/module/components/HMSBaseButton.js +2 -0
- package/lib/module/components/HMSBaseButton.js.map +1 -1
- package/lib/module/components/HMSChat.js +2 -0
- package/lib/module/components/HMSChat.js.map +1 -1
- package/lib/module/components/HMSDangerButton.js +2 -0
- package/lib/module/components/HMSDangerButton.js.map +1 -1
- package/lib/module/components/HMSLiveIndicator.js +6 -1
- package/lib/module/components/HMSLiveIndicator.js.map +1 -1
- package/lib/module/components/HMSLocalScreenshareNotification.js +3 -0
- package/lib/module/components/HMSLocalScreenshareNotification.js.map +1 -1
- package/lib/module/components/HMSManageAudioOutput.js +32 -2
- package/lib/module/components/HMSManageAudioOutput.js.map +1 -1
- package/lib/module/components/HMSManageCameraRotation.js +2 -0
- package/lib/module/components/HMSManageCameraRotation.js.map +1 -1
- package/lib/module/components/HMSManageLeave.js +3 -1
- package/lib/module/components/HMSManageLeave.js.map +1 -1
- package/lib/module/components/HMSManageLocalAudio.js +2 -0
- package/lib/module/components/HMSManageLocalAudio.js.map +1 -1
- package/lib/module/components/HMSManageLocalVideo.js +2 -0
- package/lib/module/components/HMSManageLocalVideo.js.map +1 -1
- package/lib/module/components/HMSManageRaiseHand.js +2 -0
- package/lib/module/components/HMSManageRaiseHand.js.map +1 -1
- package/lib/module/components/HMSNotification.js +2 -0
- package/lib/module/components/HMSNotification.js.map +1 -1
- package/lib/module/components/HMSPreviewEditName.js +2 -0
- package/lib/module/components/HMSPreviewEditName.js.map +1 -1
- package/lib/module/components/HMSPreviewJoinButton.js +2 -0
- package/lib/module/components/HMSPreviewJoinButton.js.map +1 -1
- package/lib/module/components/HMSPreviewSubtitle.js +8 -0
- package/lib/module/components/HMSPreviewSubtitle.js.map +1 -1
- package/lib/module/components/HMSPreviewTitle.js +2 -0
- package/lib/module/components/HMSPreviewTitle.js.map +1 -1
- package/lib/module/components/HMSPrimaryButton.js +2 -0
- package/lib/module/components/HMSPrimaryButton.js.map +1 -1
- package/lib/module/components/HMSRoomOptions.js +2 -0
- package/lib/module/components/HMSRoomOptions.js.map +1 -1
- package/lib/module/components/HMSSendMessageInput.js +3 -0
- package/lib/module/components/HMSSendMessageInput.js.map +1 -1
- package/lib/module/components/HMSTextInput.js +1 -0
- package/lib/module/components/HMSTextInput.js.map +1 -1
- package/lib/module/components/LeaveRoomBottomSheet.js +7 -0
- package/lib/module/components/LeaveRoomBottomSheet.js.map +1 -1
- package/lib/module/components/Participants/ParticipantsGroupHeader.js +4 -0
- package/lib/module/components/Participants/ParticipantsGroupHeader.js.map +1 -1
- package/lib/module/components/Participants/ParticipantsItem.js +2 -0
- package/lib/module/components/Participants/ParticipantsItem.js.map +1 -1
- package/lib/module/components/Participants/ParticipantsSeachInput.js +2 -0
- package/lib/module/components/Participants/ParticipantsSeachInput.js.map +1 -1
- package/lib/module/components/PeerSettingsModalContent.js +8 -1
- package/lib/module/components/PeerSettingsModalContent.js.map +1 -1
- package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js +3 -0
- package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
- package/lib/module/components/PeerVideoTile/PeerVideoTileView.js +3 -0
- package/lib/module/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
- package/lib/module/components/RoomSettingsModalContent.js +13 -1
- package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/module/utils/constants.js +108 -0
- package/lib/module/utils/constants.js.map +1 -0
- package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
- package/lib/typescript/Icons/BRB/index.d.ts.map +1 -1
- package/lib/typescript/Icons/Hand/index.d.ts.map +1 -1
- package/lib/typescript/Icons/Leave/index.d.ts.map +1 -1
- package/lib/typescript/Icons/Mic/index.d.ts.map +1 -1
- package/lib/typescript/Icons/Stop/index.d.ts.map +1 -1
- package/lib/typescript/components/BackButton.d.ts.map +1 -1
- package/lib/typescript/components/BottomSheet.d.ts +4 -1
- package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/components/ChangeNameModalContent.d.ts.map +1 -1
- package/lib/typescript/components/ChatAndParticipants/ChatAndParticipantsHeader.d.ts.map +1 -1
- package/lib/typescript/components/CompanyLogo.d.ts.map +1 -1
- package/lib/typescript/components/EndRoomModalContent.d.ts.map +1 -1
- package/lib/typescript/components/HMSBaseButton.d.ts +2 -1
- package/lib/typescript/components/HMSBaseButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSChat.d.ts.map +1 -1
- package/lib/typescript/components/HMSDangerButton.d.ts +2 -0
- package/lib/typescript/components/HMSDangerButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSLiveIndicator.d.ts.map +1 -1
- package/lib/typescript/components/HMSLocalScreenshareNotification.d.ts.map +1 -1
- package/lib/typescript/components/HMSManageAudioOutput.d.ts.map +1 -1
- package/lib/typescript/components/HMSManageCameraRotation.d.ts.map +1 -1
- package/lib/typescript/components/HMSManageLeave.d.ts.map +1 -1
- package/lib/typescript/components/HMSManageLocalAudio.d.ts.map +1 -1
- package/lib/typescript/components/HMSManageLocalVideo.d.ts.map +1 -1
- package/lib/typescript/components/HMSManageRaiseHand.d.ts.map +1 -1
- package/lib/typescript/components/HMSNotification.d.ts +2 -1
- package/lib/typescript/components/HMSNotification.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewEditName.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewJoinButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewSubtitle.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewTitle.d.ts.map +1 -1
- package/lib/typescript/components/HMSPrimaryButton.d.ts +2 -0
- package/lib/typescript/components/HMSPrimaryButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSRoomOptions.d.ts.map +1 -1
- package/lib/typescript/components/HMSSendMessageInput.d.ts.map +1 -1
- package/lib/typescript/components/HMSTextInput.d.ts +2 -1
- package/lib/typescript/components/HMSTextInput.d.ts.map +1 -1
- package/lib/typescript/components/LeaveRoomBottomSheet.d.ts.map +1 -1
- package/lib/typescript/components/Participants/ParticipantsGroupHeader.d.ts.map +1 -1
- package/lib/typescript/components/Participants/ParticipantsItem.d.ts.map +1 -1
- package/lib/typescript/components/Participants/ParticipantsSeachInput.d.ts.map +1 -1
- package/lib/typescript/components/PeerSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts.map +1 -1
- package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts.map +1 -1
- package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/utils/constants.d.ts +101 -0
- package/lib/typescript/utils/constants.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/HMSRoomSetup.tsx +1 -0
- package/src/Icons/BRB/index.tsx +2 -0
- package/src/Icons/Hand/index.tsx +6 -0
- package/src/Icons/Leave/index.tsx +2 -0
- package/src/Icons/Mic/index.tsx +6 -0
- package/src/Icons/Stop/index.tsx +2 -0
- package/src/components/BackButton.tsx +2 -0
- package/src/components/BottomSheet.tsx +10 -3
- package/src/components/ChangeNameModalContent.tsx +8 -1
- package/src/components/ChatAndParticipants/ChatAndParticipantsHeader.tsx +26 -2
- package/src/components/CompanyLogo.tsx +2 -0
- package/src/components/EndRoomModalContent.tsx +13 -3
- package/src/components/HMSBaseButton.tsx +4 -1
- package/src/components/HMSChat.tsx +6 -1
- package/src/components/HMSDangerButton.tsx +4 -0
- package/src/components/HMSLiveIndicator.tsx +4 -3
- package/src/components/HMSLocalScreenshareNotification.tsx +3 -0
- package/src/components/HMSManageAudioOutput.tsx +35 -3
- package/src/components/HMSManageCameraRotation.tsx +2 -0
- package/src/components/HMSManageLeave.tsx +2 -0
- package/src/components/HMSManageLocalAudio.tsx +2 -0
- package/src/components/HMSManageLocalVideo.tsx +2 -0
- package/src/components/HMSManageRaiseHand.tsx +2 -1
- package/src/components/HMSNotification.tsx +4 -2
- package/src/components/HMSPreviewEditName.tsx +2 -1
- package/src/components/HMSPreviewJoinButton.tsx +6 -0
- package/src/components/HMSPreviewSubtitle.tsx +9 -6
- package/src/components/HMSPreviewTitle.tsx +2 -1
- package/src/components/HMSPrimaryButton.tsx +4 -0
- package/src/components/HMSRoomOptions.tsx +2 -1
- package/src/components/HMSSendMessageInput.tsx +3 -0
- package/src/components/HMSTextInput.tsx +3 -0
- package/src/components/LeaveRoomBottomSheet.tsx +7 -1
- package/src/components/Participants/ParticipantsGroupHeader.tsx +12 -2
- package/src/components/Participants/ParticipantsItem.tsx +2 -1
- package/src/components/Participants/ParticipantsSeachInput.tsx +2 -0
- package/src/components/PeerSettingsModalContent.tsx +9 -1
- package/src/components/PeerVideoTile/PeerNameAndNetwork.tsx +3 -0
- package/src/components/PeerVideoTile/PeerVideoTileView.tsx +3 -0
- package/src/components/RoomSettingsModalContent.tsx +14 -0
- package/src/utils/constants.ts +146 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { useSelector } from 'react-redux';
|
|
2
3
|
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
|
|
3
4
|
|
|
4
5
|
import { useHMSRoomStyleSheet, useLeaveMethods } from '../hooks-util';
|
|
5
6
|
import { AlertTriangleIcon, CloseIcon } from '../Icons';
|
|
6
7
|
import { HMSDangerButton } from './HMSDangerButton';
|
|
7
|
-
import { useSelector } from 'react-redux';
|
|
8
8
|
import type { RootState } from '../redux';
|
|
9
9
|
import { OnLeaveReason } from '../utils/types';
|
|
10
|
+
import { TestIds } from '../utils/constants';
|
|
10
11
|
|
|
11
12
|
export interface EndRoomModalContentProps {
|
|
12
13
|
dismissModal(): void;
|
|
@@ -48,7 +49,10 @@ export const EndRoomModalContent: React.FC<EndRoomModalContentProps> = ({
|
|
|
48
49
|
<View style={styles.headerControls}>
|
|
49
50
|
<AlertTriangleIcon />
|
|
50
51
|
|
|
51
|
-
<Text
|
|
52
|
+
<Text
|
|
53
|
+
testID={TestIds.end_confirmation_heading}
|
|
54
|
+
style={[styles.headerText, hmsRoomStyles.headerText]}
|
|
55
|
+
>
|
|
52
56
|
{canStream && isStreaming
|
|
53
57
|
? 'End Stream'
|
|
54
58
|
: canEndRoom
|
|
@@ -58,13 +62,18 @@ export const EndRoomModalContent: React.FC<EndRoomModalContentProps> = ({
|
|
|
58
62
|
</View>
|
|
59
63
|
|
|
60
64
|
<TouchableOpacity
|
|
65
|
+
testID={TestIds.end_confirmation_close_btn}
|
|
61
66
|
onPress={dismissModal}
|
|
62
67
|
hitSlop={styles.closeIconHitSlop}
|
|
63
68
|
>
|
|
64
69
|
<CloseIcon />
|
|
65
70
|
</TouchableOpacity>
|
|
66
71
|
</View>
|
|
67
|
-
|
|
72
|
+
|
|
73
|
+
<Text
|
|
74
|
+
testID={TestIds.end_confirmation_description}
|
|
75
|
+
style={[styles.text, hmsRoomStyles.text]}
|
|
76
|
+
>
|
|
68
77
|
{canStream && isStreaming
|
|
69
78
|
? 'The stream will end for everyone after they’ve watched it.'
|
|
70
79
|
: canEndRoom
|
|
@@ -72,6 +81,7 @@ export const EndRoomModalContent: React.FC<EndRoomModalContentProps> = ({
|
|
|
72
81
|
: 'Others will continue after you leave. You can join the session again.'}
|
|
73
82
|
</Text>
|
|
74
83
|
<HMSDangerButton
|
|
84
|
+
testID={TestIds.end_confirmation_cta}
|
|
75
85
|
loading={false}
|
|
76
86
|
onPress={() => {
|
|
77
87
|
if (canStream && isStreaming) {
|
|
@@ -6,12 +6,13 @@ import {
|
|
|
6
6
|
TouchableHighlight,
|
|
7
7
|
View,
|
|
8
8
|
} from 'react-native';
|
|
9
|
-
import type { StyleProp, ViewStyle, TextStyle, ColorValue } from 'react-native';
|
|
9
|
+
import type { StyleProp, ViewStyle, TextStyle, ColorValue, TouchableHighlightProps } from 'react-native';
|
|
10
10
|
|
|
11
11
|
export interface HMSBaseButtonProps {
|
|
12
12
|
title: string;
|
|
13
13
|
loading: boolean;
|
|
14
14
|
onPress(): void;
|
|
15
|
+
testID?: TouchableHighlightProps['testID'];
|
|
15
16
|
underlayColor?: ColorValue | undefined;
|
|
16
17
|
loaderColor?: ColorValue | undefined;
|
|
17
18
|
style?: StyleProp<ViewStyle>;
|
|
@@ -21,6 +22,7 @@ export interface HMSBaseButtonProps {
|
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
export const HMSBaseButton: React.FC<HMSBaseButtonProps> = ({
|
|
25
|
+
testID,
|
|
24
26
|
underlayColor,
|
|
25
27
|
loaderColor,
|
|
26
28
|
title,
|
|
@@ -33,6 +35,7 @@ export const HMSBaseButton: React.FC<HMSBaseButtonProps> = ({
|
|
|
33
35
|
}) => {
|
|
34
36
|
return (
|
|
35
37
|
<TouchableHighlight
|
|
38
|
+
testID={testID}
|
|
36
39
|
underlayColor={underlayColor}
|
|
37
40
|
style={[styles.button, style]}
|
|
38
41
|
onPress={onPress}
|
|
@@ -3,6 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { ChatIcon } from '../Icons';
|
|
4
4
|
import { PressableIcon } from './PressableIcon';
|
|
5
5
|
import { useShowChatAndParticipants } from '../hooks-util';
|
|
6
|
+
import { TestIds } from '../utils/constants';
|
|
6
7
|
|
|
7
8
|
export const HMSChat = () => {
|
|
8
9
|
const { overlayChatVisible, show, hide } = useShowChatAndParticipants();
|
|
@@ -16,7 +17,11 @@ export const HMSChat = () => {
|
|
|
16
17
|
};
|
|
17
18
|
|
|
18
19
|
return (
|
|
19
|
-
<PressableIcon
|
|
20
|
+
<PressableIcon
|
|
21
|
+
testID={overlayChatVisible ? TestIds.close_chat_btn : TestIds.open_chat_btn}
|
|
22
|
+
onPress={toggleChatWindow}
|
|
23
|
+
active={overlayChatVisible}
|
|
24
|
+
>
|
|
20
25
|
<ChatIcon />
|
|
21
26
|
</PressableIcon>
|
|
22
27
|
);
|
|
@@ -3,12 +3,14 @@ import type { StyleProp, ViewStyle } from 'react-native';
|
|
|
3
3
|
|
|
4
4
|
import { useHMSRoomColorPalette, useHMSRoomStyleSheet } from '../hooks-util';
|
|
5
5
|
import { HMSBaseButton } from './HMSBaseButton';
|
|
6
|
+
import type { HMSBaseButtonProps } from './HMSBaseButton';
|
|
6
7
|
import { COLORS } from '../utils/theme';
|
|
7
8
|
|
|
8
9
|
export interface HMSDangerButtonProps {
|
|
9
10
|
title: string;
|
|
10
11
|
loading: boolean;
|
|
11
12
|
onPress(): void;
|
|
13
|
+
testID?: HMSBaseButtonProps['testID'];
|
|
12
14
|
style?: StyleProp<ViewStyle>;
|
|
13
15
|
disabled?: boolean;
|
|
14
16
|
leftComponent?: React.ReactElement | null;
|
|
@@ -18,6 +20,7 @@ export const HMSDangerButton: React.FC<HMSDangerButtonProps> = ({
|
|
|
18
20
|
title,
|
|
19
21
|
loading,
|
|
20
22
|
onPress,
|
|
23
|
+
testID,
|
|
21
24
|
style,
|
|
22
25
|
disabled,
|
|
23
26
|
leftComponent,
|
|
@@ -45,6 +48,7 @@ export const HMSDangerButton: React.FC<HMSDangerButtonProps> = ({
|
|
|
45
48
|
|
|
46
49
|
return (
|
|
47
50
|
<HMSBaseButton
|
|
51
|
+
testID={testID}
|
|
48
52
|
loaderColor={alertErrorBrighterColor}
|
|
49
53
|
loading={loading}
|
|
50
54
|
onPress={onPress}
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
import { EyeIcon } from '../Icons';
|
|
17
17
|
import { COLORS, hexToRgbA } from '../utils/theme';
|
|
18
18
|
import type { RootState } from '../redux';
|
|
19
|
+
import { TestIds } from '../utils/constants';
|
|
19
20
|
|
|
20
21
|
const _HMSLiveIndicator = () => {
|
|
21
22
|
const isHLSViewer = useIsHLSViewer();
|
|
@@ -62,7 +63,7 @@ const _HMSLiveIndicator = () => {
|
|
|
62
63
|
<View style={styles.container}>
|
|
63
64
|
{/* Live */}
|
|
64
65
|
<View style={[styles.live, hmsRoomStyles.live]}>
|
|
65
|
-
<Text style={[styles.liveText, hmsRoomStyles.liveText]}>LIVE</Text>
|
|
66
|
+
<Text testID={TestIds.live_text} style={[styles.liveText, hmsRoomStyles.liveText]}>LIVE</Text>
|
|
66
67
|
</View>
|
|
67
68
|
|
|
68
69
|
{/* Viewer Count */}
|
|
@@ -72,9 +73,9 @@ const _HMSLiveIndicator = () => {
|
|
|
72
73
|
onPress={showParticipantsSheet}
|
|
73
74
|
disabled={!canShowParticipants}
|
|
74
75
|
>
|
|
75
|
-
<EyeIcon />
|
|
76
|
+
<EyeIcon testID={TestIds.peer_count_icon} />
|
|
76
77
|
|
|
77
|
-
<Text style={[styles.count, hmsRoomStyles.count]}>
|
|
78
|
+
<Text testID={TestIds.peer_count} style={[styles.count, hmsRoomStyles.count]}>
|
|
78
79
|
{previewPeerCount}
|
|
79
80
|
</Text>
|
|
80
81
|
</TouchableOpacity>
|
|
@@ -6,6 +6,7 @@ import { HMSDangerButton } from './HMSDangerButton';
|
|
|
6
6
|
import { HMSNotification } from './HMSNotification';
|
|
7
7
|
import { useHMSRoomStyle } from '../hooks-util';
|
|
8
8
|
import { NotificationTypes } from '../types';
|
|
9
|
+
import { TestIds } from '../utils/constants';
|
|
9
10
|
|
|
10
11
|
export interface HMSLocalScreenshareNotificationProps {}
|
|
11
12
|
|
|
@@ -28,9 +29,11 @@ export const HMSLocalScreenshareNotification: React.FC<
|
|
|
28
29
|
autoDismiss={false}
|
|
29
30
|
style={notificationStyle}
|
|
30
31
|
text={'You are sharing your screen'}
|
|
32
|
+
textTestID={TestIds.notification_sharing_screen}
|
|
31
33
|
icon={<ScreenShareIcon />}
|
|
32
34
|
cta={
|
|
33
35
|
<HMSDangerButton
|
|
36
|
+
testID={TestIds.notification_stop_screen_share_btn}
|
|
34
37
|
loading={false}
|
|
35
38
|
onPress={stopScreenshare}
|
|
36
39
|
title="Stop"
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
} from '../hooks-util';
|
|
31
31
|
import type { RootState } from '../redux';
|
|
32
32
|
import { BottomSheet } from './BottomSheet';
|
|
33
|
+
import { TestIds } from '../utils/constants';
|
|
33
34
|
|
|
34
35
|
export const HMSManageAudioOutput: React.FC = () => {
|
|
35
36
|
const hmsInstance = useHMSInstance();
|
|
@@ -141,6 +142,7 @@ export const HMSManageAudioOutput: React.FC = () => {
|
|
|
141
142
|
return (
|
|
142
143
|
<View>
|
|
143
144
|
<PressableIcon
|
|
145
|
+
testID={TestIds.manage_audio_output}
|
|
144
146
|
onPress={handleSpeakerChange}
|
|
145
147
|
style={isHLSViewer ? styles.button : null}
|
|
146
148
|
>
|
|
@@ -155,6 +157,8 @@ export const HMSManageAudioOutput: React.FC = () => {
|
|
|
155
157
|
<BottomSheet.Header
|
|
156
158
|
dismissModal={dismissModal}
|
|
157
159
|
heading="Audio Output"
|
|
160
|
+
headingTestID={TestIds.audio_modal_heading}
|
|
161
|
+
closeIconTestID={TestIds.audio_modal_close_btn}
|
|
158
162
|
/>
|
|
159
163
|
|
|
160
164
|
<BottomSheet.Divider />
|
|
@@ -162,7 +166,10 @@ export const HMSManageAudioOutput: React.FC = () => {
|
|
|
162
166
|
<View style={styles.contentContainer}>
|
|
163
167
|
{availableAudioOutputDevices.length === 0 ? (
|
|
164
168
|
<View style={styles.emptyView}>
|
|
165
|
-
<Text
|
|
169
|
+
<Text
|
|
170
|
+
testID={TestIds.audio_modal_empty_text}
|
|
171
|
+
style={[styles.itemText, hmsRoomStyles.text]}
|
|
172
|
+
>
|
|
166
173
|
No other devices available!
|
|
167
174
|
</Text>
|
|
168
175
|
</View>
|
|
@@ -182,6 +189,7 @@ export const HMSManageAudioOutput: React.FC = () => {
|
|
|
182
189
|
)}
|
|
183
190
|
|
|
184
191
|
<TouchableOpacity
|
|
192
|
+
testID={audioDeviceTestIds[device]}
|
|
185
193
|
style={styles.audioDeviceItem}
|
|
186
194
|
onPress={() => handleSelectAudioDevice(device)}
|
|
187
195
|
>
|
|
@@ -193,13 +201,13 @@ export const HMSManageAudioOutput: React.FC = () => {
|
|
|
193
201
|
: device
|
|
194
202
|
)}
|
|
195
203
|
|
|
196
|
-
<Text style={[styles.itemText, hmsRoomStyles.text]}>
|
|
204
|
+
<Text testID={audioDeviceTextTestIds[device]} style={[styles.itemText, hmsRoomStyles.text]}>
|
|
197
205
|
{getDescription(device, currentAudioOutputDevice)}
|
|
198
206
|
</Text>
|
|
199
207
|
</View>
|
|
200
208
|
|
|
201
209
|
{device === currentAudioOutputDevice ? (
|
|
202
|
-
<CheckIcon />
|
|
210
|
+
<CheckIcon testID={activeAudioDeviceTestIds[device]} />
|
|
203
211
|
) : null}
|
|
204
212
|
</TouchableOpacity>
|
|
205
213
|
</React.Fragment>
|
|
@@ -290,3 +298,27 @@ const audioDeviceSortOrder = {
|
|
|
290
298
|
[HMSAudioDevice.EARPIECE]: 3,
|
|
291
299
|
[HMSAudioDevice.BLUETOOTH]: 4,
|
|
292
300
|
} as const;
|
|
301
|
+
|
|
302
|
+
const audioDeviceTestIds = {
|
|
303
|
+
[HMSAudioDevice.AUTOMATIC]: TestIds.automatic_audio_device_btn,
|
|
304
|
+
[HMSAudioDevice.SPEAKER_PHONE]: TestIds.phone_speaker_audio_device_btn,
|
|
305
|
+
[HMSAudioDevice.WIRED_HEADSET]: TestIds.wired_headset_audio_device_btn,
|
|
306
|
+
[HMSAudioDevice.EARPIECE]: TestIds.earpiece_audio_device_btn,
|
|
307
|
+
[HMSAudioDevice.BLUETOOTH]: TestIds.bluetooth_audio_device_btn,
|
|
308
|
+
} as const;
|
|
309
|
+
|
|
310
|
+
const audioDeviceTextTestIds = {
|
|
311
|
+
[HMSAudioDevice.AUTOMATIC]: TestIds.automatic_audio_device_text,
|
|
312
|
+
[HMSAudioDevice.SPEAKER_PHONE]: TestIds.phone_speaker_audio_device_text,
|
|
313
|
+
[HMSAudioDevice.WIRED_HEADSET]: TestIds.wired_headset_audio_device_text,
|
|
314
|
+
[HMSAudioDevice.EARPIECE]: TestIds.earpiece_audio_device_text,
|
|
315
|
+
[HMSAudioDevice.BLUETOOTH]: TestIds.bluetooth_audio_device_text,
|
|
316
|
+
} as const;
|
|
317
|
+
|
|
318
|
+
const activeAudioDeviceTestIds = {
|
|
319
|
+
[HMSAudioDevice.AUTOMATIC]: TestIds.automatic_audio_device_active,
|
|
320
|
+
[HMSAudioDevice.SPEAKER_PHONE]: TestIds.phone_speaker_audio_device_active,
|
|
321
|
+
[HMSAudioDevice.WIRED_HEADSET]: TestIds.wired_headset_audio_device_active,
|
|
322
|
+
[HMSAudioDevice.EARPIECE]: TestIds.earpiece_audio_device_active,
|
|
323
|
+
[HMSAudioDevice.BLUETOOTH]: TestIds.bluetooth_audio_device_active,
|
|
324
|
+
} as const;
|
|
@@ -6,6 +6,7 @@ import { useCanPublishVideo, useHMSActions } from '../hooks-sdk';
|
|
|
6
6
|
import type { RootState } from '../redux';
|
|
7
7
|
import { PressableIcon } from './PressableIcon';
|
|
8
8
|
import { useHMSRoomStyle } from '../hooks-util';
|
|
9
|
+
import { TestIds } from '../utils/constants';
|
|
9
10
|
|
|
10
11
|
export const HMSManageCameraRotation = () => {
|
|
11
12
|
const canPublishVideo = useCanPublishVideo();
|
|
@@ -42,6 +43,7 @@ const RotateCameraButton = () => {
|
|
|
42
43
|
|
|
43
44
|
return (
|
|
44
45
|
<PressableIcon
|
|
46
|
+
testID={isLocalVideoMuted ? TestIds.switch_camera_disabled : TestIds.switch_camera}
|
|
45
47
|
onPress={handleVideoMuteTogglePress}
|
|
46
48
|
disabled={isLocalVideoMuted}
|
|
47
49
|
>
|
|
@@ -6,6 +6,7 @@ import { useHMSRoomStyleSheet, useModalType } from '../hooks-util';
|
|
|
6
6
|
import { ModalTypes } from '../utils/types';
|
|
7
7
|
import { PressableIcon } from './PressableIcon';
|
|
8
8
|
import { COLORS } from '../utils/theme';
|
|
9
|
+
import { TestIds } from '../utils/constants';
|
|
9
10
|
|
|
10
11
|
export const HMSManageLeave: React.FC<LeaveButtonProps> = (props) => {
|
|
11
12
|
// TODO: read current meeting joined state
|
|
@@ -65,6 +66,7 @@ const LeaveButton: React.FC<LeaveButtonProps> = (props) => {
|
|
|
65
66
|
{React.cloneElement(leaveButtonDelegate, {
|
|
66
67
|
onPress: handleLeaveButtonPress,
|
|
67
68
|
style: hmsRoomStyles.button,
|
|
69
|
+
testID: TestIds.footer_leave_btn
|
|
68
70
|
})}
|
|
69
71
|
</View>
|
|
70
72
|
);
|
|
@@ -5,6 +5,7 @@ import { MicIcon } from '../Icons';
|
|
|
5
5
|
import { useCanPublishAudio, useHMSActions } from '../hooks-sdk';
|
|
6
6
|
import type { RootState } from '../redux';
|
|
7
7
|
import { PressableIcon } from './PressableIcon';
|
|
8
|
+
import { TestIds } from '../utils/constants';
|
|
8
9
|
|
|
9
10
|
export const HMSManageLocalAudio = () => {
|
|
10
11
|
const canPublishAudio = useCanPublishAudio();
|
|
@@ -31,6 +32,7 @@ const ToggleAudioMuteButton = () => {
|
|
|
31
32
|
|
|
32
33
|
return (
|
|
33
34
|
<PressableIcon
|
|
35
|
+
testID={!!isLocalAudioMuted ? TestIds.mic_muted_btn : TestIds.mic_unmuted_btn}
|
|
34
36
|
onPress={handleAudioMuteTogglePress}
|
|
35
37
|
active={isLocalAudioMuted}
|
|
36
38
|
>
|
|
@@ -5,6 +5,7 @@ import type { RootState } from '../redux';
|
|
|
5
5
|
import { useCanPublishVideo, useHMSActions } from '../hooks-sdk';
|
|
6
6
|
import { PressableIcon } from './PressableIcon';
|
|
7
7
|
import { CameraIcon } from '../Icons';
|
|
8
|
+
import { TestIds } from '../utils/constants';
|
|
8
9
|
|
|
9
10
|
export const HMSManageLocalVideo = () => {
|
|
10
11
|
const canPublishVideo = useCanPublishVideo();
|
|
@@ -31,6 +32,7 @@ const ToggleVideoMuteButton = () => {
|
|
|
31
32
|
|
|
32
33
|
return (
|
|
33
34
|
<PressableIcon
|
|
35
|
+
testID={!!isLocalVideoMuted ? TestIds.camera_muted_btn : TestIds.camera_unmuted_btn}
|
|
34
36
|
onPress={handleVideoMuteTogglePress}
|
|
35
37
|
active={isLocalVideoMuted}
|
|
36
38
|
>
|
|
@@ -6,6 +6,7 @@ import { useHMSActions } from '../hooks-sdk';
|
|
|
6
6
|
import { PressableIcon } from './PressableIcon';
|
|
7
7
|
import { HandIcon } from '../Icons';
|
|
8
8
|
import { parseMetadata } from '../utils/functions';
|
|
9
|
+
import { TestIds } from '../utils/constants';
|
|
9
10
|
|
|
10
11
|
export const HMSManageRaiseHand = () => {
|
|
11
12
|
const hmsActions = useHMSActions();
|
|
@@ -34,7 +35,7 @@ export const HMSManageRaiseHand = () => {
|
|
|
34
35
|
};
|
|
35
36
|
|
|
36
37
|
return (
|
|
37
|
-
<PressableIcon onPress={toggleRaiseHand} active={isHandRaised}>
|
|
38
|
+
<PressableIcon testID={isHandRaised ? TestIds.hand_raised_btn : TestIds.hand_raise_btn} onPress={toggleRaiseHand} active={isHandRaised}>
|
|
38
39
|
<HandIcon />
|
|
39
40
|
</PressableIcon>
|
|
40
41
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useDispatch } from 'react-redux';
|
|
3
3
|
import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
|
4
|
-
import type { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
4
|
+
import type { StyleProp, ViewStyle, TextStyle, TextProps } from 'react-native';
|
|
5
5
|
|
|
6
6
|
import { useHMSRoomStyleSheet } from '../hooks-util';
|
|
7
7
|
import { CloseIcon } from '../Icons';
|
|
@@ -11,6 +11,7 @@ import { removeNotification } from '../redux/actions';
|
|
|
11
11
|
export interface HMSNotificationProps {
|
|
12
12
|
id: string;
|
|
13
13
|
text: string | React.ReactElement;
|
|
14
|
+
textTestID?: TextProps['testID'];
|
|
14
15
|
style?: StyleProp<ViewStyle>;
|
|
15
16
|
textStyle?: StyleProp<TextStyle>;
|
|
16
17
|
icon?: React.ReactElement;
|
|
@@ -28,6 +29,7 @@ export const HMSNotification: React.FC<HMSNotificationProps> = ({
|
|
|
28
29
|
style,
|
|
29
30
|
textStyle,
|
|
30
31
|
cta,
|
|
32
|
+
textTestID,
|
|
31
33
|
onDismiss,
|
|
32
34
|
dismissDelay = 5000,
|
|
33
35
|
autoDismiss = true,
|
|
@@ -59,7 +61,7 @@ export const HMSNotification: React.FC<HMSNotificationProps> = ({
|
|
|
59
61
|
{icon ? <View style={styles.icon}>{icon}</View> : null}
|
|
60
62
|
|
|
61
63
|
{typeof text === 'string' ? (
|
|
62
|
-
<Text style={[styles.text, hmsRoomStyles.text, textStyle]}>
|
|
64
|
+
<Text testID={textTestID} style={[styles.text, hmsRoomStyles.text, textStyle]}>
|
|
63
65
|
{text}
|
|
64
66
|
</Text>
|
|
65
67
|
) : (
|
|
@@ -5,6 +5,7 @@ import type { RootState } from '../redux';
|
|
|
5
5
|
import { changeUsername } from '../redux/actions';
|
|
6
6
|
import { useHMSConfig } from '../hooks-util';
|
|
7
7
|
import { HMSTextInput } from './HMSTextInput';
|
|
8
|
+
import { TestIds } from '../utils/constants';
|
|
8
9
|
|
|
9
10
|
export interface HMSPreviewEditNameProps {}
|
|
10
11
|
|
|
@@ -18,5 +19,5 @@ export const HMSPreviewEditName: React.FC<HMSPreviewEditNameProps> = () => {
|
|
|
18
19
|
updateConfig({ username: name });
|
|
19
20
|
};
|
|
20
21
|
|
|
21
|
-
return <HMSTextInput value={userName} onChangeText={handleNameChange} />;
|
|
22
|
+
return <HMSTextInput testID={TestIds.enter_name} value={userName} onChangeText={handleNameChange} />;
|
|
22
23
|
};
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
useShouldGoLive,
|
|
11
11
|
} from '../hooks-util';
|
|
12
12
|
import { HMSPrimaryButton } from './HMSPrimaryButton';
|
|
13
|
+
import { TestIds } from '../utils/constants';
|
|
13
14
|
|
|
14
15
|
export interface HMSPreviewJoinButtonProps {
|
|
15
16
|
onJoin(): void;
|
|
@@ -49,6 +50,11 @@ export const HMSPreviewJoinButton: React.FC<HMSPreviewJoinButtonProps> = ({
|
|
|
49
50
|
|
|
50
51
|
return (
|
|
51
52
|
<HMSPrimaryButton
|
|
53
|
+
testId={
|
|
54
|
+
shouldGoLive
|
|
55
|
+
? TestIds.go_live_btn
|
|
56
|
+
: TestIds.join_now_btn
|
|
57
|
+
}
|
|
52
58
|
loading={loading}
|
|
53
59
|
onPress={onJoin}
|
|
54
60
|
title={
|
|
@@ -4,6 +4,7 @@ import type { StyleProp, TextStyle } from 'react-native';
|
|
|
4
4
|
|
|
5
5
|
import { useCanPublishAudio, useCanPublishVideo } from '../hooks-sdk';
|
|
6
6
|
import { useHMSLayoutConfig, useHMSRoomStyle } from '../hooks-util';
|
|
7
|
+
import { TestIds } from '../utils/constants';
|
|
7
8
|
|
|
8
9
|
export interface HMSPreviewSubtitleProps {
|
|
9
10
|
subtitle?: string;
|
|
@@ -27,29 +28,31 @@ export const HMSPreviewSubtitle: React.FC<HMSPreviewSubtitleProps> = ({
|
|
|
27
28
|
|
|
28
29
|
const textStyles: StyleProp<TextStyle> = [styles.title, titleStyles];
|
|
29
30
|
|
|
31
|
+
const testID = TestIds.subtitle;
|
|
32
|
+
|
|
30
33
|
if (subtitle) {
|
|
31
|
-
return <Text style={textStyles}>{subtitle}</Text>;
|
|
34
|
+
return <Text testID={testID} style={textStyles}>{subtitle}</Text>;
|
|
32
35
|
}
|
|
33
36
|
|
|
34
37
|
if (hmsRoomPreviewSubtitle) {
|
|
35
|
-
return <Text style={textStyles}>{hmsRoomPreviewSubtitle}</Text>;
|
|
38
|
+
return <Text testID={testID} style={textStyles}>{hmsRoomPreviewSubtitle}</Text>;
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
if (canPublishAudio && canPublishVideo) {
|
|
39
42
|
return (
|
|
40
|
-
<Text style={textStyles}>Setup your audio and video before joining</Text>
|
|
43
|
+
<Text testID={testID} style={textStyles}>Setup your audio and video before joining</Text>
|
|
41
44
|
);
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
if (canPublishAudio) {
|
|
45
|
-
return <Text style={textStyles}>Setup your audio before joining</Text>;
|
|
48
|
+
return <Text testID={testID} style={textStyles}>Setup your audio before joining</Text>;
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
if (canPublishVideo) {
|
|
49
|
-
return <Text style={textStyles}>Setup your video before joining</Text>;
|
|
52
|
+
return <Text testID={testID} style={textStyles}>Setup your video before joining</Text>;
|
|
50
53
|
}
|
|
51
54
|
|
|
52
|
-
return <Text style={textStyles}>Enter your name before joining</Text>;
|
|
55
|
+
return <Text testID={testID} style={textStyles}>Enter your name before joining</Text>;
|
|
53
56
|
};
|
|
54
57
|
|
|
55
58
|
const styles = StyleSheet.create({
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { StyleSheet, Text } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { useHMSLayoutConfig, useHMSRoomStyle } from '../hooks-util';
|
|
5
|
+
import { TestIds } from '../utils/constants';
|
|
5
6
|
|
|
6
7
|
export interface HMSPreviewTitleProps {
|
|
7
8
|
title?: string;
|
|
@@ -22,7 +23,7 @@ export const HMSPreviewTitle: React.FC<HMSPreviewTitleProps> = ({
|
|
|
22
23
|
fontFamily: `${typography.font_family}-SemiBold`,
|
|
23
24
|
}));
|
|
24
25
|
|
|
25
|
-
return <Text style={[styles.title, titleStyles]}>{hmsRoomPreviewTitle}</Text>;
|
|
26
|
+
return <Text testID={TestIds.title} style={[styles.title, titleStyles]}>{hmsRoomPreviewTitle}</Text>;
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
const styles = StyleSheet.create({
|
|
@@ -3,11 +3,13 @@ import type { StyleProp, ViewStyle } from 'react-native';
|
|
|
3
3
|
|
|
4
4
|
import { useHMSRoomColorPalette, useHMSRoomStyleSheet } from '../hooks-util';
|
|
5
5
|
import { HMSBaseButton } from './HMSBaseButton';
|
|
6
|
+
import type { HMSBaseButtonProps } from './HMSBaseButton';
|
|
6
7
|
|
|
7
8
|
export interface HMSPrimaryButtonProps {
|
|
8
9
|
title: string;
|
|
9
10
|
loading: boolean;
|
|
10
11
|
onPress(): void;
|
|
12
|
+
testId?: HMSBaseButtonProps['testID'];
|
|
11
13
|
style?: StyleProp<ViewStyle>;
|
|
12
14
|
disabled?: boolean;
|
|
13
15
|
leftComponent?: React.ReactElement | null;
|
|
@@ -17,6 +19,7 @@ export const HMSPrimaryButton: React.FC<HMSPrimaryButtonProps> = ({
|
|
|
17
19
|
title,
|
|
18
20
|
loading,
|
|
19
21
|
onPress,
|
|
22
|
+
testId,
|
|
20
23
|
style,
|
|
21
24
|
disabled,
|
|
22
25
|
leftComponent,
|
|
@@ -42,6 +45,7 @@ export const HMSPrimaryButton: React.FC<HMSPrimaryButtonProps> = ({
|
|
|
42
45
|
|
|
43
46
|
return (
|
|
44
47
|
<HMSBaseButton
|
|
48
|
+
testID={testId}
|
|
45
49
|
loaderColor={onPrimaryHighColor}
|
|
46
50
|
loading={loading}
|
|
47
51
|
onPress={onPress}
|
|
@@ -21,6 +21,7 @@ import { useModalType } from '../hooks-util';
|
|
|
21
21
|
import { BottomSheet } from './BottomSheet';
|
|
22
22
|
import { ChangeNameModalContent } from './ChangeNameModalContent';
|
|
23
23
|
import { StopRecordingModalContent } from './StopRecordingModalContent';
|
|
24
|
+
import { TestIds } from '../utils/constants';
|
|
24
25
|
|
|
25
26
|
interface HMSRoomOptionsProps {}
|
|
26
27
|
|
|
@@ -46,7 +47,7 @@ export const HMSRoomOptions: React.FC<HMSRoomOptionsProps> = () => {
|
|
|
46
47
|
|
|
47
48
|
return (
|
|
48
49
|
<View>
|
|
49
|
-
<PressableIcon onPress={onSettingsPress}>
|
|
50
|
+
<PressableIcon testID={TestIds.room_options_btn} onPress={onSettingsPress}>
|
|
50
51
|
<HamburgerIcon />
|
|
51
52
|
</PressableIcon>
|
|
52
53
|
|
|
@@ -4,6 +4,7 @@ import type { StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
|
4
4
|
|
|
5
5
|
import { HMSTextInput } from './HMSTextInput';
|
|
6
6
|
import { useHMSRoomStyleSheet, useSendMessage } from '../hooks-util';
|
|
7
|
+
import { TestIds } from '../utils/constants';
|
|
7
8
|
|
|
8
9
|
interface HMSSendMessageInputProps {
|
|
9
10
|
style?: StyleProp<TextStyle>;
|
|
@@ -25,6 +26,7 @@ export const HMSSendMessageInput: React.FC<HMSSendMessageInputProps> = ({
|
|
|
25
26
|
|
|
26
27
|
return (
|
|
27
28
|
<HMSTextInput
|
|
29
|
+
testID={TestIds.enter_message_input}
|
|
28
30
|
style={[styles.input, style]}
|
|
29
31
|
value={message}
|
|
30
32
|
onChangeText={setMessage}
|
|
@@ -37,6 +39,7 @@ export const HMSSendMessageInput: React.FC<HMSSendMessageInputProps> = ({
|
|
|
37
39
|
containerStyle,
|
|
38
40
|
]}
|
|
39
41
|
sendIcon={true}
|
|
42
|
+
sendIconTestID={TestIds.send_message_cta}
|
|
40
43
|
onSendIconPress={sendMessage}
|
|
41
44
|
onSubmitEditing={sendMessage}
|
|
42
45
|
returnKeyType="send"
|
|
@@ -10,6 +10,7 @@ import type {
|
|
|
10
10
|
StyleProp,
|
|
11
11
|
TextInputProps,
|
|
12
12
|
TextStyle,
|
|
13
|
+
TouchableOpacityProps,
|
|
13
14
|
ViewStyle,
|
|
14
15
|
} from 'react-native';
|
|
15
16
|
|
|
@@ -31,6 +32,7 @@ export type HMSTextInputProps = TextInputProps & {
|
|
|
31
32
|
| {
|
|
32
33
|
rightIcon?: undefined;
|
|
33
34
|
sendIcon: boolean;
|
|
35
|
+
sendIconTestID?: TouchableOpacityProps['testID'];
|
|
34
36
|
onSendIconPress(): void;
|
|
35
37
|
containerStyle?: StyleProp<ViewStyle>;
|
|
36
38
|
focusedContainerStyle?: StyleProp<ViewStyle>;
|
|
@@ -160,6 +162,7 @@ export const HMSTextInput: React.FC<HMSTextInputProps> = ({
|
|
|
160
162
|
{resetProps.rightIcon ||
|
|
161
163
|
(resetProps.sendIcon ? (
|
|
162
164
|
<TouchableOpacity
|
|
165
|
+
testID={resetProps.sendIconTestID}
|
|
163
166
|
style={styles.sendIconButton}
|
|
164
167
|
onPress={resetProps.onSendIconPress}
|
|
165
168
|
>
|
|
@@ -8,6 +8,7 @@ import type { RootState } from '../redux';
|
|
|
8
8
|
import { BottomSheet } from './BottomSheet';
|
|
9
9
|
import { StopIcon } from '../Icons';
|
|
10
10
|
import { ModalTypes, OnLeaveReason } from '../utils/types';
|
|
11
|
+
import { TestIds } from '../utils/constants';
|
|
11
12
|
|
|
12
13
|
// const HEADER_CONTENT_HEIGHT = 24 + 8 + 8 + 2; // ICON_SIZE + TOP_PADDING + BOTTOM_PADDING + TOP&BOTTOM_BORDER_WIDTH
|
|
13
14
|
// const HEADER_HEIGHT = 8 + HEADER_CONTENT_HEIGHT + 8; // TOP_HEADER_PADDING + HEADER_CONTENT_HEIGHT + BOTTOM_HEADER_PADDING
|
|
@@ -111,6 +112,7 @@ export const LeaveRoomBottomSheet: React.FC<LeaveRoomBottomSheetProps> = () => {
|
|
|
111
112
|
>
|
|
112
113
|
<View>
|
|
113
114
|
<TouchableOpacity
|
|
115
|
+
testID={TestIds.leave_cta}
|
|
114
116
|
style={styles.button}
|
|
115
117
|
onPress={onLeavePress}
|
|
116
118
|
>
|
|
@@ -120,7 +122,7 @@ export const LeaveRoomBottomSheet: React.FC<LeaveRoomBottomSheetProps> = () => {
|
|
|
120
122
|
<Text style={[styles.text, hmsRoomStyles.text]}>
|
|
121
123
|
Leave
|
|
122
124
|
</Text>
|
|
123
|
-
<Text style={[styles.subtext, hmsRoomStyles.subtext]}>
|
|
125
|
+
<Text testID={TestIds.leave_description} style={[styles.subtext, hmsRoomStyles.subtext]}>
|
|
124
126
|
Others will continue after you leave. You can join the session
|
|
125
127
|
again.
|
|
126
128
|
</Text>
|
|
@@ -129,6 +131,7 @@ export const LeaveRoomBottomSheet: React.FC<LeaveRoomBottomSheetProps> = () => {
|
|
|
129
131
|
|
|
130
132
|
{canStream && isStreaming ? (
|
|
131
133
|
<TouchableOpacity
|
|
134
|
+
testID={TestIds.end_stream_cta}
|
|
132
135
|
style={[styles.button, hmsRoomStyles.endButton]}
|
|
133
136
|
onPress={onEndStreamPress}
|
|
134
137
|
>
|
|
@@ -139,6 +142,7 @@ export const LeaveRoomBottomSheet: React.FC<LeaveRoomBottomSheetProps> = () => {
|
|
|
139
142
|
End Stream
|
|
140
143
|
</Text>
|
|
141
144
|
<Text
|
|
145
|
+
testID={TestIds.end_stream_description}
|
|
142
146
|
style={[styles.subtext, hmsRoomStyles.endSubtext]}
|
|
143
147
|
>
|
|
144
148
|
The stream will end for everyone after they’ve watched it.
|
|
@@ -147,6 +151,7 @@ export const LeaveRoomBottomSheet: React.FC<LeaveRoomBottomSheetProps> = () => {
|
|
|
147
151
|
</TouchableOpacity>
|
|
148
152
|
) : canEndRoom ? (
|
|
149
153
|
<TouchableOpacity
|
|
154
|
+
testID={TestIds.end_session_cta}
|
|
150
155
|
style={[styles.button, hmsRoomStyles.endButton]}
|
|
151
156
|
onPress={onEndSessionPress}
|
|
152
157
|
>
|
|
@@ -157,6 +162,7 @@ export const LeaveRoomBottomSheet: React.FC<LeaveRoomBottomSheetProps> = () => {
|
|
|
157
162
|
End Session
|
|
158
163
|
</Text>
|
|
159
164
|
<Text
|
|
165
|
+
testID={TestIds.end_session_description}
|
|
160
166
|
style={[styles.subtext, hmsRoomStyles.endSubtext]}
|
|
161
167
|
>
|
|
162
168
|
The session will end for everyone in the room immediately.
|