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
@@ -1,212 +1,56 @@
1
1
  /*
2
2
  ********************************************
3
3
  Copyright © 2021 Agora Lab, Inc., all rights reserved.
4
- AppBuilder and all associated components, source code, APIs, services, and documentation
5
- (the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
6
- accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
7
- Use without a license or in violation of any license terms and conditions (including use for
8
- any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
9
- information visit https://appbuilder.agora.io.
4
+ AppBuilder and all associated components, source code, APIs, services, and documentation
5
+ (the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
6
+ accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
7
+ Use without a license or in violation of any license terms and conditions (including use for
8
+ any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
9
+ information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import React, {useState, useContext, useEffect} from 'react';
13
- import {View, Text, StyleSheet, ScrollView} from 'react-native';
14
- import {PropsContext, ClientRole} from '../../agora-rn-uikit';
15
- import {isValidReactComponent, isWebInternal, trimText} from '../utils/common';
16
- import ColorContext from './ColorContext';
17
- import {useMeetingInfo} from './meeting-info/useMeetingInfo';
18
- import PreCallLogo from './common/Logo';
12
+ import React, {useContext} from 'react';
13
+ import {View, Text, StyleSheet} from 'react-native';
14
+ import {ClientRole, PropsContext} from '../../agora-rn-uikit';
19
15
  import {useCustomization} from 'customization-implementation';
20
- import PreCallLocalMute from './precall/LocalMute';
16
+ import {useString} from '../utils/useString';
17
+ import {isValidReactComponent} from '../utils/common';
21
18
  import {
22
19
  PreCallJoinBtn,
20
+ PreCallVideoPreview,
23
21
  PreCallTextInput,
22
+ PreCallLocalMute,
24
23
  PreCallMeetingTitle,
25
- PreCallSelectDevice,
26
- PreCallVideoPreview,
27
- PreCallJoinCallBtnProps,
28
24
  } from './precall/index';
29
- import SDKEvents from '../utils/SdkEvents';
30
- import isSDKCheck from '../utils/isSDK';
31
- import Logo from './common/Logo';
32
- import Card from '../atoms/Card';
33
- import Spacer from '../atoms/Spacer';
34
- import {useRtc} from 'customization-api';
35
- import {MeetingTitleProps} from './precall/meetingTitle';
36
- import {PreCallTextInputProps} from './precall/textInput';
37
-
38
- import StorageContext from './StorageContext';
39
- import ThemeConfig from '../theme';
40
- import hexadecimalTransparency from '../utils/hexadecimalTransparency';
41
- import {VideoPreviewProps} from './precall/VideoPreview';
42
25
 
43
- const JoinRoomInputView = ({isDesktop}) => {
26
+ const Precall = () => {
44
27
  const {rtcProps} = useContext(PropsContext);
45
- const {JoinButton, Textbox} = useCustomization((data) => {
46
- let components: {
47
- JoinButton: React.ComponentType<PreCallJoinCallBtnProps>;
48
- Textbox: React.ComponentType<PreCallTextInputProps>;
49
- } = {
50
- Textbox: PreCallTextInput,
51
- JoinButton: PreCallJoinBtn,
52
- };
53
- // commented for v1 release
54
- // if (
55
- // data?.components?.precall &&
56
- // typeof data?.components?.precall === 'object'
57
- // ) {
58
- // if (
59
- // data?.components?.precall?.joinButton &&
60
- // typeof data?.components?.precall?.joinButton !== 'object'
61
- // ) {
62
- // if (isValidReactComponent(data?.components?.precall?.joinButton)) {
63
- // components.JoinButton = data?.components?.precall?.joinButton;
64
- // }
65
- // }
66
-
67
- // if (
68
- // data?.components?.precall?.textBox &&
69
- // typeof data?.components?.precall?.textBox !== 'object'
70
- // ) {
71
- // if (isValidReactComponent(data?.components?.precall?.textBox)) {
72
- // components.Textbox = data?.components?.precall?.textBox;
73
- // }
74
- // }
75
- // }
76
- return components;
77
- });
78
- return (
79
- <View
80
- style={$config.EVENT_MODE ? style.lsBtnContainer : style.btnContainer}>
81
- <Textbox
82
- isDesktop={isDesktop}
83
- labelStyle={$config.EVENT_MODE ? style.labelStyle : {}}
84
- />
85
- {$config.EVENT_MODE ? (
86
- <>
87
- {/* <Text style={style.subTextStyle}>
88
- Enter the name you would like to join the room as
89
- </Text> */}
90
- {rtcProps.role == ClientRole.Audience && <Spacer size={40} />}
91
- </>
92
- ) : (
93
- <></>
94
- )}
95
- <View
96
- style={
97
- $config.EVENT_MODE &&
98
- rtcProps.role == ClientRole.Audience && {
99
- justifyContent: 'space-between',
100
- flex: 1,
101
- }
102
- }>
103
- <Spacer size={10} />
104
- <View
105
- style={
106
- $config.EVENT_MODE && isDesktop
107
- ? style.btnContainerStyle
108
- : {width: '100%'}
109
- }>
110
- <JoinButton />
111
- </View>
112
- </View>
113
- </View>
114
- );
115
- };
116
-
117
- const JoinRoomName = ({isDesktop}) => {
118
- const {JoinButton, Textbox} = useCustomization((data) => {
119
- let components: {
120
- JoinButton: React.ComponentType<PreCallJoinCallBtnProps>;
121
- Textbox: React.ComponentType<PreCallTextInputProps>;
122
- } = {
123
- Textbox: PreCallTextInput,
124
- JoinButton: PreCallJoinBtn,
125
- };
126
- // commented for v1 release
127
- // if (
128
- // data?.components?.precall &&
129
- // typeof data?.components?.precall === 'object'
130
- // ) {
131
- // if (
132
- // data?.components?.precall?.joinButton &&
133
- // typeof data?.components?.precall?.joinButton !== 'object'
134
- // ) {
135
- // if (isValidReactComponent(data?.components?.precall?.joinButton)) {
136
- // components.JoinButton = data?.components?.precall?.joinButton;
137
- // }
138
- // }
139
-
140
- // if (
141
- // data?.components?.precall?.textBox &&
142
- // typeof data?.components?.precall?.textBox !== 'object'
143
- // ) {
144
- // if (isValidReactComponent(data?.components?.precall?.textBox)) {
145
- // components.Textbox = data?.components?.precall?.textBox;
146
- // }
147
- // }
148
- // }
149
- return components;
150
- });
151
- return <Textbox isDesktop={isDesktop} />;
152
- };
153
-
154
- const JoinRoomButton = () => {
155
- const {JoinButton, Textbox} = useCustomization((data) => {
156
- let components: {
157
- JoinButton: React.ComponentType<PreCallJoinCallBtnProps>;
158
- Textbox: React.ComponentType;
159
- } = {Textbox: PreCallTextInput, JoinButton: PreCallJoinBtn};
160
- // commented for v1 release
161
- // if (
162
- // data?.components?.precall &&
163
- // typeof data?.components?.precall === 'object'
164
- // ) {
165
- // if (
166
- // data?.components?.precall?.joinButton &&
167
- // typeof data?.components?.precall?.joinButton !== 'object'
168
- // ) {
169
- // if (isValidReactComponent(data?.components?.precall?.joinButton)) {
170
- // components.JoinButton = data?.components?.precall?.joinButton;
171
- // }
172
- // }
173
-
174
- // if (
175
- // data?.components?.precall?.textBox &&
176
- // typeof data?.components?.precall?.textBox !== 'object'
177
- // ) {
178
- // if (isValidReactComponent(data?.components?.precall?.textBox)) {
179
- // components.Textbox = data?.components?.precall?.textBox;
180
- // }
181
- // }
182
- // }
183
- return components;
184
- });
185
- return <JoinButton />;
186
- };
28
+ //commented for v1 release
29
+ //const precallLabel = useString('precallLabel')();
30
+ const precallLabel = 'Precall';
187
31
 
188
- const Precall = (props: any) => {
189
- const {primaryColor} = useContext(ColorContext);
190
- const {rtcProps} = useContext(PropsContext);
191
32
  const {
192
33
  VideoPreview,
193
34
  MeetingName,
194
- DeviceSelect,
35
+ JoinButton,
36
+ Textbox,
195
37
  PrecallAfterView,
196
38
  PrecallBeforeView,
197
39
  } = useCustomization((data) => {
198
40
  const components: {
199
41
  PrecallAfterView: React.ComponentType;
200
42
  PrecallBeforeView: React.ComponentType;
201
- DeviceSelect: React.ComponentType;
202
- VideoPreview: React.ComponentType<VideoPreviewProps>;
203
- MeetingName: React.ComponentType<MeetingTitleProps>;
43
+ VideoPreview: React.ComponentType;
44
+ MeetingName: React.ComponentType;
45
+ JoinButton: React.ComponentType;
46
+ Textbox: React.ComponentType;
204
47
  } = {
205
48
  PrecallAfterView: React.Fragment,
206
49
  PrecallBeforeView: React.Fragment,
50
+ JoinButton: PreCallJoinBtn,
207
51
  MeetingName: PreCallMeetingTitle,
52
+ Textbox: PreCallTextInput,
208
53
  VideoPreview: PreCallVideoPreview,
209
- DeviceSelect: PreCallSelectDevice,
210
54
  };
211
55
  // commented for v1 release
212
56
  // if (
@@ -236,11 +80,20 @@ const Precall = (props: any) => {
236
80
  // }
237
81
 
238
82
  // if (
239
- // data?.components?.precall?.deviceSelect &&
240
- // typeof data?.components?.precall?.deviceSelect !== 'object'
83
+ // data?.components?.precall?.joinButton &&
84
+ // typeof data?.components?.precall?.joinButton !== 'object'
241
85
  // ) {
242
- // if (isValidReactComponent(data?.components?.precall?.deviceSelect)) {
243
- // components.DeviceSelect = data?.components?.precall?.deviceSelect;
86
+ // if (isValidReactComponent(data?.components?.precall?.joinButton)) {
87
+ // components.JoinButton = data?.components?.precall?.joinButton;
88
+ // }
89
+ // }
90
+
91
+ // if (
92
+ // data?.components?.precall?.textBox &&
93
+ // typeof data?.components?.precall?.textBox !== 'object'
94
+ // ) {
95
+ // if (isValidReactComponent(data?.components?.precall?.textBox)) {
96
+ // components.Textbox = data?.components?.precall?.textBox;
244
97
  // }
245
98
  // }
246
99
 
@@ -255,48 +108,8 @@ const Precall = (props: any) => {
255
108
  // }
256
109
  return components;
257
110
  });
258
- const {
259
- isJoinDataFetched,
260
- data: {meetingTitle},
261
- } = useMeetingInfo();
262
- const rtc = useRtc();
263
- const isSDK = isSDKCheck();
264
-
265
- //permission helper modal show/hide
266
- const [isVisible, setIsVisible] = useState(false);
267
- const {store} = useContext(StorageContext);
268
-
269
- useEffect(() => {
270
- if (isWebInternal() && !isSDK) {
271
- if (meetingTitle) {
272
- document.title = trimText(meetingTitle) + ' | ' + $config.APP_NAME;
273
- }
274
- }
275
- });
276
-
277
- useEffect(() => {
278
- if (isJoinDataFetched) {
279
- new Promise((res) =>
280
- // @ts-ignore
281
- rtc.RtcEngine.getDevices(function (devices: MediaDeviceInfo[]) {
282
- res(devices);
283
- }),
284
- ).then((devices: MediaDeviceInfo[]) => {
285
- SDKEvents.emit('preJoin', meetingTitle, devices);
286
- });
287
- }
288
- }, [isJoinDataFetched]);
289
-
290
- useEffect(() => {
291
- if (store?.permissionPopupSeen) {
292
- const flag = JSON.parse(store?.permissionPopupSeen);
293
- if (flag === false) {
294
- setIsVisible(true);
295
- }
296
- } else {
297
- setIsVisible(true);
298
- }
299
- }, []);
111
+ const isAudienceInLiveStreaming = () =>
112
+ $config.EVENT_MODE && rtcProps?.role == ClientRole.Audience;
300
113
 
301
114
  const FpePrecallComponent = useCustomization((data) => {
302
115
  // commented for v1 release
@@ -312,55 +125,33 @@ const Precall = (props: any) => {
312
125
  return undefined;
313
126
  });
314
127
 
315
- if (!isJoinDataFetched) return <Text style={style.titleFont}>Loading..</Text>;
316
128
  return FpePrecallComponent ? (
317
129
  <FpePrecallComponent />
318
130
  ) : (
319
131
  <>
320
132
  <PrecallBeforeView />
321
- <View style={{flex: 1}}>
322
- <ScrollView
323
- contentContainerStyle={style.mainMobile}
324
- testID="precall-screen">
325
- {/* Precall screen only changes for audience in Live Stream event */}
326
- {$config.EVENT_MODE && rtcProps.role == ClientRole.Audience ? (
327
- // Live (Audience) - Mobile
328
- <View style={{flex: 1}}>
329
- <MeetingName textStyle={style.meetingTitleStyle} />
330
- <Spacer size={24} />
331
- <View testID="precall-mobile-join" style={{flex: 1}}>
332
- <JoinRoomInputView isDesktop={false} />
333
- </View>
334
- </View>
335
- ) : (
336
- // Conferncing / Live (Host)
337
- <View style={{flex: 1}}>
338
- <MeetingName textStyle={{textAlign: 'center'}} />
339
- <Spacer size={24} />
340
- <View style={{flex: 1}}>
341
- <View
342
- style={{
343
- flex: 1,
344
- }}
345
- testID="precall-mobile-preview">
346
- <VideoPreview isMobileView={true} />
347
- </View>
348
- <Spacer size={40} />
349
- <View
350
- testID="precall-mobile-join"
351
- style={{
352
- // flex: $config.EVENT_MODE ? 2 : 1,
353
- //width: '100%',
354
- flexDirection: 'row',
355
- //alignItems: 'center',
356
- //justifyContent: 'center',
357
- }}>
358
- <JoinRoomInputView isDesktop={false} />
359
- </View>
360
- </View>
361
- </View>
362
- )}
363
- </ScrollView>
133
+ <View style={style.full}>
134
+ <View style={style.heading}>
135
+ <Text style={style.headingText}>{precallLabel}</Text>
136
+ </View>
137
+ <MeetingName />
138
+ {!isAudienceInLiveStreaming() && (
139
+ <View style={style.full}>
140
+ <VideoPreview />
141
+ </View>
142
+ )}
143
+ <View style={style.textInputHolder}>
144
+ <Textbox />
145
+ </View>
146
+ <View style={{height: 20}} />
147
+ {!isAudienceInLiveStreaming() && (
148
+ <View style={style.controls}>
149
+ <PreCallLocalMute />
150
+ </View>
151
+ )}
152
+ <View style={{marginBottom: 50, alignItems: 'center'}}>
153
+ <JoinButton />
154
+ </View>
364
155
  </View>
365
156
  <PrecallAfterView />
366
157
  </>
@@ -368,104 +159,74 @@ const Precall = (props: any) => {
368
159
  };
369
160
 
370
161
  const style = StyleSheet.create({
371
- full: {flex: 1},
372
- labelStyle: {
373
- paddingLeft: 8,
374
- },
375
- subTextStyle: {
376
- marginTop: 8,
377
- marginLeft: 8,
378
- fontFamily: ThemeConfig.FontFamily.sansPro,
379
- fontWeight: '400',
380
- fontSize: ThemeConfig.FontSize.small,
381
- lineHeight: 18,
382
- color: $config.SEMANTIC_NEUTRAL,
383
- textAlign: 'left',
384
- },
385
- btnContainerStyle: {maxWidth: 337, alignSelf: 'center', marginTop: 50},
386
- main: {
387
- flexGrow: 1,
388
- padding: 32,
162
+ full: {
163
+ flex: 1,
164
+ paddingLeft: 15,
165
+ paddingRight: 15,
389
166
  justifyContent: 'center',
390
167
  },
391
- mainMobile: {
392
- flexGrow: 1,
393
- flexDirection: 'row',
394
- paddingHorizontal: 16,
395
- paddingTop: 25,
396
- paddingBottom: 32,
397
- justifyContent: 'center',
168
+ heading: {flex: 0.1, justifyContent: 'center'},
169
+ headingText: {
170
+ fontSize: 24,
171
+ color: $config.PRIMARY_FONT_COLOR,
172
+ fontWeight: '700',
173
+ alignSelf: 'center',
398
174
  },
399
- nav: {
400
- flex: 1,
401
- width: '100%',
402
- flexDirection: 'row',
175
+ textInputHolder: {
176
+ flex: 0.1,
403
177
  alignItems: 'center',
404
- justifyContent: 'center',
178
+ paddingTop: 20,
179
+ width: '100%',
405
180
  },
406
- container: {
181
+ textInput: {
182
+ width: '80%',
183
+ paddingLeft: 8,
184
+ borderColor: $config.PRIMARY_COLOR,
185
+ borderWidth: 2,
186
+ color: $config.PRIMARY_FONT_COLOR,
187
+ fontSize: 16,
188
+ minHeight: 45,
189
+ alignSelf: 'center',
190
+ },
191
+ controls: {
192
+ flex: 0.2,
407
193
  flexDirection: 'row',
408
- alignItems: 'center',
409
- minHeight: '80%',
410
- },
411
- leftContent: {
412
- flex: 2.5,
413
- borderRadius: ThemeConfig.BorderRadius.large,
414
- overflow: 'hidden',
415
- },
416
- boxStyle: {
417
- borderWidth: 1,
418
- borderColor: $config.CARD_LAYER_3_COLOR,
419
- shadowColor: $config.HARD_CODED_BLACK_COLOR,
420
- shadowOffset: {width: 0, height: 4},
421
- shadowOpacity: 0.1,
422
- shadowRadius: 8,
423
- elevation: 5,
424
- height: '100%',
425
- },
426
- mobileBoxStyle: {
427
- marginRight: 0,
428
- borderRadius: ThemeConfig.BorderRadius.large,
429
- flex: 3,
430
- },
431
- rightContent: {
432
- borderRadius: ThemeConfig.BorderRadius.large,
433
- flex: 1,
434
- paddingHorizontal: 0,
435
- paddingVertical: 0,
436
- maxWidth: 450,
437
- height: '100%',
438
- justifyContent: 'space-between',
439
- },
440
- rightInputContent: {
441
- padding: 32,
442
- },
443
- titleFont: {
444
- textAlign: 'center',
445
- fontSize: 20,
446
- color: $config.PRIMARY_ACTION_TEXT_COLOR,
447
- },
448
- btnContainer: {
449
- flex: 1,
450
- width: '100%',
194
+ alignSelf: 'center',
195
+ padding: 5,
196
+ },
197
+ width50: {width: 50},
198
+ buttonActive: {
199
+ backgroundColor: $config.PRIMARY_COLOR,
200
+ height: 50,
201
+ width: 180,
202
+ alignSelf: 'center',
203
+ alignContent: 'center',
451
204
  justifyContent: 'center',
452
- //alignItems: 'center',
453
- },
454
- lsBtnContainer: {
455
- flex: 1,
456
- width: '100%',
205
+ marginBottom: 50,
206
+ },
207
+ buttonDisabled: {
208
+ backgroundColor: $config.PRIMARY_FONT_COLOR + '80',
209
+ height: 50,
210
+ width: 180,
211
+ alignSelf: 'center',
212
+ alignContent: 'center',
457
213
  justifyContent: 'center',
214
+ marginBottom: 50,
458
215
  },
459
- meetingTitleContainer: {
460
- marginVertical: 10,
216
+ buttonText: {
217
+ width: '100%',
218
+ height: 45,
219
+ lineHeight: 45,
220
+ fontSize: 20,
221
+ textAlign: 'center',
222
+ textAlignVertical: 'center',
223
+ color: $config.SECONDARY_FONT_COLOR,
461
224
  },
462
- meetingTitleStyle: {
463
- fontFamily: ThemeConfig.FontFamily.sansPro,
225
+ titleHeading: {
226
+ fontSize: 22,
464
227
  fontWeight: '700',
465
- fontSize: ThemeConfig.FontSize.extraLarge,
466
- lineHeight: ThemeConfig.FontSize.extraLarge,
467
- color: $config.FONT_COLOR,
468
- paddingLeft: 0,
228
+ textAlign: 'center',
229
+ color: $config.SECONDARY_FONT_COLOR,
469
230
  },
470
231
  });
471
232