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
@@ -9,46 +9,32 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import PrecallNative from './Precall.native';
13
- import React, {useContext, useEffect} from 'react';
14
- import {View, Text, StyleSheet, ScrollView} from 'react-native';
12
+ import React, {useState, useContext, useEffect} from 'react';
13
+ import {View, Text, StyleSheet, Dimensions} from 'react-native';
15
14
  import {PropsContext, ClientRole} from '../../agora-rn-uikit';
16
- import {
17
- isMobileUA,
18
- isWebInternal,
19
- trimText,
20
- useIsDesktop,
21
- useResponsive,
22
- } from '../utils/common';
15
+ import {isValidReactComponent, isWebInternal} from '../utils/common';
16
+ import ColorContext from './ColorContext';
23
17
  import {useMeetingInfo} from './meeting-info/useMeetingInfo';
18
+ import PreCallLogo from './common/Logo';
24
19
  import {useCustomization} from 'customization-implementation';
20
+ import PreCallLocalMute from './precall/LocalMute';
25
21
  import {
26
22
  PreCallJoinBtn,
27
23
  PreCallTextInput,
28
24
  PreCallMeetingTitle,
29
25
  PreCallSelectDevice,
30
26
  PreCallVideoPreview,
31
- PreCallJoinCallBtnProps,
32
27
  } from './precall/index';
33
28
  import SDKEvents from '../utils/SdkEvents';
34
29
  import isSDKCheck from '../utils/isSDK';
35
- import Card from '../atoms/Card';
36
- import Spacer from '../atoms/Spacer';
37
30
  import {useRtc} from 'customization-api';
38
- import {MeetingTitleProps} from './precall/meetingTitle';
39
- import {PreCallTextInputProps} from './precall/textInput';
40
- import ThemeConfig from '../theme';
41
31
 
42
- const JoinRoomInputView = ({isDesktop}) => {
43
- const {rtcProps} = useContext(PropsContext);
32
+ const JoinRoomInputView = () => {
44
33
  const {JoinButton, Textbox} = useCustomization((data) => {
45
34
  let components: {
46
- JoinButton: React.ComponentType<PreCallJoinCallBtnProps>;
47
- Textbox: React.ComponentType<PreCallTextInputProps>;
48
- } = {
49
- Textbox: PreCallTextInput,
50
- JoinButton: PreCallJoinBtn,
51
- };
35
+ JoinButton: React.ComponentType;
36
+ Textbox: React.ComponentType;
37
+ } = {Textbox: PreCallTextInput, JoinButton: PreCallJoinBtn};
52
38
  // commented for v1 release
53
39
  // if (
54
40
  // data?.components?.precall &&
@@ -75,116 +61,16 @@ const JoinRoomInputView = ({isDesktop}) => {
75
61
  return components;
76
62
  });
77
63
  return (
78
- <View
79
- style={$config.EVENT_MODE ? style.lsBtnContainer : style.btnContainer}>
80
- <Textbox
81
- isDesktop={isDesktop}
82
- labelStyle={$config.EVENT_MODE ? style.labelStyle : {}}
83
- />
84
- {$config.EVENT_MODE ? (
85
- <>
86
- {/* <Text style={style.subTextStyle}>
87
- Enter the name you would like to join the room as
88
- </Text> */}
89
- {rtcProps.role == ClientRole.Audience && <Spacer size={40} />}
90
- </>
91
- ) : (
92
- <></>
93
- )}
94
- <View
95
- style={
96
- $config.EVENT_MODE &&
97
- rtcProps.role == ClientRole.Audience && {
98
- justifyContent: 'space-between',
99
- flex: 1,
100
- }
101
- }>
102
- <Spacer size={10} />
103
- <View
104
- style={
105
- $config.EVENT_MODE && isDesktop
106
- ? style.btnContainerStyle
107
- : {width: '100%'}
108
- }>
109
- <JoinButton />
110
- </View>
111
- </View>
64
+ <View style={style.btnContainer}>
65
+ <Textbox />
66
+ <View style={{height: 20}} />
67
+ <JoinButton />
112
68
  </View>
113
69
  );
114
70
  };
115
71
 
116
- const JoinRoomName = ({isDesktop}) => {
117
- const {JoinButton, Textbox} = useCustomization((data) => {
118
- let components: {
119
- JoinButton: React.ComponentType<PreCallJoinCallBtnProps>;
120
- Textbox: React.ComponentType<PreCallTextInputProps>;
121
- } = {
122
- Textbox: PreCallTextInput,
123
- JoinButton: PreCallJoinBtn,
124
- };
125
- // commented for v1 release
126
- // if (
127
- // data?.components?.precall &&
128
- // typeof data?.components?.precall === 'object'
129
- // ) {
130
- // if (
131
- // data?.components?.precall?.joinButton &&
132
- // typeof data?.components?.precall?.joinButton !== 'object'
133
- // ) {
134
- // if (isValidReactComponent(data?.components?.precall?.joinButton)) {
135
- // components.JoinButton = data?.components?.precall?.joinButton;
136
- // }
137
- // }
138
-
139
- // if (
140
- // data?.components?.precall?.textBox &&
141
- // typeof data?.components?.precall?.textBox !== 'object'
142
- // ) {
143
- // if (isValidReactComponent(data?.components?.precall?.textBox)) {
144
- // components.Textbox = data?.components?.precall?.textBox;
145
- // }
146
- // }
147
- // }
148
- return components;
149
- });
150
- return <Textbox isDesktop={isDesktop} />;
151
- };
152
-
153
- const JoinRoomButton = () => {
154
- const {JoinButton, Textbox} = useCustomization((data) => {
155
- let components: {
156
- JoinButton: React.ComponentType<PreCallJoinCallBtnProps>;
157
- Textbox: React.ComponentType;
158
- } = {Textbox: PreCallTextInput, JoinButton: PreCallJoinBtn};
159
- // commented for v1 release
160
- // if (
161
- // data?.components?.precall &&
162
- // typeof data?.components?.precall === 'object'
163
- // ) {
164
- // if (
165
- // data?.components?.precall?.joinButton &&
166
- // typeof data?.components?.precall?.joinButton !== 'object'
167
- // ) {
168
- // if (isValidReactComponent(data?.components?.precall?.joinButton)) {
169
- // components.JoinButton = data?.components?.precall?.joinButton;
170
- // }
171
- // }
172
-
173
- // if (
174
- // data?.components?.precall?.textBox &&
175
- // typeof data?.components?.precall?.textBox !== 'object'
176
- // ) {
177
- // if (isValidReactComponent(data?.components?.precall?.textBox)) {
178
- // components.Textbox = data?.components?.precall?.textBox;
179
- // }
180
- // }
181
- // }
182
- return components;
183
- });
184
- return <JoinButton />;
185
- };
186
-
187
72
  const Precall = () => {
73
+ const {primaryColor} = useContext(ColorContext);
188
74
  const {rtcProps} = useContext(PropsContext);
189
75
  const {
190
76
  VideoPreview,
@@ -198,7 +84,7 @@ const Precall = () => {
198
84
  PrecallBeforeView: React.ComponentType;
199
85
  DeviceSelect: React.ComponentType;
200
86
  VideoPreview: React.ComponentType;
201
- MeetingName: React.ComponentType<MeetingTitleProps>;
87
+ MeetingName: React.ComponentType;
202
88
  } = {
203
89
  PrecallAfterView: React.Fragment,
204
90
  PrecallBeforeView: React.Fragment,
@@ -260,10 +146,19 @@ const Precall = () => {
260
146
  const rtc = useRtc();
261
147
  const isSDK = isSDKCheck();
262
148
 
149
+ const [dim, setDim] = useState<[number, number]>([
150
+ Dimensions.get('window').width,
151
+ Dimensions.get('window').height,
152
+ ]);
153
+
154
+ let onLayout = (e: any) => {
155
+ setDim([e.nativeEvent.layout.width, e.nativeEvent.layout.height]);
156
+ };
157
+
263
158
  useEffect(() => {
264
159
  if (isWebInternal() && !isSDK) {
265
160
  if (meetingTitle) {
266
- document.title = trimText(meetingTitle) + ' | ' + $config.APP_NAME;
161
+ document.title = meetingTitle + ' | ' + $config.APP_NAME;
267
162
  }
268
163
  }
269
164
  });
@@ -281,6 +176,12 @@ const Precall = () => {
281
176
  }
282
177
  }, [isJoinDataFetched]);
283
178
 
179
+ const isMobileView = () => dim[0] < dim[1] + 150;
180
+
181
+ if (!isJoinDataFetched) return <Text style={style.titleFont}>Loading..</Text>;
182
+
183
+ const brandHolder = () => <PreCallLogo />;
184
+
284
185
  const FpePrecallComponent = useCustomization((data) => {
285
186
  // commented for v1 release
286
187
  // if (
@@ -295,180 +196,145 @@ const Precall = () => {
295
196
  return undefined;
296
197
  });
297
198
 
298
- const isDesktop = useIsDesktop();
299
- const getResponsiveValue = useResponsive();
300
- if (!isJoinDataFetched) return <Text style={style.titleFont}>Loading..</Text>;
301
199
  return FpePrecallComponent ? (
302
200
  <FpePrecallComponent />
303
201
  ) : (
304
202
  <>
305
203
  <PrecallBeforeView />
306
- {$config.EVENT_MODE && rtcProps.role == ClientRole.Audience ? (
307
- <View style={style.root}>
308
- <ScrollView contentContainerStyle={style.main}>
309
- <Card>
310
- <View>
311
- <MeetingName textStyle={style.meetingTitleStyle} />
312
- </View>
313
- <Spacer size={32} />
314
- <JoinRoomInputView isDesktop={true} />
315
- </Card>
316
- </ScrollView>
317
- </View>
318
- ) : (
319
- <View style={style.root}>
320
- <ScrollView
321
- contentContainerStyle={[
322
- style.main,
323
- {padding: 32, flexDirection: 'column'},
324
- ]}
325
- testID="precall-screen">
326
- <>
327
- <MeetingName textStyle={{textAlign: 'left'}} />
328
- <Spacer size={32} />
329
- <View
330
- style={{
331
- flex: 1,
332
- flexDirection: !isDesktop() ? 'column' : 'row',
333
- justifyContent: 'space-between',
334
- }}>
204
+ <View style={style.main} onLayout={onLayout}>
205
+ {/* Precall screen only changes for audience in Live Stream event */}
206
+ {$config.EVENT_MODE && rtcProps.role == ClientRole.Audience ? (
207
+ <View style={style.preCallContainer}>
208
+ {brandHolder()}
209
+ <MeetingName />
210
+ <JoinRoomInputView />
211
+ </View>
212
+ ) : (
213
+ <>
214
+ {brandHolder()}
215
+ <View style={style.content}>
216
+ <View style={style.upperContainer}>
335
217
  <View
336
- testID="precall-preview"
337
- style={
338
- !isDesktop()
339
- ? style.leftContentVertical
340
- : style.leftContentHorizontal
341
- }>
218
+ style={[
219
+ style.leftContent,
220
+ isMobileView() ? {paddingRight: 0} : {paddingRight: 40},
221
+ ]}>
342
222
  <VideoPreview />
343
- </View>
344
- <Spacer size={24} horizontal={!isDesktop() ? false : true} />
345
- <Card
346
- style={
347
- !isDesktop()
348
- ? style.rightContentVertical
349
- : style.rightContentHorizontal
350
- }>
351
- <View style={style.rightInputContent}>
352
- <JoinRoomName isDesktop={true} />
353
- <DeviceSelect />
223
+ <PreCallLocalMute />
224
+ <View style={{marginBottom: '10%'}}>
225
+ {/* This view is visible only on MOBILE view */}
226
+ {isMobileView() && <JoinRoomInputView />}
354
227
  </View>
355
- <View
356
- style={{
357
- width: '100%',
358
- padding: 32,
359
- }}>
360
- <JoinRoomButton />
228
+ </View>
229
+ {/* This view is visible only on WEB view */}
230
+ {!isMobileView() && (
231
+ <View style={style.rightContent}>
232
+ <MeetingName />
233
+ <View
234
+ style={[
235
+ {shadowColor: primaryColor},
236
+ style.precallPickers,
237
+ ]}>
238
+ <DeviceSelect />
239
+ <View style={{width: '100%'}}>
240
+ <JoinRoomInputView />
241
+ </View>
242
+ </View>
361
243
  </View>
362
- </Card>
363
- {/* {!isDesktop() ? <Spacer size={24} horizontal={false} /> : <></>} */}
244
+ )}
364
245
  </View>
365
- </>
366
- </ScrollView>
367
- </View>
368
- )}
246
+ </View>
247
+ </>
248
+ )}
249
+ </View>
369
250
  <PrecallAfterView />
370
251
  </>
371
252
  );
372
253
  };
373
254
 
374
255
  const style = StyleSheet.create({
375
- labelStyle: {
376
- paddingLeft: 8,
256
+ full: {flex: 1},
257
+ main: {
258
+ flex: 2,
259
+ // justifyContent: 'space-evenly',
260
+ marginHorizontal: '10%',
261
+ minHeight: 500,
377
262
  },
378
- subTextStyle: {
379
- marginTop: 8,
380
- marginLeft: 8,
381
- fontFamily: ThemeConfig.FontFamily.sansPro,
382
- fontWeight: '400',
383
- fontSize: ThemeConfig.FontSize.small,
384
- lineHeight: 18,
385
- color: $config.SEMANTIC_NEUTRAL,
386
- textAlign: 'left',
263
+ preCallContainer: {
264
+ display: 'flex',
265
+ flexDirection: 'column',
266
+ minHeight: 350,
267
+ justifyContent: 'space-between',
268
+ marginTop: '15%',
387
269
  },
388
- btnContainerStyle: {maxWidth: 337, alignSelf: 'center', marginTop: 50},
389
- root: {
270
+ nav: {
390
271
  flex: 1,
391
- },
392
- main: {
393
- flexGrow: 1,
272
+ width: '100%',
394
273
  flexDirection: 'row',
274
+ alignItems: 'center',
395
275
  justifyContent: 'center',
396
276
  },
397
- leftContentHorizontal: {
398
- flex: 2.5,
399
- borderRadius: ThemeConfig.BorderRadius.large,
400
- overflow: 'hidden',
401
- borderWidth: 1,
402
- borderColor: $config.CARD_LAYER_3_COLOR,
403
- shadowColor: $config.HARD_CODED_BLACK_COLOR,
404
- shadowOffset: {width: 0, height: 4},
405
- shadowOpacity: 0.1,
406
- shadowRadius: 8,
407
- elevation: 5,
408
- },
409
- leftContentVertical: {
410
- width: '100%',
411
- borderRadius: ThemeConfig.BorderRadius.large,
412
- overflow: 'hidden',
413
- borderWidth: 1,
414
- borderColor: $config.CARD_LAYER_3_COLOR,
415
- shadowColor: $config.HARD_CODED_BLACK_COLOR,
416
- shadowOffset: {width: 0, height: 4},
417
- shadowOpacity: 0.1,
418
- shadowRadius: 8,
419
- elevation: 5,
420
- },
421
- rightContentHorizontal: {
422
- flex: 1,
423
- borderRadius: ThemeConfig.BorderRadius.large,
424
- paddingHorizontal: 0,
425
- paddingVertical: 0,
277
+ content: {flex: 6, flexDirection: 'column'},
278
+ leftContent: {
279
+ flex: 1.3,
426
280
  height: '100%',
427
- minWidth: 350,
428
- justifyContent: 'space-between',
429
- marginHorizontal: 0,
430
- marginVertical: 0,
431
281
  },
432
- rightContentVertical: {
433
- flex: 1,
434
- borderRadius: ThemeConfig.BorderRadius.large,
435
- paddingHorizontal: 0,
436
- paddingVertical: 0,
437
- maxWidth: '100%',
438
- height: '100%',
439
- justifyContent: 'space-between',
440
- marginHorizontal: 0,
282
+ upperContainer: {
283
+ display: 'flex',
284
+ flexDirection: 'row',
285
+ alignItems: 'flex-start',
286
+ flex: 3,
441
287
  },
442
- rightInputContent: {
443
- padding: 32,
288
+ rightContent: {
289
+ flex: 1,
290
+ height: '70%',
291
+ backgroundColor: $config.SECONDARY_FONT_COLOR + '25',
292
+ paddingLeft: 20,
293
+ borderRadius: 10,
294
+ alignItems: 'center',
295
+ borderWidth: 1,
296
+ borderStyle: 'solid',
297
+ borderColor: $config.PRIMARY_COLOR,
298
+ justifyContent: 'center',
444
299
  },
445
300
  titleFont: {
446
301
  textAlign: 'center',
447
302
  fontSize: 20,
448
- color: $config.PRIMARY_ACTION_TEXT_COLOR,
303
+ color: $config.PRIMARY_FONT_COLOR,
449
304
  },
450
- btnContainer: {
451
- flex: 1,
452
- width: '100%',
453
- justifyContent: 'center',
454
- //alignItems: 'center',
305
+ titleHeading: {
306
+ fontSize: 28,
307
+ fontWeight: '700',
308
+ textAlign: 'center',
309
+ color: $config.SECONDARY_FONT_COLOR,
310
+ },
311
+ subHeading: {
312
+ fontSize: 18,
313
+ fontWeight: '700',
314
+ color: $config.PRIMARY_FONT_COLOR,
455
315
  },
456
- lsBtnContainer: {
316
+ btnContainer: {
457
317
  flex: 1,
458
318
  width: '100%',
459
319
  justifyContent: 'center',
320
+ alignItems: 'center',
460
321
  },
461
- meetingTitleContainer: {
462
- marginVertical: 10,
322
+ precallControls: {
323
+ flexDirection: 'row',
324
+ alignSelf: 'center',
325
+ padding: 10,
326
+ width: '40%',
327
+ justifyContent: 'space-around',
328
+ marginVertical: '5%',
463
329
  },
464
- meetingTitleStyle: {
465
- fontFamily: ThemeConfig.FontFamily.sansPro,
466
- fontWeight: '700',
467
- fontSize: ThemeConfig.FontSize.extraLarge,
468
- lineHeight: ThemeConfig.FontSize.extraLarge,
469
- color: $config.FONT_COLOR,
470
- paddingLeft: 0,
330
+ precallPickers: {
331
+ alignItems: 'center',
332
+ alignSelf: 'center',
333
+ justifyContent: 'space-around',
334
+ marginBottom: '10%',
335
+ height: '35%',
336
+ minHeight: 280,
471
337
  },
472
338
  });
473
339
 
474
- export default isMobileUA() ? PrecallNative : Precall;
340
+ export default Precall;
@@ -18,7 +18,7 @@ import {RtcContext} from '../../agora-rn-uikit';
18
18
  import {Platform} from 'react-native';
19
19
  import {backOff} from 'exponential-backoff';
20
20
  import {useString} from '../utils/useString';
21
- import {isAndroid, isWeb, isWebInternal} from '../utils/common';
21
+ import {isAndroid, isWebInternal} from '../utils/common';
22
22
  import {useRender, useRtc} from 'customization-api';
23
23
  import {
24
24
  safeJsonParse,
@@ -37,7 +37,6 @@ export enum UserType {
37
37
  }
38
38
 
39
39
  const RtmConfigure = (props: any) => {
40
- const rtmInitTimstamp = new Date().getTime();
41
40
  const localUid = useLocalUid();
42
41
  const {callActive} = props;
43
42
  const {rtcProps} = useContext(PropsContext);
@@ -83,28 +82,15 @@ const RtmConfigure = (props: any) => {
83
82
  }, [renderList]);
84
83
 
85
84
  React.useEffect(() => {
86
- const handBrowserClose = (ev) => {
87
- ev.preventDefault();
88
- return (ev.returnValue = 'Are you sure you want to exit?');
89
- };
90
- const logoutRtm = () => {
85
+ const handBrowserClose = () => {
91
86
  engine.current.leaveChannel(rtcProps.channel);
92
87
  };
93
88
 
94
89
  if (!isWebInternal()) return;
95
- window.addEventListener(
96
- 'beforeunload',
97
- isWeb() ? handBrowserClose : () => {},
98
- );
99
-
100
- window.addEventListener('pagehide', logoutRtm);
90
+ window.addEventListener('beforeunload', handBrowserClose);
101
91
  // cleanup this component
102
92
  return () => {
103
- window.removeEventListener(
104
- 'beforeunload',
105
- isWeb() ? handBrowserClose : () => {},
106
- );
107
- window.removeEventListener('pagehide', logoutRtm);
93
+ window.removeEventListener('beforeunload', handBrowserClose);
108
94
  };
109
95
  }, []);
110
96
 
@@ -210,9 +196,6 @@ const RtmConfigure = (props: any) => {
210
196
  screenUid: screenUid,
211
197
  //below thing for livestreaming
212
198
  type: 'rtc',
213
- uid,
214
- offline: false,
215
- lastMessageTimeStamp: 0,
216
199
  };
217
200
  updateRenderListState(uid, userData);
218
201
  //end- updating user data in rtc
@@ -220,7 +203,6 @@ const RtmConfigure = (props: any) => {
220
203
  //start - updating screenshare data in rtc
221
204
  const screenShareUser = {
222
205
  type: UserType.ScreenShare,
223
- parentUid: uid,
224
206
  };
225
207
  updateRenderListState(screenUid, screenShareUser);
226
208
  //end - updating screenshare data in rtc
@@ -304,9 +286,6 @@ const RtmConfigure = (props: any) => {
304
286
  screenUid: screenUid,
305
287
  //below thing for livestreaming
306
288
  type: 'rtc',
307
- uid,
308
- offline: false,
309
- lastMessageTimeStamp: 0,
310
289
  };
311
290
  updateRenderListState(uid, userData);
312
291
  //end- updating user data in rtc
@@ -314,7 +293,6 @@ const RtmConfigure = (props: any) => {
314
293
  //start - updating screenshare data in rtc
315
294
  const screenShareUser = {
316
295
  type: UserType.ScreenShare,
317
- parentUid: uid,
318
296
  };
319
297
  updateRenderListState(screenUid, screenShareUser);
320
298
  //end - updating screenshare data in rtc
@@ -440,7 +418,6 @@ const RtmConfigure = (props: any) => {
440
418
  return (
441
419
  <ChatContext.Provider
442
420
  value={{
443
- rtmInitTimstamp,
444
421
  hasUserJoinedRTM,
445
422
  engine: engine.current,
446
423
  localUid: localUid,
@@ -17,5 +17,4 @@ export {
17
17
  Redirect,
18
18
  useHistory,
19
19
  useParams,
20
- Prompt,
21
20
  } from 'react-router-dom';
@@ -18,5 +18,4 @@ export {
18
18
  useHistory,
19
19
  useParams,
20
20
  BackButton,
21
- Prompt,
22
21
  } from 'react-router-native';
@@ -17,5 +17,4 @@ export {
17
17
  Redirect,
18
18
  useHistory,
19
19
  useParams,
20
- Prompt,
21
20
  } from 'react-router-dom';
@@ -17,5 +17,4 @@ export {
17
17
  Redirect,
18
18
  useHistory,
19
19
  useParams,
20
- Prompt,
21
20
  } from 'react-router-dom';