agora-appbuilder-core 4.0.0 → 4.0.2

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 +90 -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 +28 -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
@@ -26,7 +26,7 @@ import {SHARE_LINK_CONTENT_TYPE, useShareLink} from './useShareLink';
26
26
  import {useString} from '../utils/useString';
27
27
  import isSDKCheck from '../utils/isSDK';
28
28
  import Logo from '../components/common/Logo';
29
- import {useMeetingInfo} from './meeting-info/useMeetingInfo';
29
+ import {useRoomInfo} from './room-info/useRoomInfo';
30
30
  import {useHistory} from '../components/Router';
31
31
  import {useCustomization} from 'customization-implementation';
32
32
  import {isMobileUA, isValidReactComponent, trimText} from '../utils/common';
@@ -36,8 +36,21 @@ import LinkButton from '../atoms/LinkButton';
36
36
  import ImageIcon from '../atoms/ImageIcon';
37
37
  import ThemeConfig from '../theme';
38
38
  import Tooltip from '../atoms/Tooltip';
39
-
40
- const isLiveStream = $config.EVENT_MODE;
39
+ import IDPLogoutComponent from '../auth/IDPLogoutComponent';
40
+ import Clipboard from '../subComponents/Clipboard';
41
+ import {
42
+ shareRoomAttendeeLinkLabel,
43
+ shareRoomAttendeeLinkSubText,
44
+ shareRoomCopyBtnText,
45
+ shareRoomCopyBtnTooltipText,
46
+ shareRoomHostLinkLabel,
47
+ shareRoomHostLinkSubText,
48
+ shareRoomPSTNLabel,
49
+ shareRoomPSTNNumberLabel,
50
+ shareRoomPSTNPinLabel,
51
+ shareRoomPSTNSubText,
52
+ shareRoomStartBtnText,
53
+ } from '../language/default-labels/shareLinkScreenLabels';
41
54
 
42
55
  export interface CopyMeetingInfoProps {
43
56
  showSubLabel?: boolean;
@@ -45,62 +58,34 @@ export interface CopyMeetingInfoProps {
45
58
  export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
46
59
  const {copyShareLinkToClipboard, getShareLink} = useShareLink();
47
60
  const {
48
- data: {roomId, isHost, pstn, isSeparateHostLink, meetingTitle},
49
- } = useMeetingInfo();
61
+ data: {roomId, isHost, pstn, isSeparateHostLink},
62
+ } = useRoomInfo();
50
63
  const {showSubLabel = true} = props;
51
- //commented for v1 release
52
- // const meetingUrlText = useString('meetingUrlLabel')();
53
- // const meetingIdText = useString('meetingIdLabel')();
54
- // const hostIdText = useString('hostIdLabel')();
55
- // const attendeeUrlLabel = useString('attendeeUrlLabel')();
56
- // const attendeeIdLabel = useString('attendeeIdLabel')();
57
- // const hostUrlLabel = useString('hostUrlLabel')();
58
- // const pstnLabel = useString('pstnLabel')();
59
- // const pstnNumberLabel = useString('pstnNumberLabel')();
60
- // const pinLabel = useString('pin')();
61
- // const enterMeetingAfterCreateButton = useString(
62
- // 'enterMeetingAfterCreateButton',
63
- // )();
64
- // const copyInviteButton = useString('copyInviteButton')();
65
- const meetingUrlText = 'Meeting Link';
66
- const meetingIdText = 'Meeting ID';
67
- const hostIdText = 'Host ID';
68
- const attendeeUrlLabel = 'Attendee Link';
69
- const attendeeIdLabel = 'Attendee ID';
70
- const hostUrlLabel = 'Host Link';
71
- const pstnLabel = 'PSTN';
72
- const pstnNumberLabel = 'Number';
73
- const pinLabel = 'Pin';
74
- const enterMeetingAfterCreateButton = isLiveStream
75
- ? 'Start Stream (as host)'
76
- : 'Start Meeting (as host)';
77
- const copyInviteButton = 'Copy invite to clipboard';
78
- const history = useHistory();
79
- const enterMeeting = () => {
80
- if (roomId?.host) {
81
- history.push(roomId.host);
82
- }
83
- };
64
+
84
65
  const isSDK = isSDKCheck();
85
66
  const isWebCheck =
86
67
  $config.FRONTEND_ENDPOINT || (platform === 'web' && !isSDK);
87
68
 
88
- const getAttendeeLabel = () =>
89
- isWebCheck ? attendeeUrlLabel : attendeeIdLabel;
69
+ const shareRoomHostLink = useString<any>(shareRoomHostLinkLabel)(isWebCheck);
70
+ const shareRoomHostLinkSubTextLocal = useString<any>(
71
+ shareRoomHostLinkSubText,
72
+ )();
73
+ const shareRoomAttendeeLink = useString<any>(shareRoomAttendeeLinkLabel)(
74
+ isWebCheck,
75
+ );
76
+ const shareRoomAttendeeLinkSubTextLocal = useString<any>(
77
+ shareRoomAttendeeLinkSubText,
78
+ )();
79
+ const shareRoomPSTN = useString<any>(shareRoomPSTNLabel)();
80
+ const shareRoomPSTNNumber = useString<any>(shareRoomPSTNNumberLabel)();
81
+ const shareRoomPSTNPin = useString<any>(shareRoomPSTNPinLabel)();
82
+ const shareRoomPSTNSubTextLocal = useString<any>(shareRoomPSTNSubText)();
90
83
 
91
- const getHostLabel = () => {
92
- if (isSeparateHostLink) {
93
- if (isWebCheck) {
94
- return hostUrlLabel;
95
- }
96
- return hostIdText;
97
- } else {
98
- if (isWebCheck) {
99
- return meetingUrlText;
100
- }
101
- return meetingIdText;
102
- }
103
- };
84
+ const copiedToClipboard = useString(shareRoomCopyBtnTooltipText)();
85
+
86
+ const getAttendeeLabel = () => shareRoomAttendeeLink;
87
+
88
+ const getHostLabel = () => shareRoomHostLink;
104
89
 
105
90
  const clipboardIconButton = (type: SHARE_LINK_CONTENT_TYPE) => {
106
91
  return (
@@ -120,7 +105,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
120
105
  <Spacer size={8} horizontal={true} />
121
106
  </>
122
107
  }
123
- toolTipMessage="Copied to clipboard"
108
+ toolTipMessage={copiedToClipboard}
124
109
  renderContent={(isToolTipVisible, setToolTipVisible) => {
125
110
  return (
126
111
  <TouchableOpacity
@@ -169,7 +154,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
169
154
  <>
170
155
  <Spacer size={14} />
171
156
  <Text style={style.helpText}>
172
- Share this with attendees you want to invite.
157
+ {shareRoomAttendeeLinkSubTextLocal}
173
158
  </Text>
174
159
  </>
175
160
  )}
@@ -203,7 +188,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
203
188
  <>
204
189
  <Spacer size={14} />
205
190
  <Text style={style.helpText}>
206
- Share this with other co-hosts you want to invite.
191
+ {shareRoomHostLinkSubTextLocal}
207
192
  </Text>
208
193
  </>
209
194
  )}
@@ -212,9 +197,9 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
212
197
  ) : (
213
198
  <></>
214
199
  )}
215
- {pstn ? (
200
+ {$config.PSTN && pstn && pstn?.number && pstn?.pin ? (
216
201
  <>
217
- <Text style={style.urlTitle}>{pstnLabel}</Text>
202
+ <Text style={style.urlTitle}>{shareRoomPSTN}</Text>
218
203
  <Spacer size={11} />
219
204
  <View style={style.container}>
220
205
  <View style={[style.urlContainer, style.urlPadding]}>
@@ -225,8 +210,8 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
225
210
  //@ts-ignore
226
211
  isWebCheck ? urlWeb : {opacity: 1},
227
212
  ]}>
228
- {pstnNumberLabel} - {pstn?.number} {' | '} {pinLabel} -{' '}
229
- {pstn?.pin}
213
+ {shareRoomPSTNNumber} - {pstn?.number} {' | '}{' '}
214
+ {shareRoomPSTNPin} - {pstn?.pin}
230
215
  </Text>
231
216
  </View>
232
217
  </View>
@@ -236,9 +221,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
236
221
  {showSubLabel && (
237
222
  <>
238
223
  <Spacer size={14} />
239
- <Text style={style.helpText}>
240
- Share this phone number and pin to dial from phone.
241
- </Text>
224
+ <Text style={style.helpText}>{shareRoomPSTNSubTextLocal}</Text>
242
225
  </>
243
226
  )}
244
227
  {/* <Spacer size={25} /> */}
@@ -250,8 +233,86 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
250
233
  );
251
234
  };
252
235
 
236
+ const ClipboardIconButtonURL = ({url}) => {
237
+ const copiedToClipboard = useString(shareRoomCopyBtnTooltipText)();
238
+ return (
239
+ <View style={style.iconContainer}>
240
+ <Tooltip
241
+ isClickable
242
+ onPress={() => {
243
+ Clipboard.setString(url);
244
+ }}
245
+ toolTipIcon={
246
+ <>
247
+ <ImageIcon
248
+ iconType="plain"
249
+ name="tick-fill"
250
+ tintColor={$config.SEMANTIC_SUCCESS}
251
+ />
252
+ <Spacer size={8} horizontal={true} />
253
+ </>
254
+ }
255
+ toolTipMessage={copiedToClipboard}
256
+ renderContent={(isToolTipVisible, setToolTipVisible) => {
257
+ return (
258
+ <TouchableOpacity
259
+ onPress={() => {
260
+ Clipboard.setString(url);
261
+ setToolTipVisible(true);
262
+ }}>
263
+ <ImageIcon
264
+ iconType="plain"
265
+ name="clipboard"
266
+ tintColor={$config.PRIMARY_ACTION_BRAND_COLOR}
267
+ />
268
+ </TouchableOpacity>
269
+ );
270
+ }}
271
+ />
272
+ </View>
273
+ );
274
+ };
275
+ export interface ShowInputURLProps {
276
+ label: string;
277
+ url: string;
278
+ }
279
+ export const ShowInputURL = (props: ShowInputURLProps) => {
280
+ const {label, url} = props;
281
+ if (!url) {
282
+ return null;
283
+ }
284
+ return (
285
+ <>
286
+ {label ? (
287
+ <>
288
+ <Text style={style.urlTitle}>{label}</Text>
289
+ <Spacer size={11} />
290
+ </>
291
+ ) : (
292
+ <></>
293
+ )}
294
+ <View style={style.container}>
295
+ <View style={style.urlContainer}>
296
+ <Text
297
+ numberOfLines={1}
298
+ ellipsizeMode="tail"
299
+ style={[
300
+ style.url,
301
+ style.urlPadding,
302
+ //@ts-ignore
303
+ urlWeb,
304
+ ]}>
305
+ {url}
306
+ </Text>
307
+ </View>
308
+ <ClipboardIconButtonURL url={url} />
309
+ </View>
310
+ </>
311
+ );
312
+ };
313
+
253
314
  const Share = () => {
254
- const {FpeShareComponent} = useCustomization((data) => {
315
+ const {FpeShareComponent} = useCustomization(data => {
255
316
  let components: {
256
317
  FpeShareComponent?: React.ElementType;
257
318
  } = {};
@@ -272,30 +333,47 @@ const Share = () => {
272
333
  const {copyShareLinkToClipboard} = useShareLink();
273
334
  const {
274
335
  data: {roomId, meetingTitle},
275
- } = useMeetingInfo();
336
+ } = useRoomInfo();
337
+
338
+ const shareRoomStartBtnTextLocal = useString<any>(shareRoomStartBtnText)({
339
+ eventMode: $config.EVENT_MODE,
340
+ });
276
341
 
277
- const enterMeetingAfterCreateButton = isLiveStream
278
- ? 'Start Stream (as host)'
279
- : 'Start Meeting (as host)';
280
- const copyInviteButton = 'Copy invite to clipboard';
342
+ const copyInviteButton = useString(shareRoomCopyBtnText)();
281
343
  const history = useHistory();
282
344
  const enterMeeting = () => {
283
345
  if (roomId?.host) {
284
346
  history.push(roomId.host);
285
347
  }
286
348
  };
287
- const isSDK = isSDKCheck();
288
- const isWebCheck =
289
- $config.FRONTEND_ENDPOINT || (platform === 'web' && !isSDK);
290
349
 
291
350
  return FpeShareComponent ? (
292
351
  <FpeShareComponent />
293
352
  ) : (
294
353
  <View style={style.root}>
354
+ {!isMobileUA() ? (
355
+ <IDPLogoutComponent containerStyle={{marginBottom: -100}} />
356
+ ) : (
357
+ <></>
358
+ )}
295
359
  <ScrollView contentContainerStyle={style.scrollMain}>
296
360
  <Card>
297
361
  <View>
298
- <Logo />
362
+ <View
363
+ style={{
364
+ flexDirection: 'row',
365
+ justifyContent: 'space-between',
366
+ alignItems: 'center',
367
+ }}>
368
+ <Logo />
369
+ {isMobileUA() ? (
370
+ <IDPLogoutComponent
371
+ containerStyle={{marginTop: 0, marginRight: 0}}
372
+ />
373
+ ) : (
374
+ <></>
375
+ )}
376
+ </View>
299
377
  <Spacer size={20} />
300
378
  <Text style={style.heading} numberOfLines={1}>
301
379
  {trimText(meetingTitle)}
@@ -309,7 +387,7 @@ const Share = () => {
309
387
  iconName="video-on"
310
388
  onPress={() => enterMeeting()}
311
389
  containerStyle={isMobileUA() && {width: '100%'}}
312
- text={enterMeetingAfterCreateButton.toUpperCase()}
390
+ text={shareRoomStartBtnTextLocal}
313
391
  />
314
392
  <Spacer size={16} />
315
393
  <LinkButton
@@ -10,8 +10,9 @@
10
10
  *********************************************
11
11
  */
12
12
  import React, {createContext, ReactChildren, useEffect, useState} from 'react';
13
- import AsyncStorage from '@react-native-async-storage/async-storage'; // '@react-native-community/async-storage';
13
+ import AsyncStorage from '@react-native-async-storage/async-storage';
14
14
  import useMount from './useMount';
15
+ import {ENABLE_AUTH} from '../auth/config';
15
16
 
16
17
  type rememberedDevicesListEntries = Record<
17
18
  string,
@@ -27,6 +28,7 @@ export interface StoreInterface {
27
28
  rememberedDevicesListEntries
28
29
  >;
29
30
  activeDeviceId: Record<MediaDeviceInfo['kind'], string>;
31
+ whiteboardNativeInfoToast?: boolean;
30
32
  }
31
33
 
32
34
  export interface StorageContextInterface {
@@ -35,6 +37,7 @@ export interface StorageContextInterface {
35
37
  }
36
38
 
37
39
  export const initStoreValue: StoreInterface = {
40
+ whiteboardNativeInfoToast: false,
38
41
  token: null,
39
42
  displayName: '',
40
43
  selectedLanguageCode: '',
@@ -77,14 +80,19 @@ export const StorageProvider = (props: {children: React.ReactNode}) => {
77
80
  setReady(true);
78
81
  } else {
79
82
  const storeFromStorage = JSON.parse(storeString);
80
- Object.keys(initStoreValue).forEach((key) => {
81
- if (!storeFromStorage[key])
83
+ Object.keys(initStoreValue).forEach(key => {
84
+ if (!storeFromStorage[key]) {
82
85
  storeFromStorage[key] = initStoreValue[key];
86
+ }
83
87
  });
88
+ // unauth flow delete token from the localstoage if any
89
+ if (!ENABLE_AUTH) {
90
+ storeFromStorage['token'] = null;
91
+ }
92
+ storeFromStorage['whiteboardNativeInfoToast'] = false;
84
93
  setStore(storeFromStorage);
85
94
  setReady(true);
86
95
  }
87
- console.log('store hydrated', storeString);
88
96
  setReady(true);
89
97
  } catch (e) {
90
98
  console.error('problem hydrating store', e);
@@ -97,14 +105,23 @@ export const StorageProvider = (props: {children: React.ReactNode}) => {
97
105
  useEffect(() => {
98
106
  const syncStore = async () => {
99
107
  try {
100
- await AsyncStorage.setItem('store', JSON.stringify(store));
101
- console.log('store synced with value', store);
108
+ /**
109
+ * if authentication is not enabled then store react state will have the token
110
+ * but it won't be saved in the localstorage
111
+ * Fix: if we duplicate browser tab and join the same meeting, we will create new session
112
+ */
113
+ let tempStore = JSON.parse(JSON.stringify(store));
114
+ if (!ENABLE_AUTH) {
115
+ tempStore['token'] = null;
116
+ }
117
+ await AsyncStorage.setItem('store', JSON.stringify(tempStore));
102
118
  } catch (e) {
103
119
  console.log('problem syncing the store', e);
104
120
  }
105
121
  };
106
122
  ready && syncStore();
107
123
  }, [store, ready]);
124
+
108
125
  return (
109
126
  <StorageContext.Provider value={{store, setStore}}>
110
127
  {ready ? props.children : <></>}
@@ -1,8 +1,17 @@
1
1
  import React from 'react';
2
2
  import Toast from '../../react-native-toast-message';
3
3
  import ToastConfig from '../subComponents/ToastConfig';
4
+ import {useIsRecordingBot} from '../subComponents/recording/useIsRecordingBot';
4
5
 
5
6
  const ToastComponent = () => {
6
- return <Toast ref={(ref) => Toast.setRef(ref)} config={ToastConfig} />;
7
+ const {isRecordingBot} = useIsRecordingBot();
8
+
9
+ // if ($config.TOAST_NOTIFICATIONS) {
10
+ // return <Toast ref={(ref) => Toast.setRef(ref)} config={ToastConfig} />;
11
+ // } else return <></>;
12
+ if (isRecordingBot) {
13
+ return <></>;
14
+ }
15
+ return <Toast ref={ref => Toast.setRef(ref)} config={ToastConfig} />;
7
16
  };
8
17
  export default ToastComponent;