agora-appbuilder-core 4.0.0 → 4.0.1

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 (475) hide show
  1. package/package.json +3 -3
  2. package/template/.bundle/config +2 -0
  3. package/template/Gemfile +4 -0
  4. package/template/Gulpfile.js +29 -29
  5. package/template/_eslintrc.js +3 -3
  6. package/template/_gitignore +12 -11
  7. package/template/_package-lock.json +28491 -23647
  8. package/template/_prettierrc.js +2 -2
  9. package/template/agora-rn-uikit/.eslintrc.js +5 -0
  10. package/template/agora-rn-uikit/package.json +14 -14
  11. package/template/agora-rn-uikit/src/AgoraUIKit.tsx +6 -6
  12. package/template/agora-rn-uikit/src/Contexts/ContentContext.tsx +10 -0
  13. package/template/agora-rn-uikit/src/Contexts/DispatchContext.tsx +22 -0
  14. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +6 -6
  15. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +79 -38
  16. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +26 -17
  17. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +1 -0
  18. package/template/agora-rn-uikit/src/Controls/Icons.ts +45 -0
  19. package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -4
  20. package/template/agora-rn-uikit/src/Controls/Local/FullScreen.tsx +3 -1
  21. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +5 -2
  22. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +5 -2
  23. package/template/agora-rn-uikit/src/Controls/Local/Recording.tsx +0 -2
  24. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +7 -6
  25. package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +5 -5
  26. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +5 -4
  27. package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +3 -1
  28. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +5 -4
  29. package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +2 -2
  30. package/template/agora-rn-uikit/src/Reducer/ActiveSpeaker.ts +30 -0
  31. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +8 -7
  32. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +8 -7
  33. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +6 -7
  34. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +7 -8
  35. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +9 -9
  36. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +7 -8
  37. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +14 -13
  38. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +6 -7
  39. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +6 -7
  40. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +5 -6
  41. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +20 -3
  42. package/template/agora-rn-uikit/src/Reducer/UserSecondaryPin.ts +23 -0
  43. package/template/agora-rn-uikit/src/Reducer/index.ts +2 -1
  44. package/template/agora-rn-uikit/src/Rtc/Create.tsx +138 -100
  45. package/template/agora-rn-uikit/src/Rtc/Join.tsx +55 -28
  46. package/template/agora-rn-uikit/src/RtcConfigure.tsx +177 -77
  47. package/template/agora-rn-uikit/src/Utils/isBotUser.ts +15 -0
  48. package/template/agora-rn-uikit/src/Utils/quality.tsx +8 -0
  49. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +56 -12
  50. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +47 -17
  51. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +19 -11
  52. package/template/agora-rn-uikit/src/index.ts +15 -9
  53. package/template/android/app/build.gradle +59 -156
  54. package/template/android/app/src/debug/AndroidManifest.xml +6 -1
  55. package/template/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java +7 -4
  56. package/template/android/app/src/main/AndroidManifest.xml +6 -19
  57. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  58. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +17 -0
  59. package/template/android/app/src/main/java/com/helloworld/MainApplication.java +22 -36
  60. package/template/android/app/src/main/java/com/helloworld/SSLPinningFactory.java +30 -0
  61. package/template/android/app/src/main/res/values/strings.xml +3 -0
  62. package/template/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java +20 -0
  63. package/template/android/build.gradle +19 -33
  64. package/template/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  65. package/template/android/gradle/wrapper/gradle-wrapper.properties +3 -2
  66. package/template/android/gradle.properties +18 -4
  67. package/template/android/gradlew +165 -104
  68. package/template/android/gradlew.bat +12 -23
  69. package/template/android/settings.gradle +1 -0
  70. package/template/bridge/rtc/webNg/RtcEngine.ts +200 -70
  71. package/template/bridge/rtc/webNg/{SurfaceView.tsx → RtcSurfaceView.tsx} +20 -26
  72. package/template/bridge/rtc/webNg/Types.ts +20 -5
  73. package/template/bridge/rtc/webNg/index.ts +81 -14
  74. package/template/bridge/rtm/web/index.ts +5 -3
  75. package/template/configTransform.js +16 -1
  76. package/template/customization-api/action-library.ts +4 -16
  77. package/template/customization-api/app-state.ts +15 -8
  78. package/template/customization-api/customEvents.ts +7 -2
  79. package/template/customization-api/customize.ts +1 -1
  80. package/template/customization-api/index.ts +4 -0
  81. package/template/customization-api/sub-components.ts +17 -16
  82. package/template/customization-api/temp.ts +52 -0
  83. package/template/customization-api/typeDefinition.ts +34 -46
  84. package/template/customization-api/types.ts +26 -0
  85. package/template/customization-api/utils.ts +4 -0
  86. package/template/customization-implementation/createHook.ts +24 -6
  87. package/template/customization-implementation/index.ts +1 -2
  88. package/template/customization-implementation/useCustomization.tsx +5 -7
  89. package/template/defaultConfig.js +72 -0
  90. package/template/global.d.ts +14 -1
  91. package/template/index.js +1 -4
  92. package/template/index.web.js +0 -5
  93. package/template/index.wsdk.tsx +1 -12
  94. package/template/ios/.xcode.env +11 -0
  95. package/template/ios/HelloWorld/AppDelegate.h +2 -4
  96. package/template/ios/HelloWorld/AppDelegate.mm +64 -0
  97. package/template/ios/HelloWorld/HelloWorldDebug.entitlements +10 -0
  98. package/template/ios/HelloWorld/Info.plist +8 -2
  99. package/template/ios/HelloWorld/main.m +2 -1
  100. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +533 -17
  101. package/template/ios/HelloWorld.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  102. package/template/ios/HelloWorld.xcworkspace/contents.xcworkspacedata +10 -0
  103. package/template/ios/HelloWorld.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  104. package/template/ios/HelloWorldTests/HelloWorldTests.m +14 -13
  105. package/template/ios/HelloWorldTests/Info.plist +2 -2
  106. package/template/ios/Podfile +54 -20
  107. package/template/ios/Podfile.lock +809 -0
  108. package/template/ios/ScreenSharing/Info.plist +15 -0
  109. package/template/ios/ScreenSharing/SampleHandler.h +9 -0
  110. package/template/ios/ScreenSharing/SampleHandler.m +70 -0
  111. package/template/jest.config.js +4 -0
  112. package/template/metro.config.js +7 -32
  113. package/template/package.json +53 -39
  114. package/template/react-native-toast-message/index.d.ts +3 -1
  115. package/template/react-native-toast-message/index.js +1 -0
  116. package/template/react-native-toast-message/src/components/base/index.js +20 -32
  117. package/template/react-native-toast-message/src/components/base/styles.js +18 -21
  118. package/template/react-native-toast-message/src/components/checkbox.js +24 -19
  119. package/template/react-native-toast-message/src/index.js +3 -1
  120. package/template/react-native-toast-message/src/index.sdk.tsx +4 -1
  121. package/template/src/App.tsx +53 -69
  122. package/template/src/AppRoutes.tsx +90 -0
  123. package/template/src/AppWrapper.tsx +42 -25
  124. package/template/src/SDKAppWrapper.tsx +89 -57
  125. package/template/src/app-state/useLocalUserInfo.ts +3 -3
  126. package/template/src/app-state/useNoiseSupression.native.tsx +67 -0
  127. package/template/src/app-state/useNoiseSupression.tsx +107 -0
  128. package/template/src/app-state/useVideoQuality.tsx +39 -0
  129. package/template/src/assets/font-styles.css +175 -3
  130. package/template/src/assets/fonts/icomoon.ttf +0 -0
  131. package/template/src/assets/selection.json +1 -1
  132. package/template/src/atoms/ActionMenu.tsx +50 -11
  133. package/template/src/atoms/Avatar.tsx +51 -0
  134. package/template/src/atoms/Card.tsx +21 -8
  135. package/template/src/atoms/Carousel.native.tsx +105 -0
  136. package/template/src/atoms/Carousel.tsx +103 -0
  137. package/template/src/atoms/Checkbox.tsx +98 -0
  138. package/template/src/atoms/CircularProgress.tsx +0 -1
  139. package/template/src/atoms/ClipboardIconButton.tsx +91 -0
  140. package/template/src/atoms/CustomIcon.tsx +46 -0
  141. package/template/src/atoms/DropDownMulti.tsx +349 -0
  142. package/template/src/atoms/Dropdown.tsx +3 -3
  143. package/template/src/atoms/IconButton.tsx +52 -9
  144. package/template/src/atoms/ImageIcon.tsx +18 -5
  145. package/template/src/atoms/InlineNotification.tsx +81 -0
  146. package/template/src/atoms/InviteInfo.tsx +4 -4
  147. package/template/src/atoms/MeetingLink.tsx +160 -0
  148. package/template/src/atoms/ParticipantsCount.tsx +20 -8
  149. package/template/src/atoms/Popup.tsx +49 -27
  150. package/template/src/atoms/PrimaryButton.tsx +19 -5
  151. package/template/src/atoms/RecordingInfo.tsx +8 -5
  152. package/template/src/atoms/SecondaryButton.tsx +2 -0
  153. package/template/src/atoms/Spacer.tsx +1 -0
  154. package/template/src/atoms/TertiaryButton.tsx +35 -5
  155. package/template/src/atoms/TextInput.tsx +2 -1
  156. package/template/src/atoms/Toolbar.tsx +102 -0
  157. package/template/src/atoms/ToolbarItem.tsx +85 -0
  158. package/template/src/atoms/ToolbarMenu.tsx +40 -0
  159. package/template/src/atoms/ToolbarMenuItem.tsx +104 -0
  160. package/template/src/atoms/ToolbarPreset.tsx +71 -0
  161. package/template/src/atoms/Tooltip.tsx +30 -13
  162. package/template/src/atoms/pagination/Pagination.tsx +127 -0
  163. package/template/src/atoms/pagination/usePagination.tsx +88 -0
  164. package/template/src/auth/AuthProvider.tsx +500 -0
  165. package/template/src/auth/AuthRoute.tsx +94 -0
  166. package/template/src/auth/IDPAuth.electron.tsx +31 -0
  167. package/template/src/auth/IDPAuth.tsx +67 -0
  168. package/template/src/auth/IDPLogoutComponent.tsx +158 -0
  169. package/template/src/auth/UserCancelPopup.tsx +115 -0
  170. package/template/src/auth/config.ts +52 -0
  171. package/template/src/auth/openIDPURL.electron.tsx +39 -0
  172. package/template/src/auth/openIDPURL.native.tsx +51 -0
  173. package/template/src/auth/openIDPURL.tsx +20 -0
  174. package/template/src/auth/useIDPAuth.electron.tsx +65 -0
  175. package/template/src/auth/useIDPAuth.native.tsx +70 -0
  176. package/template/src/auth/useIDPAuth.tsx +63 -0
  177. package/template/src/auth/useTokenAuth.tsx +194 -0
  178. package/template/src/components/Chat.tsx +92 -72
  179. package/template/src/components/ChatContext.ts +2 -0
  180. package/template/src/components/ColorConfigure.tsx +0 -1
  181. package/template/src/components/CommonStyles.ts +9 -2
  182. package/template/src/components/Controls.tsx +914 -182
  183. package/template/src/components/Controls1.native.tsx +9 -5
  184. package/template/src/components/DeviceConfigure.native.tsx +2 -2
  185. package/template/src/components/DeviceConfigure.tsx +400 -149
  186. package/template/src/components/DeviceContext.tsx +2 -0
  187. package/template/src/components/EventsConfigure.tsx +722 -82
  188. package/template/src/components/GraphQLProvider.tsx +82 -39
  189. package/template/src/components/GridVideo.tsx +30 -16
  190. package/template/src/components/HostControlView.tsx +11 -14
  191. package/template/src/components/JoinPhrase.tsx +0 -1
  192. package/template/src/components/Leftbar.tsx +110 -0
  193. package/template/src/components/Navbar.tsx +305 -147
  194. package/template/src/components/NavbarMobile.tsx +119 -0
  195. package/template/src/components/Navigation.native.tsx +1 -15
  196. package/template/src/components/{Settings.native.tsx → Navigation.sdk.tsx} +17 -6
  197. package/template/src/components/NetworkQualityContext.tsx +12 -6
  198. package/template/src/components/ParticipantsView.tsx +63 -56
  199. package/template/src/components/PinnedVideo.tsx +191 -119
  200. package/template/src/components/Precall.native.tsx +177 -72
  201. package/template/src/components/Precall.tsx +247 -78
  202. package/template/src/components/RTMConfigure.tsx +205 -67
  203. package/template/src/components/Rightbar.tsx +112 -0
  204. package/template/src/components/Router.electron.ts +1 -0
  205. package/template/src/components/Router.native.ts +1 -0
  206. package/template/src/components/Router.sdk.ts +1 -0
  207. package/template/src/components/Router.ts +1 -0
  208. package/template/src/components/SdkApiContext.tsx +313 -0
  209. package/template/src/components/SdkMuteToggleListener.tsx +88 -0
  210. package/template/src/components/SessionContext.tsx +0 -1
  211. package/template/src/components/Settings.tsx +33 -4
  212. package/template/src/components/SettingsView.tsx +44 -9
  213. package/template/src/components/Share.tsx +152 -74
  214. package/template/src/components/StorageContext.tsx +23 -6
  215. package/template/src/components/ToastComponent.tsx +10 -1
  216. package/template/src/components/WhiteboardLayout.tsx +291 -0
  217. package/template/src/components/chat-messages/useChatMessages.tsx +454 -239
  218. package/template/src/components/chat-ui/{useChatUIControl.tsx → useChatUIControls.tsx} +29 -29
  219. package/template/src/components/common/Error.tsx +2 -0
  220. package/template/src/components/common/Logo.tsx +2 -2
  221. package/template/src/components/contexts/LiveStreamDataContext.tsx +13 -12
  222. package/template/src/components/contexts/ScreenShareContext.tsx +15 -1
  223. package/template/src/components/contexts/VideoMeetingDataContext.tsx +6 -6
  224. package/template/src/components/contexts/WaitingRoomContext.tsx +50 -0
  225. package/template/src/components/contexts/WhiteboardContext.tsx +54 -54
  226. package/template/src/components/disable-chat/useDisableChat.tsx +32 -0
  227. package/template/src/components/livestream/LiveStreamContext.tsx +314 -220
  228. package/template/src/components/livestream/Types.ts +36 -20
  229. package/template/src/components/livestream/views/LiveStreamAttendeeLandingTile.tsx +295 -0
  230. package/template/src/components/livestream/views/LiveStreamControls.tsx +5 -10
  231. package/template/src/components/meeting-info-invite/MeetingInfo.tsx +82 -0
  232. package/template/src/components/meeting-info-invite/MeetingInfoCardHeader.tsx +86 -0
  233. package/template/src/components/meeting-info-invite/MeetingInfoGridTile.tsx +218 -0
  234. package/template/src/components/meeting-info-invite/MeetingInfoLinks.tsx +122 -0
  235. package/template/src/components/participants/AllAudienceParticipants.tsx +19 -20
  236. package/template/src/components/participants/AllHostParticipants.tsx +20 -19
  237. package/template/src/components/participants/Participant.tsx +45 -16
  238. package/template/src/components/participants/ParticipantSectionTitle.tsx +5 -2
  239. package/template/src/components/participants/ScreenshareParticipants.tsx +17 -19
  240. package/template/src/components/participants/UserActionMenuOptions.tsx +173 -62
  241. package/template/src/components/participants/WaitingRoomParticipants.tsx +74 -0
  242. package/template/src/components/popups/InvitePopup.tsx +110 -45
  243. package/template/src/components/popups/StartScreenSharePopup.native.tsx +182 -0
  244. package/template/src/components/popups/StartScreenSharePopup.tsx +6 -0
  245. package/template/src/components/popups/StopRecordingPopup.tsx +11 -5
  246. package/template/src/components/popups/StopScreenSharePopup.native.tsx +135 -0
  247. package/template/src/components/popups/StopScreenSharePopup.tsx +6 -0
  248. package/template/src/components/popups/WhiteboardClearAllPopup.tsx +123 -0
  249. package/template/src/components/precall/LocalMute.tsx +69 -45
  250. package/template/src/components/precall/PermissionHelper.tsx +56 -28
  251. package/template/src/components/precall/PreCallSettings.tsx +1 -0
  252. package/template/src/components/precall/VideoFallback.tsx +173 -0
  253. package/template/src/components/precall/VideoPreview.native.tsx +19 -53
  254. package/template/src/components/precall/VideoPreview.tsx +29 -164
  255. package/template/src/components/precall/index.tsx +2 -0
  256. package/template/src/components/precall/joinCallBtn.native.tsx +12 -5
  257. package/template/src/components/precall/joinCallBtn.tsx +13 -4
  258. package/template/src/components/precall/joinWaitingRoomBtn.native.tsx +210 -0
  259. package/template/src/components/precall/joinWaitingRoomBtn.tsx +250 -0
  260. package/template/src/components/precall/meetingTitle.tsx +37 -11
  261. package/template/src/components/precall/selectDevice.tsx +5 -5
  262. package/template/src/components/precall/textInput.tsx +17 -19
  263. package/template/src/components/precall/usePreCall.tsx +33 -1
  264. package/template/src/components/recording-bot/RecordingBotRoute.tsx +42 -0
  265. package/template/src/components/recordings/RecordingsDateTable.tsx +62 -0
  266. package/template/src/components/recordings/RecordingsModal.tsx +135 -0
  267. package/template/src/components/recordings/ViewRecordingsModal.tsx +51 -0
  268. package/template/src/components/recordings/recording-table.tsx +154 -0
  269. package/template/src/components/recordings/style.ts +183 -0
  270. package/template/src/components/recordings/utils.ts +80 -0
  271. package/template/src/components/room-info/useRoomInfo.tsx +128 -0
  272. package/template/src/components/{meeting-info/useSetMeetingInfo.tsx → room-info/useSetRoomInfo.tsx} +12 -12
  273. package/template/src/components/useShareLink.tsx +28 -63
  274. package/template/src/components/useUserPreference.tsx +82 -16
  275. package/template/src/components/useVideoCall.tsx +93 -1
  276. package/template/src/components/virtual-background/VBButton.tsx +64 -0
  277. package/template/src/components/virtual-background/VBCard.native.tsx +282 -0
  278. package/template/src/components/virtual-background/VBCard.tsx +272 -0
  279. package/template/src/components/virtual-background/VBPanel.tsx +279 -0
  280. package/template/src/components/virtual-background/VButils.native.ts +37 -0
  281. package/template/src/components/virtual-background/VButils.ts +104 -0
  282. package/template/src/components/virtual-background/VideoPreview.native.tsx +43 -0
  283. package/template/src/components/virtual-background/VideoPreview.tsx +106 -0
  284. package/template/src/components/virtual-background/imagePaths.ts +87 -0
  285. package/template/src/components/virtual-background/images/beachImageBase64.ts +1 -0
  286. package/template/src/components/virtual-background/images/bedroomImageBase64.ts +1 -0
  287. package/template/src/components/virtual-background/images/bookImageBase64.ts +1 -0
  288. package/template/src/components/virtual-background/images/earthImageBase64.ts +1 -0
  289. package/template/src/components/virtual-background/images/index.ts +37 -0
  290. package/template/src/components/virtual-background/images/lampImageBase64.ts +1 -0
  291. package/template/src/components/virtual-background/images/mountainsImageBase64.ts +1 -0
  292. package/template/src/components/virtual-background/images/office1ImageBase64.ts +1 -0
  293. package/template/src/components/virtual-background/images/officeImageBase64.ts +1 -0
  294. package/template/src/components/virtual-background/images/plantsImageBase64.ts +1 -0
  295. package/template/src/components/virtual-background/images/skyImageBase64.ts +1 -0
  296. package/template/src/components/virtual-background/images/wallImageBase64.ts +1 -0
  297. package/template/src/components/virtual-background/useVB.native.tsx +185 -0
  298. package/template/src/components/virtual-background/useVB.tsx +267 -0
  299. package/template/src/components/whiteboard/StrokeWidthTool.tsx +137 -0
  300. package/template/src/components/whiteboard/WhiteboardButton.tsx +93 -0
  301. package/template/src/components/whiteboard/WhiteboardCanvas.tsx +99 -0
  302. package/template/src/components/whiteboard/WhiteboardConfigure.native.tsx +148 -0
  303. package/template/src/components/whiteboard/WhiteboardConfigure.tsx +446 -0
  304. package/template/src/components/whiteboard/WhiteboardCursor.tsx +152 -0
  305. package/template/src/components/whiteboard/WhiteboardToolBox.tsx +1246 -0
  306. package/template/src/components/whiteboard/WhiteboardView.native.tsx +188 -0
  307. package/template/src/components/whiteboard/WhiteboardView.tsx +81 -0
  308. package/template/src/components/whiteboard/WhiteboardWidget.tsx +685 -0
  309. package/template/src/components/whiteboard/WhiteboardWrapper.tsx +38 -0
  310. package/template/src/language/default-labels/commonLabels.ts +51 -14
  311. package/template/src/language/default-labels/createScreenLabels.ts +97 -17
  312. package/template/src/language/default-labels/joinScreenLabels.ts +45 -6
  313. package/template/src/language/default-labels/precallScreenLabels.ts +149 -25
  314. package/template/src/language/default-labels/shareLinkScreenLabels.ts +85 -37
  315. package/template/src/language/default-labels/videoCallScreenLabels.ts +1195 -158
  316. package/template/src/pages/Create.tsx +136 -106
  317. package/template/src/pages/Endcall.tsx +2 -2
  318. package/template/src/pages/Join.tsx +82 -40
  319. package/template/src/pages/Login.tsx +26 -0
  320. package/template/src/pages/VideoCall.tsx +329 -127
  321. package/template/src/pages/video-call/ActionSheet.native.tsx +54 -6
  322. package/template/src/pages/video-call/ActionSheet.tsx +55 -15
  323. package/template/src/pages/video-call/ActionSheetContent.tsx +498 -308
  324. package/template/src/pages/video-call/ActionSheetHandle.tsx +7 -1
  325. package/template/src/pages/video-call/DefaultLayouts.ts +20 -8
  326. package/template/src/pages/video-call/NameWithMicIcon.tsx +41 -64
  327. package/template/src/pages/video-call/PinchableView.tsx +119 -0
  328. package/template/src/pages/video-call/RenderComponent.tsx +14 -30
  329. package/template/src/pages/video-call/SidePanelHeader.tsx +227 -29
  330. package/template/src/pages/video-call/VideoCallMobileView.tsx +231 -89
  331. package/template/src/pages/video-call/VideoCallScreen.native.tsx +3 -2
  332. package/template/src/pages/video-call/VideoCallScreen.tsx +233 -84
  333. package/template/src/pages/video-call/VideoCallScreenWrapper.tsx +41 -0
  334. package/template/src/pages/video-call/VideoComponent.tsx +60 -8
  335. package/template/src/pages/video-call/VideoRenderer.tsx +343 -57
  336. package/template/src/pages/video-call/VisibilitySensor.tsx +104 -0
  337. package/template/src/pages/video-call/ZoomableWrapper.native.tsx +34 -0
  338. package/template/src/pages/video-call/ZoomableWrapper.tsx +5 -0
  339. package/template/src/pages/video-call/index.ts +42 -8
  340. package/template/src/rtm/RTMEngine.ts +17 -4
  341. package/template/src/rtm-events/constants.ts +21 -3
  342. package/template/src/rtm-events-api/Events.ts +7 -4
  343. package/template/src/rtm-events-api/LocalEvents.ts +14 -0
  344. package/template/src/rtm-events-api/types.ts +5 -5
  345. package/template/src/selection.json +1 -0
  346. package/template/src/subComponents/ChatBubble.tsx +87 -67
  347. package/template/src/subComponents/ChatContainer.tsx +70 -49
  348. package/template/src/subComponents/ChatInput.ios.tsx +32 -85
  349. package/template/src/subComponents/ChatInput.tsx +31 -80
  350. package/template/src/subComponents/Checkbox.native.tsx +46 -46
  351. package/template/src/subComponents/Checkbox.tsx +7 -6
  352. package/template/src/subComponents/CopyJoinInfo.tsx +31 -11
  353. package/template/src/subComponents/EndcallPopup.tsx +83 -12
  354. package/template/src/subComponents/FallbackLogo.tsx +2 -2
  355. package/template/src/subComponents/LanguageSelector.tsx +34 -30
  356. package/template/src/subComponents/LayoutIconButton.tsx +34 -17
  357. package/template/src/subComponents/LayoutIconDropdown.tsx +21 -8
  358. package/template/src/subComponents/Loading.tsx +60 -0
  359. package/template/src/subComponents/LocalAudioMute.tsx +87 -34
  360. package/template/src/subComponents/LocalEndCall.tsx +61 -24
  361. package/template/src/subComponents/LocalSwitchCamera.tsx +57 -13
  362. package/template/src/subComponents/LocalVideoMute.tsx +105 -36
  363. package/template/src/subComponents/LogoutButton.tsx +1 -1
  364. package/template/src/subComponents/NetworkQualityPill.tsx +22 -38
  365. package/template/src/subComponents/Recording.tsx +29 -9
  366. package/template/src/subComponents/RemoteAudioMute.tsx +5 -5
  367. package/template/src/subComponents/RemoteMutePopup.tsx +55 -14
  368. package/template/src/subComponents/RemoteVideoMute.tsx +5 -5
  369. package/template/src/subComponents/RemoveMeetingPopup.tsx +19 -6
  370. package/template/src/subComponents/RemoveScreensharePopup.tsx +20 -5
  371. package/template/src/subComponents/ScreenShareNotice.tsx +11 -6
  372. package/template/src/subComponents/SelectDevice.tsx +103 -34
  373. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +9 -6
  374. package/template/src/subComponents/SidePanelButtons.ts +0 -3
  375. package/template/src/subComponents/SidePanelEnum.tsx +2 -0
  376. package/template/src/subComponents/SidePanelHeader.tsx +97 -63
  377. package/template/src/subComponents/ToastConfig.tsx +70 -61
  378. package/template/src/subComponents/caption/Caption.tsx +132 -0
  379. package/template/src/subComponents/caption/CaptionContainer.tsx +302 -0
  380. package/template/src/subComponents/caption/CaptionIcon.tsx +111 -0
  381. package/template/src/subComponents/caption/CaptionText.tsx +182 -0
  382. package/template/src/subComponents/caption/DownloadTranscriptBtn.tsx +65 -0
  383. package/template/src/subComponents/caption/LanguageSelectorPopup.tsx +192 -0
  384. package/template/src/subComponents/caption/Transcript.tsx +452 -0
  385. package/template/src/subComponents/caption/TranscriptIcon.tsx +123 -0
  386. package/template/src/subComponents/caption/TranscriptText.tsx +98 -0
  387. package/template/src/subComponents/caption/index.ts +3 -0
  388. package/template/src/subComponents/caption/proto/ptoto.js +91 -0
  389. package/template/src/subComponents/caption/proto/test.proto +23 -0
  390. package/template/src/subComponents/caption/useCaption.tsx +123 -0
  391. package/template/src/subComponents/caption/useCaptionWidth.ts +27 -0
  392. package/template/src/subComponents/caption/useSTTAPI.tsx +179 -0
  393. package/template/src/subComponents/caption/useStreamMessageUtils.native.ts +211 -0
  394. package/template/src/subComponents/caption/useStreamMessageUtils.ts +235 -0
  395. package/template/src/subComponents/caption/useTranscriptDownload.native.ts +63 -0
  396. package/template/src/subComponents/caption/useTranscriptDownload.ts +52 -0
  397. package/template/src/subComponents/caption/utils.ts +126 -0
  398. package/template/src/subComponents/chat/ChatParticipants.tsx +60 -24
  399. package/template/src/subComponents/livestream/ApprovedLiveStreamControlsView.tsx +2 -2
  400. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +19 -20
  401. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +66 -35
  402. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +3 -2
  403. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +10 -6
  404. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +28 -19
  405. package/template/src/subComponents/recording/useIsRecordingBot.tsx +38 -0
  406. package/template/src/subComponents/recording/useRecording.tsx +251 -138
  407. package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +0 -1
  408. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +39 -15
  409. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +275 -69
  410. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +193 -124
  411. package/template/src/subComponents/screenshare/useScreenshare.tsx +2 -0
  412. package/template/src/subComponents/waiting-rooms/WaitingRoomControls.tsx +85 -0
  413. package/template/src/subComponents/waiting-rooms/useWaitingRoomAPI.ts +75 -0
  414. package/template/src/theme/index.ts +13 -0
  415. package/template/src/utils/SdkEvents.ts +37 -14
  416. package/template/src/utils/SdkMethodEvents.ts +101 -0
  417. package/template/src/utils/axiomLogger.ts +117 -0
  418. package/template/src/utils/book.jpg +0 -0
  419. package/template/src/utils/common.tsx +118 -6
  420. package/template/src/utils/constants.ts +4 -0
  421. package/template/src/utils/getCustomRoute.ts +7 -0
  422. package/template/src/utils/index.tsx +34 -0
  423. package/template/src/utils/useActionSheet.tsx +50 -0
  424. package/template/src/utils/useActiveSpeaker.ts +38 -0
  425. package/template/src/utils/useAppState.ts +17 -0
  426. package/template/src/utils/useAsyncEffect.ts +138 -0
  427. package/template/src/utils/{useCreateMeeting.ts → useCreateRoom.ts} +27 -26
  428. package/template/src/utils/useEndCall.ts +65 -0
  429. package/template/src/utils/useFindActiveSpeaker.native.ts +4 -0
  430. package/template/src/utils/useFindActiveSpeaker.ts +335 -0
  431. package/template/src/utils/useGetMeetingPhrase.ts +10 -10
  432. package/template/src/utils/useIsAudioEnabled.ts +3 -3
  433. package/template/src/utils/useIsLocalUserSpeaking.native.ts +4 -0
  434. package/template/src/utils/useIsLocalUserSpeaking.ts +103 -0
  435. package/template/src/utils/useIsPSTN.ts +3 -3
  436. package/template/src/utils/useIsVideoEnabled.ts +3 -3
  437. package/template/src/utils/useJoinRoom.ts +199 -0
  438. package/template/src/utils/{useIsActiveSpeaker.ts → useLocalAudio.ts} +23 -12
  439. package/template/src/{components/OAuth.tsx → utils/useMenu.tsx} +16 -15
  440. package/template/src/utils/useModal.tsx +8 -0
  441. package/template/src/utils/useMutePSTN.ts +2 -2
  442. package/template/src/utils/useMuteToggleLocal.ts +121 -96
  443. package/template/src/utils/useRemoteEndCall.ts +4 -4
  444. package/template/src/utils/useRemoteEndScreenshare.ts +4 -4
  445. package/template/src/utils/useRemoteMute.ts +7 -7
  446. package/template/src/utils/useRemoteRequest.ts +7 -7
  447. package/template/src/utils/useSearchParams.tsx +18 -0
  448. package/template/src/utils/useString.ts +13 -3
  449. package/template/src/utils/useSwitchCamera.native.tsx +25 -0
  450. package/template/src/{subComponents/screenshare/ScreenshareButton.native.tsx → utils/useSwitchCamera.tsx} +12 -11
  451. package/template/src/utils/useToolbar.tsx +59 -0
  452. package/template/src/wasms/agora-virtual-background.wasm +0 -0
  453. package/template/static.d.ts +42 -0
  454. package/template/tsconfig_rsdk_index.json +3 -3
  455. package/template/tsconfig_wsdk_index.json +1 -1
  456. package/template/web/index.html +20 -0
  457. package/template/webpack.commons.js +21 -10
  458. package/template/webpack.rsdk.config.js +1 -2
  459. package/template/webpack.web.config.js +7 -3
  460. package/template/_buckconfig +0 -6
  461. package/template/_gitattributes +0 -1
  462. package/template/agora-rn-uikit/src/Contexts/RenderContext.tsx +0 -10
  463. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  464. package/template/android/app/_BUCK +0 -55
  465. package/template/android/app/build_defs.bzl +0 -19
  466. package/template/bridge/rtc/webNg/LocalView.tsx +0 -20
  467. package/template/ios/HelloWorld/AppDelegate.m +0 -74
  468. package/template/src/components/OAuth.electron.tsx +0 -41
  469. package/template/src/components/OAuth.native.tsx +0 -55
  470. package/template/src/components/OAuthConfig.ts +0 -77
  471. package/template/src/components/StoreToken.tsx +0 -39
  472. package/template/src/components/meeting-info/useMeetingInfo.tsx +0 -70
  473. package/template/src/pages/video-call/CustomUserContextHolder.tsx +0 -20
  474. package/template/src/utils/useButtonTemplate.tsx +0 -44
  475. package/template/src/utils/useJoinMeeting.ts +0 -132
@@ -25,12 +25,10 @@ import {
25
25
  } from '../utils/common';
26
26
  import {useCustomization} from 'customization-implementation';
27
27
  import {useString} from '../utils/useString';
28
- import useCreateMeeting from '../utils/useCreateMeeting';
28
+ import useCreateRoom from '../utils/useCreateRoom';
29
29
  import {CreateProvider} from './create/useCreate';
30
- import useJoinMeeting from '../utils/useJoinMeeting';
31
- import SDKEvents from '../utils/SdkEvents';
32
- import {MeetingInfoDefaultValue} from '../components/meeting-info/useMeetingInfo';
33
- import {useSetMeetingInfo} from '../components/meeting-info/useSetMeetingInfo';
30
+ import useJoinRoom from '../utils/useJoinRoom';
31
+ import {RoomInfoDefaultValue} from '../components/room-info/useRoomInfo';
34
32
  import Input from '../atoms/Input';
35
33
  import Toggle from '../atoms/Toggle';
36
34
  import Card from '../atoms/Card';
@@ -42,9 +40,27 @@ import Tooltip from '../atoms/Tooltip';
42
40
  import ImageIcon from '../atoms/ImageIcon';
43
41
  import hexadecimalTransparency from '../utils/hexadecimalTransparency';
44
42
  import {randomNameGenerator} from '../utils';
43
+ import {useSetRoomInfo} from '../components/room-info/useSetRoomInfo';
44
+ import IDPLogoutComponent from '../auth/IDPLogoutComponent';
45
+ import isSDK from '../utils/isSDK';
46
+ import {
47
+ createRoomAllowPhoneNumberJoining,
48
+ createRoomAllowPhoneNumberJoiningTooltipText,
49
+ createRoomBtnText,
50
+ createRoomErrorToastHeading,
51
+ createRoomErrorToastSubHeading,
52
+ createRoomHeading,
53
+ createRoomInputLabel,
54
+ createRoomInputPlaceholderText,
55
+ createRoomJoinWithID,
56
+ createRoomMakeEveryOneCoHost,
57
+ createRoomMakeEveryOneCoHostTooltipText,
58
+ createRoomSuccessToastHeading,
59
+ createRoomSuccessToastSubHeading,
60
+ } from '../language/default-labels/createScreenLabels';
45
61
 
46
62
  const Create = () => {
47
- const {CreateComponent} = useCustomization((data) => {
63
+ const {CreateComponent} = useCustomization(data => {
48
64
  let components: {
49
65
  CreateComponent?: React.ElementType;
50
66
  } = {};
@@ -62,7 +78,7 @@ const Create = () => {
62
78
  return components;
63
79
  });
64
80
 
65
- const useJoin = useJoinMeeting();
81
+ const useJoin = useJoinRoom();
66
82
  const {setStore} = useContext(StorageContext);
67
83
  const {setGlobalErrorMessage} = useContext(ErrorContext);
68
84
  const history = useHistory();
@@ -72,41 +88,66 @@ const Create = () => {
72
88
  const [pstnToggle, setPstnToggle] = useState(false);
73
89
  const [coHostToggle, setCoHostToggle] = useState(false);
74
90
  const [roomCreated, setRoomCreated] = useState(false);
75
- const createRoomFun = useCreateMeeting();
76
- const {setMeetingInfo} = useSetMeetingInfo();
77
- //commented for v1 release
78
- // const createdText = useString('meetingCreatedNotificationLabel')();
79
- // const hostControlsToggle = useString<boolean>('hostControlsToggle');
80
- // const pstnToggle = useString<boolean>('pstnToggle');
81
- // const loadingWithDots = useString('loadingWithDots')();
82
- // const createMeetingButton = useString('createMeetingButton')();
83
- // const haveMeetingID = useString('haveMeetingID')();
91
+ const createRoomFun = useCreateRoom();
92
+ const {setRoomInfo} = useSetRoomInfo();
84
93
 
85
- const createdText = ' has been created';
86
- // const meetingNameInputPlaceholder = useString(
87
- // 'meetingNameInputPlaceholder',
88
- // )();
89
- const meetingNameInputPlaceholder = 'The Annual Galactic Meet';
90
- const loadingWithDots = 'Loading...';
94
+ const loadingText = useString('loadingText')();
91
95
 
92
- const btnLabel = () => {
93
- if ($config.AUDIO_ROOM) {
94
- if ($config.EVENT_MODE) {
95
- return 'CREATE A AUDIO LIVECAST';
96
- } else {
97
- return 'CREATE A VOICE CHAT';
98
- }
99
- } else {
100
- if ($config.EVENT_MODE) {
101
- return 'CREATE A STREAM';
102
- } else {
103
- return 'CREATE A MEETING';
104
- }
105
- }
106
- };
96
+ //heading
97
+ const headingText = useString<any>(createRoomHeading)({
98
+ audioRoom: $config.AUDIO_ROOM,
99
+ eventMode: $config.EVENT_MODE,
100
+ });
101
+ //heading
102
+
103
+ //input label
104
+ const inputLabel = useString<any>(createRoomInputLabel)({
105
+ audioRoom: $config.AUDIO_ROOM,
106
+ eventMode: $config.EVENT_MODE,
107
+ });
108
+ //input label
109
+
110
+ //placeholder
111
+ const placeHolderText = useString(createRoomInputPlaceholderText)();
112
+ //placeholder
107
113
 
108
- const createMeetingButton = btnLabel();
109
- const haveMeetingID = 'Join with a meeting ID';
114
+ //toggle
115
+ const everyoneCoHost = useString(createRoomMakeEveryOneCoHost)();
116
+ const everyoneCoHostTooltip = useString(
117
+ createRoomMakeEveryOneCoHostTooltipText,
118
+ )();
119
+ const allowPhoneNumberJoining = useString(
120
+ createRoomAllowPhoneNumberJoining,
121
+ )();
122
+ const allowPhoneNumberJoiningToolTip = useString(
123
+ createRoomAllowPhoneNumberJoiningTooltipText,
124
+ )();
125
+ //toggle
126
+
127
+ //create button
128
+ const createBtnText = useString<any>(createRoomBtnText)({
129
+ audioRoom: $config.AUDIO_ROOM,
130
+ eventMode: $config.EVENT_MODE,
131
+ });
132
+ //create button
133
+
134
+ const joinWithRoomID = useString(createRoomJoinWithID)();
135
+
136
+ //toast
137
+ const createRoomSuccessToastHeadingText = useString(
138
+ createRoomSuccessToastHeading,
139
+ );
140
+ const createRoomSuccessToastSubHeadingText = useString(
141
+ createRoomSuccessToastSubHeading,
142
+ )();
143
+ //toast
144
+
145
+ const createRoomErrorToastHeadingText = useString(
146
+ createRoomErrorToastHeading,
147
+ )();
148
+ const createRoomErrorToastSubHeadingText = useString(
149
+ createRoomErrorToastSubHeading,
150
+ )();
110
151
 
111
152
  const isDesktop = !isMobileUA();
112
153
  useEffect(() => {
@@ -117,27 +158,11 @@ const Create = () => {
117
158
  // )}-${randomNameGenerator(3)}`,
118
159
  // );
119
160
 
120
- if (isWebInternal()) {
161
+ if (isWebInternal() && !isSDK) {
121
162
  document.title = $config.APP_NAME;
122
163
  }
123
164
  console.log('[SDKEvents] Join listener registered');
124
- const unbind = SDKEvents.on(
125
- 'joinMeetingWithPhrase',
126
- (phrase, resolve, reject) => {
127
- console.log('SDKEvents: joinMeetingWithPhrase event called', phrase);
128
- try {
129
- setMeetingInfo(MeetingInfoDefaultValue);
130
- history.push(phrase);
131
- resolve();
132
- } catch (error) {
133
- reject(error);
134
- }
135
- },
136
- );
137
- SDKEvents.emit('joinInit');
138
- return () => {
139
- unbind();
140
- };
165
+ return () => {};
141
166
  }, []);
142
167
 
143
168
  const showShareScreen = () => {
@@ -152,21 +177,35 @@ const Create = () => {
152
177
  if (roomTitle !== '') {
153
178
  setLoading(true);
154
179
  try {
155
- setMeetingInfo(MeetingInfoDefaultValue);
180
+ setRoomInfo(RoomInfoDefaultValue);
181
+ //@ts-ignore
182
+ //isSeparateHostLink will be for internal usage since backend integration is not there
156
183
  await createRoomFun(roomTitle, enablePSTN, isSeparateHostLink);
157
184
  setLoading(false);
158
185
  Toast.show({
186
+ leadingIconName: 'tick-fill',
159
187
  type: 'success',
160
- text1: trimText(roomTitle) + createdText,
161
- text2: 'Your New meeting is now live',
188
+ text1: createRoomSuccessToastHeadingText(trimText(roomTitle)),
189
+ text2: createRoomSuccessToastSubHeadingText,
162
190
  visibilityTime: 3000,
163
191
  primaryBtn: null,
164
192
  secondaryBtn: null,
193
+ leadingIcon: null,
165
194
  });
166
195
  showShareScreen();
167
196
  } catch (error) {
168
197
  setLoading(false);
169
- setGlobalErrorMessage(error);
198
+ if (
199
+ createRoomErrorToastHeadingText ||
200
+ createRoomErrorToastSubHeadingText
201
+ ) {
202
+ setGlobalErrorMessage({
203
+ name: createRoomErrorToastHeadingText,
204
+ message: createRoomErrorToastSubHeadingText,
205
+ });
206
+ } else {
207
+ setGlobalErrorMessage(error);
208
+ }
170
209
  }
171
210
  }
172
211
  };
@@ -188,46 +227,16 @@ const Create = () => {
188
227
  );
189
228
  };
190
229
 
191
- const getHeading = () => {
192
- if ($config.AUDIO_ROOM) {
193
- if ($config.EVENT_MODE) {
194
- return 'Create a Audio Livecast';
195
- } else {
196
- return 'Create a Voice Chat';
197
- }
198
- } else {
199
- if ($config.EVENT_MODE) {
200
- return 'Create a Livestream';
201
- } else {
202
- return 'Create a Meeting';
203
- }
204
- }
205
- };
206
-
207
- const getInputLabel = () => {
208
- if ($config.AUDIO_ROOM) {
209
- if ($config.EVENT_MODE) {
210
- return 'Audio Livecast Name';
211
- } else {
212
- return 'Voice Chat Name';
213
- }
214
- } else {
215
- if ($config.EVENT_MODE) {
216
- return 'Stream Name';
217
- } else {
218
- return 'Meeting Name';
219
- }
220
- }
221
- };
222
-
223
230
  const showError = () => {
224
231
  Toast.show({
232
+ leadingIconName: 'alert',
225
233
  type: 'error',
226
234
  text1: 'Backend endpoint not configured',
227
235
  text2: 'Please configure backend endpoint config.json',
228
236
  visibilityTime: 1000 * 10,
229
237
  primaryBtn: null,
230
238
  secondaryBtn: null,
239
+ leadingIcon: null,
231
240
  });
232
241
  };
233
242
 
@@ -241,20 +250,34 @@ const Create = () => {
241
250
  <CreateComponent />
242
251
  ) : (
243
252
  <View style={style.root}>
253
+ {!isMobileUA() ? (
254
+ <IDPLogoutComponent containerStyle={{marginBottom: -100}} />
255
+ ) : (
256
+ <></>
257
+ )}
244
258
  <ScrollView contentContainerStyle={style.main}>
245
259
  <Card>
246
260
  <View>
247
- <Logo />
261
+ <View style={style.logoContainerStyle}>
262
+ <Logo />
263
+ {isMobileUA() ? (
264
+ <IDPLogoutComponent
265
+ containerStyle={{marginTop: 0, marginRight: 0}}
266
+ />
267
+ ) : (
268
+ <></>
269
+ )}
270
+ </View>
248
271
  <Spacer size={isDesktop ? 20 : 16} />
249
- <Text style={style.heading}>{getHeading()}</Text>
272
+ <Text style={style.heading}>{headingText}</Text>
250
273
  <Spacer size={40} />
251
274
  <Input
252
275
  maxLength={maxInputLimit}
253
276
  labelStyle={style.inputLabelStyle}
254
- label={getInputLabel()}
277
+ label={inputLabel}
255
278
  value={roomTitle}
256
- placeholder={meetingNameInputPlaceholder}
257
- onChangeText={(text) => onChangeRoomTitle(text)}
279
+ placeholder={placeHolderText}
280
+ onChangeText={text => onChangeRoomTitle(text)}
258
281
  onSubmitEditing={() => {
259
282
  if (!roomTitle?.trim()) {
260
283
  return;
@@ -285,18 +308,19 @@ const Create = () => {
285
308
  ]}>
286
309
  <View style={style.infoContainer}>
287
310
  <Text numberOfLines={1} style={style.toggleLabel}>
288
- Make everyone a Co-Host
311
+ {everyoneCoHost}
289
312
  </Text>
290
313
  <Tooltip
291
314
  activeBgStyle={style.tooltipActiveBgStyle}
292
315
  defaultBgStyle={style.tooltipDefaultBgStyle}
293
- toolTipMessage="Turning on will give everyone the control of this meeting"
316
+ toolTipMessage={everyoneCoHostTooltip}
294
317
  renderContent={(
295
318
  isToolTipVisible,
296
319
  setToolTipVisible,
297
320
  ) =>
298
321
  renderInfoIcon(isToolTipVisible, setToolTipVisible)
299
- }></Tooltip>
322
+ }
323
+ />
300
324
  </View>
301
325
  <View style={style.infoToggleContainer}>
302
326
  <Toggle
@@ -318,12 +342,12 @@ const Create = () => {
318
342
  ]}>
319
343
  <View style={style.infoContainer}>
320
344
  <Text numberOfLines={1} style={style.toggleLabel}>
321
- Allow joining via a phone number
345
+ {allowPhoneNumberJoining}
322
346
  </Text>
323
347
  <Tooltip
324
348
  activeBgStyle={style.tooltipActiveBgStyle}
325
349
  defaultBgStyle={style.tooltipDefaultBgStyle}
326
- toolTipMessage="Attendees can dial a number and join via PSTN"
350
+ toolTipMessage={allowPhoneNumberJoiningToolTip}
327
351
  renderContent={(
328
352
  isToolTipVisible,
329
353
  setToolTipVisible,
@@ -332,7 +356,8 @@ const Create = () => {
332
356
  isToolTipVisible,
333
357
  setToolTipVisible,
334
358
  )
335
- }></Tooltip>
359
+ }
360
+ />
336
361
  </View>
337
362
  <View style={style.infoToggleContainer}>
338
363
  <Toggle
@@ -365,11 +390,11 @@ const Create = () => {
365
390
  );
366
391
  }
367
392
  }}
368
- text={loading ? loadingWithDots : createMeetingButton}
393
+ text={loading ? loadingText : createBtnText}
369
394
  />
370
395
  <Spacer size={16} />
371
396
  <LinkButton
372
- text={haveMeetingID}
397
+ text={joinWithRoomID}
373
398
  onPress={() => history.push('/join')}
374
399
  />
375
400
  </View>
@@ -386,6 +411,11 @@ const Create = () => {
386
411
  };
387
412
 
388
413
  const style = StyleSheet.create({
414
+ logoContainerStyle: {
415
+ flexDirection: 'row',
416
+ justifyContent: 'space-between',
417
+ alignItems: 'center',
418
+ },
389
419
  root: {
390
420
  flex: 1,
391
421
  },
@@ -20,9 +20,9 @@ const StopForegroundService = () => {
20
20
  };
21
21
 
22
22
  const Endcall = () => {
23
- const leftMeetingLabel = 'You have left the meeting.';
23
+ const leftMeetingLabel = 'You have left the room.';
24
24
  const rejoinBtnLabel = 'REJOIN';
25
- const createMeetingLabel = 'START NEW MEETING';
25
+ const createMeetingLabel = 'START NEW ROOM';
26
26
  const returnToHomeLabel = 'Returning to the home screen';
27
27
  const {store} = useContext(StorageContext);
28
28
  const history = useHistory();
@@ -29,40 +29,69 @@ import TextInput from '../atoms/TextInput';
29
29
  import Error from '../subComponents/Error';
30
30
  import {useString} from '../utils/useString';
31
31
  import {useCustomization} from 'customization-implementation';
32
- import {useSetMeetingInfo} from '../components/meeting-info/useSetMeetingInfo';
33
- import {MeetingInfoDefaultValue} from '../components/meeting-info/useMeetingInfo';
32
+ import {useSetRoomInfo} from '../components/room-info/useSetRoomInfo';
33
+ import {RoomInfoDefaultValue} from '../components/room-info/useRoomInfo';
34
34
  import Card from '../atoms/Card';
35
35
  import Input from '../atoms/Input';
36
36
  import LinkButton from '../atoms/LinkButton';
37
37
  import Toast from '../../react-native-toast-message';
38
- import useJoinMeeting from '../utils/useJoinMeeting';
38
+ import useJoinRoom from '../utils/useJoinRoom';
39
39
  import isMobileOrTablet from '../utils/isMobileOrTablet';
40
40
  import ThemeConfig from '../theme';
41
+ import IDPLogoutComponent from '../auth/IDPLogoutComponent';
42
+ import {
43
+ joinRoomBtnText,
44
+ joinRoomCreateBtnText,
45
+ joinRoomErrorToastHeading,
46
+ joinRoomErrorToastSubHeading,
47
+ joinRoomHeading,
48
+ joinRoomInputLabel,
49
+ joinRoomInputPlaceHolderText,
50
+ } from '../language/default-labels/joinScreenLabels';
41
51
 
42
- const isLiveStream = $config.EVENT_MODE;
43
52
  const mobileOrTablet = isMobileOrTablet();
44
53
 
45
54
  const Join = () => {
46
55
  const hasBrandLogo = useHasBrandLogo();
47
- //commented for v1 release
48
- // const meetingIdInputPlaceholder = useString('meetingIdInputPlaceholder')();
49
- // const enterMeetingButton = useString('enterMeetingButton')();
50
- // const createMeetingButton = useString('createMeetingButton')();
51
- const meetingIdInputPlaceholder = isLiveStream
52
- ? 'Enter Stream ID'
53
- : 'Enter Meeting ID';
54
- const enterMeetingButton = isLiveStream ? 'Join Stream' : 'Join Meeting';
55
- const createMeetingButton = isLiveStream
56
- ? 'Create a Stream'
57
- : 'Create a meeting';
56
+
57
+ const headingText = useString<any>(joinRoomHeading)({
58
+ eventMode: $config.EVENT_MODE,
59
+ });
60
+
61
+ const inputLabel = useString<any>(joinRoomInputLabel)({
62
+ eventMode: $config.EVENT_MODE,
63
+ });
64
+
65
+ const placeHolderText = useString<any>(joinRoomInputPlaceHolderText)({
66
+ eventMode: $config.EVENT_MODE,
67
+ });
68
+
69
+ const joinBtnText = useString<any>(joinRoomBtnText)({
70
+ eventMode: $config.EVENT_MODE,
71
+ });
72
+
73
+ const createBtnText = useString<any>(joinRoomCreateBtnText)({
74
+ eventMode: $config.EVENT_MODE,
75
+ });
76
+
77
+ //toast
78
+ const invalidRoomIdToastHeading = useString<any>(joinRoomErrorToastHeading)({
79
+ eventMode: $config.EVENT_MODE,
80
+ });
81
+ const invalidRoomIdToastSubheading = useString<any>(
82
+ joinRoomErrorToastSubHeading,
83
+ )({
84
+ eventMode: $config.EVENT_MODE,
85
+ });
86
+
58
87
  const history = useHistory();
59
88
  const [phrase, setPhrase] = useState('');
60
89
  const [error, setError] = useState<null | {name: string; message: string}>(
61
90
  null,
62
91
  );
63
92
 
64
- const useJoin = useJoinMeeting();
65
- const {setMeetingInfo} = useSetMeetingInfo();
93
+ const useJoin = useJoinRoom();
94
+ const {setRoomInfo} = useSetRoomInfo();
66
95
  const createMeeting = () => {
67
96
  history.push('/create');
68
97
  };
@@ -70,26 +99,30 @@ const Join = () => {
70
99
  const startCall = async () => {
71
100
  useJoin(phrase)
72
101
  .then(() => {
73
- setMeetingInfo(MeetingInfoDefaultValue);
102
+ setRoomInfo(RoomInfoDefaultValue);
74
103
  history.push(phrase);
75
104
  })
76
105
 
77
- .catch((error) => {
106
+ .catch(error => {
78
107
  const isInvalidUrl =
79
- error?.message.toLowerCase().trim() === 'invalid url' || false;
108
+ error?.message.toLowerCase().trim() === 'invalid passphrase' || false;
80
109
  Toast.show({
110
+ leadingIconName: 'alert',
81
111
  type: 'error',
82
- text1: isInvalidUrl ? 'Meeting ID Invalid.' : 'Some Error Occured.',
112
+ text1: isInvalidUrl
113
+ ? invalidRoomIdToastHeading
114
+ : 'Some Error Occured.',
83
115
  text2: isInvalidUrl
84
- ? 'Please enter a valid Meeting ID'
116
+ ? invalidRoomIdToastSubheading
85
117
  : 'Please try again',
86
118
  visibilityTime: 3000,
87
119
  primaryBtn: null,
88
120
  secondaryBtn: null,
121
+ leadingIcon: null,
89
122
  });
90
123
  });
91
124
  };
92
- const {JoinComponent} = useCustomization((data) => {
125
+ const {JoinComponent} = useCustomization(data => {
93
126
  let components: {
94
127
  JoinComponent?: React.ComponentType;
95
128
  } = {};
@@ -108,28 +141,35 @@ const Join = () => {
108
141
  <JoinComponent />
109
142
  ) : (
110
143
  <View style={style.root}>
144
+ {!isMobileUA() ? (
145
+ <IDPLogoutComponent containerStyle={{marginBottom: -100}} />
146
+ ) : (
147
+ <></>
148
+ )}
111
149
  <ScrollView contentContainerStyle={style.main}>
112
150
  {error ? <Error error={error} /> : <></>}
113
151
  <Card>
114
152
  <View>
115
- <Logo />
153
+ <View style={style.logoContainerStyle}>
154
+ <Logo />
155
+ {isMobileUA() ? (
156
+ <IDPLogoutComponent
157
+ containerStyle={{marginTop: 0, marginRight: 0}}
158
+ />
159
+ ) : (
160
+ <></>
161
+ )}
162
+ </View>
116
163
  <Spacer size={20} />
117
- <Text style={style.heading}>
118
- {isLiveStream ? 'Join a Stream' : 'Join a Meeting'}
119
- </Text>
164
+ <Text style={style.heading}>{headingText}</Text>
120
165
  <Spacer size={40} />
121
166
  <Input
122
167
  labelStyle={style.labelStyle}
123
- label={isLiveStream ? 'Stream ID' : 'Meeting ID'}
168
+ label={inputLabel}
124
169
  autoFocus
125
170
  value={phrase}
126
- helpText={
127
- isLiveStream
128
- ? 'Enter the stream ID here for the meeting you’d like to join'
129
- : 'Enter the meeting ID here for the meeting you’d like to join'
130
- }
131
- placeholder={meetingIdInputPlaceholder}
132
- onChangeText={(text) => setPhrase(text)}
171
+ placeholder={placeHolderText}
172
+ onChangeText={text => setPhrase(text)}
133
173
  onSubmitEditing={() => startCall()}
134
174
  />
135
175
  <Spacer size={60} />
@@ -139,14 +179,11 @@ const Join = () => {
139
179
  iconName="video-on"
140
180
  disabled={phrase === ''}
141
181
  onPress={() => startCall()}
142
- text={enterMeetingButton}
182
+ text={joinBtnText}
143
183
  containerStyle={isMobileUA() && {width: '100%'}}
144
184
  />
145
185
  <Spacer size={16} />
146
- <LinkButton
147
- text={createMeetingButton}
148
- onPress={() => createMeeting()}
149
- />
186
+ <LinkButton text={createBtnText} onPress={() => createMeeting()} />
150
187
  {shouldAuthenticate ? (
151
188
  <LogoutButton
152
189
  //@ts-ignore
@@ -163,6 +200,11 @@ const Join = () => {
163
200
  };
164
201
 
165
202
  const style = StyleSheet.create({
203
+ logoContainerStyle: {
204
+ flexDirection: 'row',
205
+ justifyContent: 'space-between',
206
+ alignItems: 'center',
207
+ },
166
208
  btnContainer: {
167
209
  width: '100%',
168
210
  alignItems: 'center',
@@ -0,0 +1,26 @@
1
+ import React, {useState} from 'react';
2
+ import {StyleSheet, View} from 'react-native';
3
+ import {Logo} from '../components/common';
4
+ import PrimaryButton from '../atoms/PrimaryButton';
5
+ import {useAuth} from '../auth/AuthProvider';
6
+ import Spacer from '../atoms/Spacer';
7
+
8
+ export default function Login() {
9
+ const {authLogin} = useAuth();
10
+
11
+ return (
12
+ <View style={styles.container}>
13
+ <Logo />
14
+ <Spacer size={20} />
15
+ <PrimaryButton onPress={authLogin} text={'LOGIN/SIGNUP'} />
16
+ </View>
17
+ );
18
+ }
19
+
20
+ const styles = StyleSheet.create({
21
+ container: {
22
+ flex: 1,
23
+ alignItems: 'center',
24
+ justifyContent: 'center',
25
+ },
26
+ });