agora-appbuilder-core 3.0.10 → 3.0.11

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 (248) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4719 -5862
  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 -25
  36. package/template/index.rsdk.tsx +0 -1
  37. package/template/index.web.js +1 -2
  38. package/template/index.wsdk.tsx +1 -1
  39. package/template/ios/HelloWorld/Info.plist +1 -14
  40. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  41. package/template/metro.config.js +1 -1
  42. package/template/package.json +7 -18
  43. package/template/react-native-toast-message/index.d.ts +43 -43
  44. package/template/react-native-toast-message/src/colors/index.js +2 -3
  45. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  46. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  47. package/template/react-native-toast-message/src/components/error.js +2 -3
  48. package/template/react-native-toast-message/src/components/info.js +2 -3
  49. package/template/react-native-toast-message/src/components/success.js +2 -3
  50. package/template/react-native-toast-message/src/index.js +31 -122
  51. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  52. package/template/react-native-toast-message/src/styles.js +4 -3
  53. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  54. package/template/src/App.tsx +0 -6
  55. package/template/src/AppWrapper.tsx +28 -63
  56. package/template/src/assets/icons.ts +102 -0
  57. package/template/src/atoms/HorizontalRule.tsx +1 -3
  58. package/template/src/atoms/PrimaryButton.tsx +26 -51
  59. package/template/src/atoms/SecondaryButton.tsx +5 -8
  60. package/template/src/atoms/TextInput.tsx +14 -12
  61. package/template/src/components/Chat.tsx +214 -86
  62. package/template/src/components/ChatContext.ts +1 -8
  63. package/template/src/components/ColorConfigure.tsx +1 -1
  64. package/template/src/components/ColorContext.ts +1 -1
  65. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  66. package/template/src/components/Controls.tsx +42 -342
  67. package/template/src/components/DeviceConfigure.tsx +101 -461
  68. package/template/src/components/DeviceContext.tsx +4 -8
  69. package/template/src/components/EventsConfigure.tsx +7 -144
  70. package/template/src/components/GraphQLProvider.tsx +1 -1
  71. package/template/src/components/GridVideo.tsx +44 -59
  72. package/template/src/components/HostControlView.tsx +35 -114
  73. package/template/src/components/Navbar.tsx +398 -216
  74. package/template/src/components/NetworkQualityContext.tsx +20 -20
  75. package/template/src/components/ParticipantsView.tsx +154 -177
  76. package/template/src/components/PinnedVideo.tsx +120 -207
  77. package/template/src/components/Precall.native.tsx +119 -358
  78. package/template/src/components/Precall.tsx +135 -269
  79. package/template/src/components/RTMConfigure.tsx +4 -27
  80. package/template/src/components/Router.electron.ts +0 -1
  81. package/template/src/components/Router.native.ts +0 -1
  82. package/template/src/components/Router.sdk.ts +0 -1
  83. package/template/src/components/Router.ts +0 -1
  84. package/template/src/components/Settings.tsx +95 -26
  85. package/template/src/components/SettingsView.tsx +56 -251
  86. package/template/src/components/Share.tsx +273 -302
  87. package/template/src/components/StorageContext.tsx +3 -30
  88. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  89. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  90. package/template/src/components/common/Error.tsx +6 -20
  91. package/template/src/components/common/Logo.tsx +15 -16
  92. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  93. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  94. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  95. package/template/src/components/livestream/Types.ts +14 -39
  96. package/template/src/components/livestream/index.ts +0 -1
  97. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  98. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  99. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  100. package/template/src/components/participants/MeParticipant.tsx +38 -0
  101. package/template/src/components/participants/ParticipantName.tsx +7 -13
  102. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  103. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  104. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  105. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  106. package/template/src/components/precall/LocalMute.tsx +14 -84
  107. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  108. package/template/src/components/precall/VideoPreview.tsx +7 -163
  109. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  110. package/template/src/components/precall/meetingTitle.tsx +12 -15
  111. package/template/src/components/precall/selectDevice.tsx +21 -1
  112. package/template/src/components/precall/textInput.tsx +4 -32
  113. package/template/src/components/precall/usePreCall.tsx +0 -16
  114. package/template/src/components/styles.ts +21 -42
  115. package/template/src/components/useShareLink.tsx +14 -12
  116. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  117. package/template/src/pages/Authenticate.tsx +15 -5
  118. package/template/src/pages/Create.tsx +165 -293
  119. package/template/src/pages/Join.tsx +67 -93
  120. package/template/src/pages/VideoCall.tsx +64 -89
  121. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  122. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  123. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  124. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  125. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  126. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  127. package/template/src/rtm-events/constants.ts +0 -2
  128. package/template/src/subComponents/ChatBubble.tsx +83 -123
  129. package/template/src/subComponents/ChatContainer.tsx +84 -257
  130. package/template/src/subComponents/ChatInput.tsx +46 -61
  131. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  132. package/template/src/subComponents/Checkbox.tsx +2 -2
  133. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  134. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  135. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  136. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  137. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  138. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  139. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  140. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  141. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  142. package/template/src/subComponents/Logo.tsx +4 -3
  143. package/template/src/subComponents/LogoutButton.tsx +1 -1
  144. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  145. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  146. package/template/src/subComponents/Recording.tsx +29 -28
  147. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  148. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  149. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  150. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  151. package/template/src/subComponents/SelectDevice.tsx +61 -404
  152. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  153. package/template/src/subComponents/ToastConfig.tsx +10 -150
  154. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  155. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  156. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  157. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  160. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  161. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  162. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  164. package/template/src/utils/common.tsx +1 -155
  165. package/template/src/utils/index.tsx +0 -19
  166. package/template/src/utils/isMobileOrTablet.ts +2 -7
  167. package/template/src/utils/useButtonTemplate.tsx +0 -1
  168. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  169. package/template/web/index.html +0 -5
  170. package/template/webpack.commons.js +8 -13
  171. package/template/webpack.web.config.js +0 -1
  172. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  173. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  174. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  175. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  176. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  177. package/template/android/app/src/main/res/values/colors.xml +0 -7
  178. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  179. package/template/react-native.config.js +0 -7
  180. package/template/src/assets/font-styles.css +0 -329
  181. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  182. package/template/src/assets/fonts/icomoon.ttf +0 -0
  183. package/template/src/assets/permission.png +0 -0
  184. package/template/src/assets/selection.json +0 -1
  185. package/template/src/atoms/ActionMenu.tsx +0 -236
  186. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  187. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  188. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  189. package/template/src/atoms/AnimatedRings.tsx +0 -70
  190. package/template/src/atoms/Card.tsx +0 -61
  191. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  192. package/template/src/atoms/CircularProgress.tsx +0 -102
  193. package/template/src/atoms/CustomIcon.tsx +0 -88
  194. package/template/src/atoms/CustomSwitch.tsx +0 -287
  195. package/template/src/atoms/Dropdown.tsx +0 -306
  196. package/template/src/atoms/IconButton.tsx +0 -162
  197. package/template/src/atoms/ImageIcon.tsx +0 -98
  198. package/template/src/atoms/InfoBubble.tsx +0 -291
  199. package/template/src/atoms/Input.tsx +0 -87
  200. package/template/src/atoms/InviteInfo.tsx +0 -166
  201. package/template/src/atoms/LinkButton.tsx +0 -28
  202. package/template/src/atoms/OutlineButton.tsx +0 -61
  203. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  204. package/template/src/atoms/Popup.tsx +0 -147
  205. package/template/src/atoms/RecordingInfo.tsx +0 -49
  206. package/template/src/atoms/Spacer.tsx +0 -22
  207. package/template/src/atoms/TertiaryButton.tsx +0 -78
  208. package/template/src/atoms/Toggle.tsx +0 -47
  209. package/template/src/atoms/Tooltip.native.tsx +0 -65
  210. package/template/src/atoms/Tooltip.tsx +0 -94
  211. package/template/src/atoms/UserAvatar.tsx +0 -60
  212. package/template/src/components/CommonStyles.ts +0 -44
  213. package/template/src/components/ToastComponent.tsx +0 -8
  214. package/template/src/components/participants/Participant.tsx +0 -302
  215. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  216. package/template/src/components/popups/InvitePopup.tsx +0 -115
  217. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  218. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  219. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  220. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  221. package/template/src/components/useToast.tsx +0 -41
  222. package/template/src/components/useVideoCall.tsx +0 -65
  223. package/template/src/pages/Endcall.tsx +0 -148
  224. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  225. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  226. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  227. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  228. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  229. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  230. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  231. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  232. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  233. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  234. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  235. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  236. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  237. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  238. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  239. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  240. package/template/src/theme/index.ts +0 -46
  241. package/template/src/utils/PlatformWrapper.tsx +0 -21
  242. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  243. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  244. package/template/src/utils/useFocus.tsx +0 -46
  245. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  246. package/template/src/utils/useIsHandRaised.ts +0 -13
  247. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  248. 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';