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