agora-appbuilder-core 3.0.10 → 3.0.12

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.
Files changed (249) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4979 -7086
  4. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +0 -4
  5. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +0 -18
  6. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +0 -2
  7. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +26 -30
  8. package/template/agora-rn-uikit/src/Controls/Icons.ts +83 -30
  9. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +6 -6
  10. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +0 -1
  11. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +0 -1
  12. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +0 -1
  13. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +0 -1
  14. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +0 -1
  15. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +0 -2
  16. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +0 -1
  17. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +0 -1
  18. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +0 -1
  19. package/template/agora-rn-uikit/src/Reducer/index.ts +0 -3
  20. package/template/agora-rn-uikit/src/Rtc/Create.tsx +1 -89
  21. package/template/agora-rn-uikit/src/RtcConfigure.tsx +2 -39
  22. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +5 -15
  23. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +9 -15
  24. package/template/agora-rn-uikit/src/index.ts +1 -3
  25. package/template/android/app/build.gradle +0 -1
  26. package/template/android/app/src/main/AndroidManifest.xml +15 -22
  27. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +0 -50
  28. package/template/android/build.gradle +3 -3
  29. package/template/babel.config.js +0 -1
  30. package/template/bridge/rtc/webNg/RtcEngine.ts +17 -110
  31. package/template/customization-api/sub-components.ts +1 -1
  32. package/template/customization-api/typeDefinition.ts +1 -2
  33. package/template/electron/index.html +27 -27
  34. package/template/electron/renderer/index.js +0 -1
  35. package/template/global.d.ts +4 -26
  36. package/template/index.js +0 -4
  37. package/template/index.rsdk.tsx +0 -1
  38. package/template/index.web.js +1 -7
  39. package/template/index.wsdk.tsx +1 -1
  40. package/template/ios/HelloWorld/Info.plist +1 -14
  41. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  42. package/template/metro.config.js +1 -1
  43. package/template/package.json +7 -21
  44. package/template/react-native-toast-message/index.d.ts +43 -43
  45. package/template/react-native-toast-message/src/colors/index.js +2 -3
  46. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  47. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  48. package/template/react-native-toast-message/src/components/error.js +2 -3
  49. package/template/react-native-toast-message/src/components/info.js +2 -3
  50. package/template/react-native-toast-message/src/components/success.js +2 -3
  51. package/template/react-native-toast-message/src/index.js +31 -122
  52. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  53. package/template/react-native-toast-message/src/styles.js +4 -3
  54. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  55. package/template/src/App.tsx +0 -6
  56. package/template/src/AppWrapper.tsx +28 -63
  57. package/template/src/assets/icons.ts +102 -0
  58. package/template/src/atoms/HorizontalRule.tsx +1 -3
  59. package/template/src/atoms/PrimaryButton.tsx +26 -51
  60. package/template/src/atoms/SecondaryButton.tsx +5 -8
  61. package/template/src/atoms/TextInput.tsx +14 -12
  62. package/template/src/components/Chat.tsx +214 -86
  63. package/template/src/components/ChatContext.ts +1 -8
  64. package/template/src/components/ColorConfigure.tsx +1 -1
  65. package/template/src/components/ColorContext.ts +1 -1
  66. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  67. package/template/src/components/Controls.tsx +42 -342
  68. package/template/src/components/DeviceConfigure.tsx +101 -461
  69. package/template/src/components/DeviceContext.tsx +4 -8
  70. package/template/src/components/EventsConfigure.tsx +7 -144
  71. package/template/src/components/GraphQLProvider.tsx +1 -1
  72. package/template/src/components/GridVideo.tsx +44 -59
  73. package/template/src/components/HostControlView.tsx +35 -114
  74. package/template/src/components/Navbar.tsx +398 -216
  75. package/template/src/components/NetworkQualityContext.tsx +20 -20
  76. package/template/src/components/ParticipantsView.tsx +154 -177
  77. package/template/src/components/PinnedVideo.tsx +120 -207
  78. package/template/src/components/Precall.native.tsx +119 -358
  79. package/template/src/components/Precall.tsx +135 -269
  80. package/template/src/components/RTMConfigure.tsx +4 -27
  81. package/template/src/components/Router.electron.ts +0 -1
  82. package/template/src/components/Router.native.ts +0 -1
  83. package/template/src/components/Router.sdk.ts +0 -1
  84. package/template/src/components/Router.ts +0 -1
  85. package/template/src/components/Settings.tsx +95 -26
  86. package/template/src/components/SettingsView.tsx +56 -251
  87. package/template/src/components/Share.tsx +273 -302
  88. package/template/src/components/StorageContext.tsx +3 -30
  89. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  90. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  91. package/template/src/components/common/Error.tsx +6 -20
  92. package/template/src/components/common/Logo.tsx +15 -16
  93. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  94. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  95. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  96. package/template/src/components/livestream/Types.ts +14 -39
  97. package/template/src/components/livestream/index.ts +0 -1
  98. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  99. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  100. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  101. package/template/src/components/participants/MeParticipant.tsx +38 -0
  102. package/template/src/components/participants/ParticipantName.tsx +7 -13
  103. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  104. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  105. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  106. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  107. package/template/src/components/precall/LocalMute.tsx +14 -84
  108. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  109. package/template/src/components/precall/VideoPreview.tsx +7 -163
  110. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  111. package/template/src/components/precall/meetingTitle.tsx +12 -15
  112. package/template/src/components/precall/selectDevice.tsx +21 -1
  113. package/template/src/components/precall/textInput.tsx +4 -32
  114. package/template/src/components/precall/usePreCall.tsx +0 -16
  115. package/template/src/components/styles.ts +21 -42
  116. package/template/src/components/useShareLink.tsx +14 -12
  117. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  118. package/template/src/pages/Authenticate.tsx +15 -5
  119. package/template/src/pages/Create.tsx +165 -293
  120. package/template/src/pages/Join.tsx +67 -93
  121. package/template/src/pages/VideoCall.tsx +64 -89
  122. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  123. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  124. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  125. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  126. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  127. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  128. package/template/src/rtm-events/constants.ts +0 -2
  129. package/template/src/subComponents/ChatBubble.tsx +83 -123
  130. package/template/src/subComponents/ChatContainer.tsx +84 -257
  131. package/template/src/subComponents/ChatInput.tsx +46 -61
  132. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  133. package/template/src/subComponents/Checkbox.tsx +2 -2
  134. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  135. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  136. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  137. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  138. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  139. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  140. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  141. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  142. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  143. package/template/src/subComponents/Logo.tsx +4 -3
  144. package/template/src/subComponents/LogoutButton.tsx +1 -1
  145. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  146. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  147. package/template/src/subComponents/Recording.tsx +29 -28
  148. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  149. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  150. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  151. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  152. package/template/src/subComponents/SelectDevice.tsx +61 -404
  153. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  154. package/template/src/subComponents/ToastConfig.tsx +10 -150
  155. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  156. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  157. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  160. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  161. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  162. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  164. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  165. package/template/src/utils/common.tsx +1 -155
  166. package/template/src/utils/index.tsx +0 -19
  167. package/template/src/utils/isMobileOrTablet.ts +2 -7
  168. package/template/src/utils/useButtonTemplate.tsx +0 -1
  169. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  170. package/template/web/index.html +0 -5
  171. package/template/webpack.commons.js +8 -13
  172. package/template/webpack.web.config.js +0 -1
  173. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  174. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  175. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  176. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  177. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  178. package/template/android/app/src/main/res/values/colors.xml +0 -7
  179. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  180. package/template/react-native.config.js +0 -7
  181. package/template/src/assets/font-styles.css +0 -329
  182. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  183. package/template/src/assets/fonts/icomoon.ttf +0 -0
  184. package/template/src/assets/permission.png +0 -0
  185. package/template/src/assets/selection.json +0 -1
  186. package/template/src/atoms/ActionMenu.tsx +0 -236
  187. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  188. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  189. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  190. package/template/src/atoms/AnimatedRings.tsx +0 -70
  191. package/template/src/atoms/Card.tsx +0 -61
  192. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  193. package/template/src/atoms/CircularProgress.tsx +0 -102
  194. package/template/src/atoms/CustomIcon.tsx +0 -88
  195. package/template/src/atoms/CustomSwitch.tsx +0 -287
  196. package/template/src/atoms/Dropdown.tsx +0 -306
  197. package/template/src/atoms/IconButton.tsx +0 -162
  198. package/template/src/atoms/ImageIcon.tsx +0 -98
  199. package/template/src/atoms/InfoBubble.tsx +0 -291
  200. package/template/src/atoms/Input.tsx +0 -87
  201. package/template/src/atoms/InviteInfo.tsx +0 -166
  202. package/template/src/atoms/LinkButton.tsx +0 -28
  203. package/template/src/atoms/OutlineButton.tsx +0 -61
  204. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  205. package/template/src/atoms/Popup.tsx +0 -147
  206. package/template/src/atoms/RecordingInfo.tsx +0 -49
  207. package/template/src/atoms/Spacer.tsx +0 -22
  208. package/template/src/atoms/TertiaryButton.tsx +0 -78
  209. package/template/src/atoms/Toggle.tsx +0 -47
  210. package/template/src/atoms/Tooltip.native.tsx +0 -65
  211. package/template/src/atoms/Tooltip.tsx +0 -94
  212. package/template/src/atoms/UserAvatar.tsx +0 -60
  213. package/template/src/components/CommonStyles.ts +0 -44
  214. package/template/src/components/ToastComponent.tsx +0 -8
  215. package/template/src/components/participants/Participant.tsx +0 -302
  216. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  217. package/template/src/components/popups/InvitePopup.tsx +0 -115
  218. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  219. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  220. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  221. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  222. package/template/src/components/useToast.tsx +0 -41
  223. package/template/src/components/useVideoCall.tsx +0 -65
  224. package/template/src/pages/Endcall.tsx +0 -148
  225. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  226. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  227. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  228. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  229. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  230. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  231. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  232. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  233. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  234. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  235. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  236. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  237. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  238. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  239. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  240. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  241. package/template/src/theme/index.ts +0 -46
  242. package/template/src/utils/PlatformWrapper.tsx +0 -21
  243. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  244. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  245. package/template/src/utils/useFocus.tsx +0 -46
  246. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  247. package/template/src/utils/useIsHandRaised.ts +0 -13
  248. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  249. package/template/src/utils/useRemoteRequest.ts +0 -84
@@ -12,7 +12,7 @@
12
12
  import React, {createContext, useState} from 'react';
13
13
  import {UidType, useLocalUid} from '../../agora-rn-uikit';
14
14
  import useMount from './useMount';
15
- import {IconsInterface} from '../atoms/CustomIcon';
15
+ import icons from '../assets/icons';
16
16
  import {NetworkQualities} from '../language/default-labels/videoCallScreenLabels';
17
17
  import {useRtc} from 'customization-api';
18
18
 
@@ -30,54 +30,54 @@ import {useRtc} from 'customization-api';
30
30
  */
31
31
  export const networkIconsObject: {
32
32
  [key: number]: {
33
- icon: keyof IconsInterface;
33
+ icon: string;
34
34
  tint: string;
35
35
  text: NetworkQualities;
36
36
  };
37
37
  } = {
38
38
  0: {
39
- icon: 'connection-unsupported',
40
- tint: $config.SEMANTIC_NEUTRAL,
39
+ icon: icons.networkIcons['Unsupported'],
40
+ tint: 'primary',
41
41
  text: 'unknown',
42
42
  },
43
43
  1: {
44
- icon: 'connection-good',
45
- tint: $config.SEMANTIC_SUCCESS,
44
+ icon: icons.networkIcons['Excellent'],
45
+ tint: '#2BD900',
46
46
  text: 'excellent',
47
47
  },
48
48
  2: {
49
- icon: 'connection-good',
50
- tint: $config.SEMANTIC_SUCCESS,
49
+ icon: icons.networkIcons['Good'],
50
+ tint: '#FFEE00',
51
51
  text: 'good',
52
52
  },
53
53
  3: {
54
- icon: 'connection-bad',
55
- tint: $config.SEMANTIC_WARNING,
54
+ icon: icons.networkIcons['Bad'],
55
+ tint: '#F8AA00',
56
56
  text: 'bad',
57
57
  },
58
58
  4: {
59
- icon: 'connection-bad',
60
- tint: $config.SEMANTIC_WARNING,
59
+ icon: icons.networkIcons['Bad'],
60
+ tint: '#F8AA00',
61
61
  text: 'bad',
62
62
  },
63
63
  5: {
64
- icon: 'connection-very-bad',
65
- tint: $config.SEMANTIC_ERROR,
64
+ icon: icons.networkIcons['VeryBad'],
65
+ tint: 'red',
66
66
  text: 'veryBad',
67
67
  },
68
68
  6: {
69
- icon: 'connection-very-bad',
70
- tint: $config.SEMANTIC_ERROR,
69
+ icon: icons.networkIcons['VeryBad'],
70
+ tint: 'red',
71
71
  text: 'veryBad',
72
72
  },
73
73
  7: {
74
- icon: 'connection-unpublished',
75
- tint: $config.SEMANTIC_NEUTRAL,
74
+ icon: icons.networkIcons['Unsupported'],
75
+ tint: 'primary',
76
76
  text: 'unpublished',
77
77
  },
78
78
  8: {
79
- icon: 'connection-loading',
80
- tint: $config.SEMANTIC_NEUTRAL,
79
+ icon: icons.networkIcons['Loading'],
80
+ tint: 'primary',
81
81
  text: 'loading',
82
82
  },
83
83
  };
@@ -10,7 +10,7 @@
10
10
  *********************************************
11
11
  */
12
12
  import React, {useContext, useState} from 'react';
13
- import {View, Text, StyleSheet, ScrollView} from 'react-native';
13
+ import {View, Text, StyleSheet, ScrollView, Dimensions} from 'react-native';
14
14
  import {PropsContext, ClientRole} from '../../agora-rn-uikit';
15
15
  import CopyJoinInfo from '../subComponents/CopyJoinInfo';
16
16
  import ParticipantSectionTitle from './participants/ParticipantSectionTitle';
@@ -18,77 +18,43 @@ import AllHostParticipants from './participants/AllHostParticipants';
18
18
  import AllAudienceParticipants from './participants/AllAudienceParticipants';
19
19
  import CurrentLiveStreamRequestsView from '../subComponents/livestream/CurrentLiveStreamRequestsView';
20
20
  import {useString} from '../utils/useString';
21
- import {isMobileUA, isWebInternal, useIsSmall} from '../utils/common';
21
+ import {isWebInternal} from '../utils/common';
22
22
  import {useMeetingInfo} from './meeting-info/useMeetingInfo';
23
23
  import {useLiveStreamDataContext} from './contexts/LiveStreamDataContext';
24
- import {numFormatter} from '../utils';
25
- import ChatContext from './ChatContext';
26
- import {useSidePanel} from '../utils/useSidePanel';
27
- import {SidePanelType} from '../subComponents/SidePanelEnum';
28
- import TertiaryButton from '../atoms/TertiaryButton';
29
- import HostControlView from './HostControlView';
30
- import {ButtonTemplateName} from '../utils/useButtonTemplate';
31
- import Spacer from '../atoms/Spacer';
32
- import IconButton from '../atoms/IconButton';
33
- import ThemeConfig from '../theme';
34
- import hexadecimalTransparency from '../utils/hexadecimalTransparency';
35
- import CommonStyles from './CommonStyles';
36
- import SidePanelHeader, {
37
- SidePanelStyles,
38
- } from '../subComponents/SidePanelHeader';
39
- import {useVideoMeetingData} from './contexts/VideoMeetingDataContext';
40
- import {useLayout, useRender} from 'customization-api';
41
- import {getGridLayoutName} from '../pages/video-call/DefaultLayouts';
42
- import {PeopleHeader} from '../pages/video-call/SidePanelHeader';
43
-
44
- const ParticipantView = (props) => {
45
- const {activeUids} = useRender();
24
+ const ParticipantView = () => {
46
25
  const {liveStreamData, audienceUids, hostUids} = useLiveStreamDataContext();
47
- const {
48
- attendeeUids: attendeeUidsVideoMeeting,
49
- hostUids: hostUidsVideoMeeting,
50
- } = useVideoMeetingData();
51
- const {onlineUsersCount} = useContext(ChatContext);
52
- const {sidePanel, setSidePanel} = useSidePanel();
53
26
  const {rtcProps} = useContext(PropsContext);
54
- const {showHeader = true} = props;
55
27
  //commented for v1 release
56
28
  // const hostLabel = useString('hostLabel')();
57
29
  // const audienceLabel = useString('audienceLabel')();
58
30
  // const participantsLabel = useString('participantsLabel')();
59
31
  const hostLabel = 'Host';
60
32
  const audienceLabel = 'Audience';
61
- const attendeeLabel = 'Attendee';
62
- const participantsLabel = `People (${numFormatter(onlineUsersCount)})`;
33
+ const participantsLabel = 'Participants';
63
34
  const {
64
35
  data: {isHost},
65
36
  } = useMeetingInfo();
66
- const isSmall = useIsSmall();
67
- //video meeting
68
- const [showHostSection, setShowHostSection] = useState(true);
69
- const [showParticipantSection, setShowParticipantSection] = useState(true);
70
- //live streaming
71
- const [showTempHostSection, setShowTempHostSection] = useState(true);
72
- const [showAudienceSection, setShowAudienceSection] = useState(true);
73
- const {currentLayout} = useLayout();
37
+ const [dim, setDim] = useState([
38
+ Dimensions.get('window').width,
39
+ Dimensions.get('window').height,
40
+ Dimensions.get('window').width > Dimensions.get('window').height,
41
+ ]);
42
+ const isSmall = dim[0] < 700;
74
43
  return (
75
44
  <View
76
- testID="videocall-participants"
77
- style={[
78
- isMobileUA()
79
- ? //mobile and mobile web
80
- CommonStyles.sidePanelContainerNative
81
- : isSmall()
82
- ? // desktop minimized
83
- CommonStyles.sidePanelContainerWebMinimzed
84
- : // desktop maximized
85
- CommonStyles.sidePanelContainerWeb,
86
- isWebInternal() && !isSmall() && currentLayout === getGridLayoutName()
87
- ? {marginVertical: 4}
88
- : {},
89
- ]}>
90
- {showHeader && <PeopleHeader />}
91
- <ScrollView style={[style.bodyContainer]}>
45
+ style={
46
+ isWebInternal()
47
+ ? isSmall
48
+ ? style.participantViewNative
49
+ : style.participantView
50
+ : style.participantViewNative
51
+ }>
52
+ <View style={[style.padding10]}>
53
+ <View style={style.lineUnderHeading}>
54
+ <Text style={style.mainHeading}>{participantsLabel}</Text>
55
+ </View>
56
+ </View>
57
+ <ScrollView style={[style.bodyContainer, style.padding10]}>
92
58
  {$config.EVENT_MODE ? (
93
59
  <>
94
60
  {
@@ -103,51 +69,38 @@ const ParticipantView = (props) => {
103
69
  */
104
70
  <>
105
71
  {/* a) Live streaming view */}
106
- <CurrentLiveStreamRequestsView userList={liveStreamData} />
72
+ <View style={style.participantsection}>
73
+ <CurrentLiveStreamRequestsView
74
+ p_style={style}
75
+ userList={liveStreamData}
76
+ />
77
+ </View>
107
78
  {/* b) Host view with remote controls*/}
108
- <ParticipantSectionTitle
109
- title={hostLabel}
110
- count={hostUids.length}
111
- isOpen={showHostSection}
112
- onPress={() => setShowHostSection(!showHostSection)}
113
- />
114
- {showHostSection ? (
115
- <AllHostParticipants
116
- emptyMessage={'No Host has joined yet.'}
117
- uids={hostUids}
118
- isMobile={isSmall()}
119
- updateActionSheet={props.updateActionSheet}
120
- handleClose={props.handleClose}
79
+ <View style={style.participantsection}>
80
+ <ParticipantSectionTitle
81
+ title={hostLabel}
82
+ count={hostUids.length}
121
83
  />
122
- ) : (
123
- <Spacer size={1} />
124
- )}
84
+ <View style={style.participantContainer}>
85
+ <AllHostParticipants p_style={style} isHost={isHost} />
86
+ </View>
87
+ </View>
125
88
  </>
126
89
  ) : (
127
90
  /** New Host ( earlier was 'audience' and now is host )
128
91
  * a) Can view all hosts without remote controls
129
92
  */
130
- <>
93
+ <View style={style.participantsection}>
131
94
  <ParticipantSectionTitle
132
95
  title={hostLabel}
133
96
  count={hostUids.length}
134
- isOpen={showTempHostSection}
135
- onPress={() =>
136
- setShowTempHostSection(!showTempHostSection)
137
- }
138
97
  />
139
- {showTempHostSection ? (
140
- <AllAudienceParticipants
141
- emptyMessage={'No Host has joined yet.'}
142
- uids={hostUids}
143
- isMobile={isSmall()}
144
- updateActionSheet={props.updateActionSheet}
145
- handleClose={props.handleClose}
146
- />
147
- ) : (
148
- <Spacer size={1} />
149
- )}
150
- </>
98
+ <AllAudienceParticipants
99
+ uids={hostUids}
100
+ p_style={style}
101
+ isHost={isHost}
102
+ />
103
+ </View>
151
104
  ))
152
105
  }
153
106
  {
@@ -155,120 +108,144 @@ const ParticipantView = (props) => {
155
108
  * Audience views all hosts without remote controls
156
109
  */
157
110
  rtcProps?.role == ClientRole.Audience && (
158
- <>
111
+ <View style={style.participantsection}>
159
112
  <ParticipantSectionTitle
160
113
  title={hostLabel}
161
114
  count={hostUids.length}
162
- isOpen={showHostSection}
163
- onPress={() => setShowHostSection(!showHostSection)}
164
115
  />
165
- {showHostSection ? (
166
- <AllAudienceParticipants
167
- emptyMessage={'No Host has joined yet.'}
168
- uids={hostUids}
169
- isMobile={isSmall()}
170
- updateActionSheet={props.updateActionSheet}
171
- handleClose={props.handleClose}
172
- />
173
- ) : (
174
- <Spacer size={1} />
175
- )}
176
- </>
116
+ <AllAudienceParticipants
117
+ uids={hostUids}
118
+ p_style={style}
119
+ isHost={isHost}
120
+ />
121
+ </View>
177
122
  )
178
123
  }
179
124
  {
180
125
  /* Everyone can see audience */
181
- <>
126
+ <View style={style.participantsection}>
182
127
  <ParticipantSectionTitle
183
128
  title={audienceLabel}
184
129
  count={audienceUids.length}
185
- isOpen={showAudienceSection}
186
- onPress={() => setShowAudienceSection(!showAudienceSection)}
187
130
  />
188
- {showAudienceSection ? (
189
- <AllAudienceParticipants
190
- emptyMessage={'No Audience has joined yet.'}
191
- uids={audienceUids}
192
- isMobile={isSmall()}
193
- updateActionSheet={props.updateActionSheet}
194
- handleClose={props.handleClose}
195
- />
196
- ) : (
197
- <></>
198
- )}
199
- </>
131
+ <AllAudienceParticipants
132
+ uids={audienceUids}
133
+ p_style={style}
134
+ isHost={isHost}
135
+ />
136
+ </View>
200
137
  }
201
138
  </>
202
139
  ) : (
203
- <>
204
- <AllHostParticipants
205
- emptyMessage={'No Users has joined yet'}
206
- uids={activeUids}
207
- isMobile={isSmall()}
208
- updateActionSheet={props.updateActionSheet}
209
- handleClose={props.handleClose}
210
- />
211
- {/* <ParticipantSectionTitle
212
- title={hostLabel}
213
- count={hostUidsVideoMeeting.length}
214
- isOpen={showHostSection}
215
- onPress={() => setShowHostSection(!showHostSection)}
216
- /> */}
217
- {/* {showHostSection ? (
218
- <AllHostParticipants
219
- emptyMessage={'No Host has joined yet'}
220
- uids={hostUidsVideoMeeting}
221
- isMobile={isSmall()}
222
- updateActionSheet={props.updateActionSheet}
223
- handleClose={props.handleClose}
224
- />
225
- ) : (
226
- <Spacer size={1} />
227
- )} */}
228
- {/* <ParticipantSectionTitle
229
- title={attendeeLabel}
230
- count={attendeeUidsVideoMeeting.length}
231
- isOpen={showParticipantSection}
232
- onPress={() => setShowParticipantSection(!showParticipantSection)}
233
- /> */}
234
- {/* {showParticipantSection ? (
235
- <AllHostParticipants
236
- emptyMessage={'No Attendee has joined yet'}
237
- uids={attendeeUidsVideoMeeting}
238
- isMobile={isSmall()}
239
- updateActionSheet={props.updateActionSheet}
240
- handleClose={props.handleClose}
241
- />
242
- ) : (
243
- <></>
244
- )} */}
245
- </>
140
+ <View style={style.participantsection}>
141
+ <View style={style.participantContainer}>
142
+ <AllHostParticipants p_style={style} isHost={isHost} />
143
+ </View>
144
+ </View>
246
145
  )}
247
146
  </ScrollView>
248
147
 
249
- {isHost && (
250
- <View style={style.footer}>
251
- {/* <CopyJoinInfo showTeritaryButton /> */}
252
- <HostControlView />
253
- </View>
254
- )}
148
+ <View
149
+ style={{
150
+ width: '100%',
151
+ height: 50,
152
+ alignSelf: 'flex-end',
153
+ flexDirection: 'row',
154
+ alignItems: 'center',
155
+ justifyContent: 'center',
156
+ }}>
157
+ <CopyJoinInfo showText={true} />
158
+ </View>
255
159
  </View>
256
160
  );
257
161
  };
258
162
 
259
163
  const style = StyleSheet.create({
260
- footer: {
164
+ padding10: {
165
+ padding: 10,
166
+ },
167
+ lineUnderHeading: {
168
+ borderBottomWidth: 2,
169
+ borderBottomColor: $config.PRIMARY_COLOR,
170
+ },
171
+ participantView: {
172
+ width: '20%',
173
+ minWidth: 200,
174
+ maxWidth: 300,
175
+ flex: 1,
176
+ backgroundColor: $config.SECONDARY_FONT_COLOR,
177
+ shadowColor: $config.PRIMARY_FONT_COLOR + '80',
178
+ shadowOpacity: 0.5,
179
+ shadowOffset: {width: -2, height: 0},
180
+ shadowRadius: 3,
181
+ },
182
+ participantViewNative: {
183
+ position: 'absolute',
184
+ zIndex: 5,
261
185
  width: '100%',
262
- padding: 12,
263
- height: 'auto',
264
- flexDirection: 'row',
265
- alignItems: 'center',
266
- justifyContent: 'center',
267
- backgroundColor: $config.CARD_LAYER_2_COLOR,
186
+ height: '100%',
187
+ right: 0,
188
+ top: 0,
189
+ backgroundColor: $config.SECONDARY_FONT_COLOR,
268
190
  },
269
191
  bodyContainer: {
270
192
  flex: 1,
271
193
  },
194
+ participantsection: {
195
+ marginBottom: 25,
196
+ },
197
+ mainHeading: {
198
+ fontSize: 20,
199
+ letterSpacing: 0.8,
200
+ lineHeight: 30,
201
+ color: $config.PRIMARY_FONT_COLOR,
202
+ },
203
+ infoText: {
204
+ fontSize: 12,
205
+ letterSpacing: 0.8,
206
+ fontStyle: 'italic',
207
+ color: $config.PRIMARY_FONT_COLOR,
208
+ },
209
+ participantContainer: {
210
+ width: '100%',
211
+ display: 'flex',
212
+ flexDirection: 'column',
213
+ paddingTop: 10,
214
+ paddingBottom: 20,
215
+ },
216
+ participantRow: {
217
+ width: '100%',
218
+ display: 'flex',
219
+ flexDirection: 'row',
220
+ justifyContent: 'space-between',
221
+ alignItems: 'center',
222
+ marginBottom: 5,
223
+ },
224
+ participantActionContainer: {
225
+ flexDirection: 'row',
226
+ paddingRight: 5,
227
+ justifyContent: 'flex-end',
228
+ },
229
+ actionBtnIcon: {
230
+ width: 25,
231
+ height: 25,
232
+ },
233
+ participantText: {
234
+ lineHeight: 24,
235
+ fontSize: isWebInternal() ? 18 : 16,
236
+ flexDirection: 'row',
237
+ letterSpacing: 0.3,
238
+ color: $config.PRIMARY_FONT_COLOR,
239
+ fontWeight: '300',
240
+ },
241
+ participantTextSmall: {
242
+ fontSize: isWebInternal() ? 14 : 12,
243
+ },
244
+ dummyView: {
245
+ flex: 0.5,
246
+ opacity: 0,
247
+ marginHorizontal: 5,
248
+ },
272
249
  });
273
250
 
274
251
  export default ParticipantView;