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
@@ -16,6 +16,10 @@ import {SidePanelType} from '../subComponents/SidePanelEnum';
16
16
  import {useSidePanel} from '../utils/useSidePanel';
17
17
  import {useString} from '../utils/useString';
18
18
  import IconButton, {IconButtonProps} from '../atoms/IconButton';
19
+ import {useToolbarMenu} from '../utils/useMenu';
20
+ import ToolbarMenuItem from '../atoms/ToolbarMenuItem';
21
+ import {useActionSheet} from '../utils/useActionSheet';
22
+ import {toolbarItemSettingText} from '../language/default-labels/videoCallScreenLabels';
19
23
 
20
24
  export interface SettingsIconButtonProps {
21
25
  render?: (onPress: () => void, isPanelActive: boolean) => JSX.Element;
@@ -23,15 +27,17 @@ export interface SettingsIconButtonProps {
23
27
 
24
28
  const Settings = (props: SettingsIconButtonProps) => {
25
29
  const {sidePanel, setSidePanel} = useSidePanel();
30
+ const {isToolbarMenuItem} = useToolbarMenu();
26
31
  //commented for v1 release
27
- //const settingsLabel = useString('settingsLabel')();
28
- const settingsLabel = 'Settings';
32
+ const settingsLabel = useString(toolbarItemSettingText)();
33
+
29
34
  const isPanelActive = sidePanel === SidePanelType.Settings;
30
35
  const onPress = () => {
31
36
  isPanelActive
32
37
  ? setSidePanel(SidePanelType.None)
33
38
  : setSidePanel(SidePanelType.Settings);
34
39
  };
40
+ const {isOnActionSheet, showLabel} = useActionSheet();
35
41
  let iconButtonProps: IconButtonProps = {
36
42
  onPress: onPress,
37
43
 
@@ -45,17 +51,40 @@ const Settings = (props: SettingsIconButtonProps) => {
45
51
  : '',
46
52
  },
47
53
  btnTextProps: {
48
- text: $config.ICON_TEXT ? settingsLabel : '',
54
+ text: showLabel ? settingsLabel : '',
49
55
  textColor: $config.FONT_COLOR,
50
56
  },
51
57
  };
58
+ iconButtonProps.isOnActionSheet = isOnActionSheet;
59
+ if (isOnActionSheet) {
60
+ // iconButtonProps.containerStyle = {
61
+ // backgroundColor: $config.CARD_LAYER_2_COLOR,
62
+ // width: 52,
63
+ // height: 52,
64
+ // borderRadius: 26,
65
+ // justifyContent: 'center',
66
+ // alignItems: 'center',
67
+ // };
52
68
 
69
+ iconButtonProps.btnTextProps.textStyle = {
70
+ color: $config.FONT_COLOR,
71
+ marginTop: 8,
72
+ fontSize: 12,
73
+ fontWeight: '400',
74
+ fontFamily: 'Source Sans Pro',
75
+ textAlign: 'center',
76
+ };
77
+ }
53
78
  return props?.render ? (
54
79
  props.render(onPress, isPanelActive)
55
80
  ) : (
56
81
  <>
57
82
  <View>
58
- <IconButton {...iconButtonProps} />
83
+ {isToolbarMenuItem ? (
84
+ <ToolbarMenuItem {...iconButtonProps} />
85
+ ) : (
86
+ <IconButton {...iconButtonProps} />
87
+ )}
59
88
  </View>
60
89
  </>
61
90
  );
@@ -9,7 +9,7 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import React, {useEffect, useRef, useState} from 'react';
12
+ import React, {useContext, useEffect, useRef, useState} from 'react';
13
13
  import {
14
14
  View,
15
15
  Text,
@@ -44,9 +44,25 @@ import {getGridLayoutName} from '../pages/video-call/DefaultLayouts';
44
44
  import {useFocus} from '../utils/useFocus';
45
45
  import {SettingsHeader} from '../pages/video-call/SidePanelHeader';
46
46
  import {useUserPreference} from './useUserPreference';
47
+ import useCaptionWidth from '../../src/subComponents/caption/useCaptionWidth';
48
+ import {whiteboardContext} from './whiteboard/WhiteboardConfigure';
49
+ import InlineNotification from '../../src/atoms/InlineNotification';
50
+ import {useRoomInfo} from './room-info/useRoomInfo';
51
+ import {useString} from '../../src/utils/useString';
52
+ import {
53
+ settingPanelNameCantbeChangedInfo,
54
+ settingPanelNameInputLabel,
55
+ } from '../../src/language/default-labels/videoCallScreenLabels';
56
+
47
57
  interface EditNameProps {}
48
58
  const EditName: React.FC = (props?: EditNameProps) => {
59
+ const yournameLabel = useString(settingPanelNameInputLabel)();
60
+ const nameCantbeChangedInfo = useString(settingPanelNameCantbeChangedInfo)();
61
+ const {
62
+ data: {isHost},
63
+ } = useRoomInfo();
49
64
  const {saveName} = useUserPreference();
65
+ const {whiteboardActive} = useContext(whiteboardContext);
50
66
  const [saved, setSaved] = useState(false);
51
67
  const username = useGetName();
52
68
  const [newName, setNewName] = useState(username);
@@ -98,7 +114,7 @@ const EditName: React.FC = (props?: EditNameProps) => {
98
114
  setEditable(true);
99
115
  setTimeout(() => {
100
116
  inputRef.current.focus();
101
- setFocus((prevState) => {
117
+ setFocus(prevState => {
102
118
  return {
103
119
  ...prevState,
104
120
  editName: false,
@@ -110,8 +126,23 @@ const EditName: React.FC = (props?: EditNameProps) => {
110
126
 
111
127
  return (
112
128
  <>
113
- <Text style={editNameStyle.yournameText}>Your name</Text>
129
+ <Text style={editNameStyle.yournameText}>{yournameLabel}</Text>
114
130
  <Spacer size={12} />
131
+ {whiteboardActive && isHost ? (
132
+ <>
133
+ <InlineNotification
134
+ text={nameCantbeChangedInfo}
135
+ customStyle={{
136
+ alignItems: 'center',
137
+ backgroundColor: 'rgba(255, 171, 0, 0.15)',
138
+ }}
139
+ warning={true}
140
+ />
141
+ <Spacer size={12} />
142
+ </>
143
+ ) : (
144
+ <></>
145
+ )}
115
146
  <View style={editNameStyle.container}>
116
147
  <View style={editNameStyle.nameContainer}>
117
148
  <ImageIcon
@@ -126,7 +157,8 @@ const EditName: React.FC = (props?: EditNameProps) => {
126
157
  style={[
127
158
  editNameStyle.inputStyle,
128
159
  //true -> previously editable variable
129
- !true
160
+ //!true
161
+ whiteboardActive && isHost
130
162
  ? {
131
163
  color:
132
164
  $config.FONT_COLOR + ThemeConfig.EmphasisPlus.disabled,
@@ -136,8 +168,8 @@ const EditName: React.FC = (props?: EditNameProps) => {
136
168
  onBlur={onPress}
137
169
  placeholder={username}
138
170
  value={newName}
139
- editable={true}
140
- onChangeText={(text) => setNewName(text)}
171
+ editable={whiteboardActive && isHost ? false : true}
172
+ onChangeText={text => setNewName(text)}
141
173
  onSubmitEditing={onPress}
142
174
  placeholderTextColor={
143
175
  $config.FONT_COLOR + ThemeConfig.EmphasisPlus.disabled
@@ -242,12 +274,11 @@ const editNameStyle = StyleSheet.create({
242
274
  color: $config.FONT_COLOR,
243
275
  },
244
276
  });
245
- const SettingsView = (props) => {
277
+ const SettingsView = props => {
246
278
  const {hideName = false, showHeader = true} = props;
247
279
  const isSmall = useIsSmall();
248
- const settingsLabel = 'Settings';
249
- const {setSidePanel} = useSidePanel();
250
280
  const {currentLayout} = useLayout();
281
+ const {transcriptHeight} = useCaptionWidth();
251
282
 
252
283
  return (
253
284
  <View
@@ -263,6 +294,8 @@ const SettingsView = (props) => {
263
294
  isWebInternal() && !isSmall() && currentLayout === getGridLayoutName()
264
295
  ? {marginVertical: 4}
265
296
  : {},
297
+ //@ts-ignore
298
+ transcriptHeight && !isMobileUA() && {height: transcriptHeight},
266
299
  ]}>
267
300
  {showHeader && <SettingsHeader {...props} />}
268
301
  <ScrollView style={style.contentContainer}>
@@ -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';
@@ -37,8 +37,20 @@ import ImageIcon from '../atoms/ImageIcon';
37
37
  import ThemeConfig from '../theme';
38
38
  import Tooltip from '../atoms/Tooltip';
39
39
  import IDPLogoutComponent from '../auth/IDPLogoutComponent';
40
-
41
- const isLiveStream = $config.EVENT_MODE;
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';
42
54
 
43
55
  export interface CopyMeetingInfoProps {
44
56
  showSubLabel?: boolean;
@@ -46,62 +58,34 @@ export interface CopyMeetingInfoProps {
46
58
  export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
47
59
  const {copyShareLinkToClipboard, getShareLink} = useShareLink();
48
60
  const {
49
- data: {roomId, isHost, pstn, isSeparateHostLink, meetingTitle},
50
- } = useMeetingInfo();
61
+ data: {roomId, isHost, pstn, isSeparateHostLink},
62
+ } = useRoomInfo();
51
63
  const {showSubLabel = true} = props;
52
- //commented for v1 release
53
- // const meetingUrlText = useString('meetingUrlLabel')();
54
- // const meetingIdText = useString('meetingIdLabel')();
55
- // const hostIdText = useString('hostIdLabel')();
56
- // const attendeeUrlLabel = useString('attendeeUrlLabel')();
57
- // const attendeeIdLabel = useString('attendeeIdLabel')();
58
- // const hostUrlLabel = useString('hostUrlLabel')();
59
- // const pstnLabel = useString('pstnLabel')();
60
- // const pstnNumberLabel = useString('pstnNumberLabel')();
61
- // const pinLabel = useString('pin')();
62
- // const enterMeetingAfterCreateButton = useString(
63
- // 'enterMeetingAfterCreateButton',
64
- // )();
65
- // const copyInviteButton = useString('copyInviteButton')();
66
- const meetingUrlText = 'Meeting Link';
67
- const meetingIdText = 'Meeting ID';
68
- const hostIdText = 'Host ID';
69
- const attendeeUrlLabel = 'Attendee Link';
70
- const attendeeIdLabel = 'Attendee ID';
71
- const hostUrlLabel = 'Host Link';
72
- const pstnLabel = 'PSTN';
73
- const pstnNumberLabel = 'Number';
74
- const pinLabel = 'Pin';
75
- const enterMeetingAfterCreateButton = isLiveStream
76
- ? 'Start Stream (as host)'
77
- : 'Start Meeting (as host)';
78
- const copyInviteButton = 'Copy invite to clipboard';
79
- const history = useHistory();
80
- const enterMeeting = () => {
81
- if (roomId?.host) {
82
- history.push(roomId.host);
83
- }
84
- };
64
+
85
65
  const isSDK = isSDKCheck();
86
66
  const isWebCheck =
87
67
  $config.FRONTEND_ENDPOINT || (platform === 'web' && !isSDK);
88
68
 
89
- const getAttendeeLabel = () =>
90
- 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)();
91
83
 
92
- const getHostLabel = () => {
93
- if (isSeparateHostLink) {
94
- if (isWebCheck) {
95
- return hostUrlLabel;
96
- }
97
- return hostIdText;
98
- } else {
99
- if (isWebCheck) {
100
- return meetingUrlText;
101
- }
102
- return meetingIdText;
103
- }
104
- };
84
+ const copiedToClipboard = useString(shareRoomCopyBtnTooltipText)();
85
+
86
+ const getAttendeeLabel = () => shareRoomAttendeeLink;
87
+
88
+ const getHostLabel = () => shareRoomHostLink;
105
89
 
106
90
  const clipboardIconButton = (type: SHARE_LINK_CONTENT_TYPE) => {
107
91
  return (
@@ -121,7 +105,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
121
105
  <Spacer size={8} horizontal={true} />
122
106
  </>
123
107
  }
124
- toolTipMessage="Copied to clipboard"
108
+ toolTipMessage={copiedToClipboard}
125
109
  renderContent={(isToolTipVisible, setToolTipVisible) => {
126
110
  return (
127
111
  <TouchableOpacity
@@ -170,7 +154,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
170
154
  <>
171
155
  <Spacer size={14} />
172
156
  <Text style={style.helpText}>
173
- Share this with attendees you want to invite.
157
+ {shareRoomAttendeeLinkSubTextLocal}
174
158
  </Text>
175
159
  </>
176
160
  )}
@@ -204,7 +188,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
204
188
  <>
205
189
  <Spacer size={14} />
206
190
  <Text style={style.helpText}>
207
- Share this with other co-hosts you want to invite.
191
+ {shareRoomHostLinkSubTextLocal}
208
192
  </Text>
209
193
  </>
210
194
  )}
@@ -215,7 +199,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
215
199
  )}
216
200
  {$config.PSTN && pstn && pstn?.number && pstn?.pin ? (
217
201
  <>
218
- <Text style={style.urlTitle}>{pstnLabel}</Text>
202
+ <Text style={style.urlTitle}>{shareRoomPSTN}</Text>
219
203
  <Spacer size={11} />
220
204
  <View style={style.container}>
221
205
  <View style={[style.urlContainer, style.urlPadding]}>
@@ -226,8 +210,8 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
226
210
  //@ts-ignore
227
211
  isWebCheck ? urlWeb : {opacity: 1},
228
212
  ]}>
229
- {pstnNumberLabel} - {pstn?.number} {' | '} {pinLabel} -{' '}
230
- {pstn?.pin}
213
+ {shareRoomPSTNNumber} - {pstn?.number} {' | '}{' '}
214
+ {shareRoomPSTNPin} - {pstn?.pin}
231
215
  </Text>
232
216
  </View>
233
217
  </View>
@@ -237,9 +221,7 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
237
221
  {showSubLabel && (
238
222
  <>
239
223
  <Spacer size={14} />
240
- <Text style={style.helpText}>
241
- Share this phone number and pin to dial from phone.
242
- </Text>
224
+ <Text style={style.helpText}>{shareRoomPSTNSubTextLocal}</Text>
243
225
  </>
244
226
  )}
245
227
  {/* <Spacer size={25} /> */}
@@ -251,8 +233,86 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
251
233
  );
252
234
  };
253
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
+
254
314
  const Share = () => {
255
- const {FpeShareComponent} = useCustomization((data) => {
315
+ const {FpeShareComponent} = useCustomization(data => {
256
316
  let components: {
257
317
  FpeShareComponent?: React.ElementType;
258
318
  } = {};
@@ -273,21 +333,19 @@ const Share = () => {
273
333
  const {copyShareLinkToClipboard} = useShareLink();
274
334
  const {
275
335
  data: {roomId, meetingTitle},
276
- } = useMeetingInfo();
336
+ } = useRoomInfo();
277
337
 
278
- const enterMeetingAfterCreateButton = isLiveStream
279
- ? 'Start Stream (as host)'
280
- : 'Start Meeting (as host)';
281
- const copyInviteButton = 'Copy invite to clipboard';
338
+ const shareRoomStartBtnTextLocal = useString<any>(shareRoomStartBtnText)({
339
+ eventMode: $config.EVENT_MODE,
340
+ });
341
+
342
+ const copyInviteButton = useString(shareRoomCopyBtnText)();
282
343
  const history = useHistory();
283
344
  const enterMeeting = () => {
284
345
  if (roomId?.host) {
285
346
  history.push(roomId.host);
286
347
  }
287
348
  };
288
- const isSDK = isSDKCheck();
289
- const isWebCheck =
290
- $config.FRONTEND_ENDPOINT || (platform === 'web' && !isSDK);
291
349
 
292
350
  return FpeShareComponent ? (
293
351
  <FpeShareComponent />
@@ -329,7 +387,7 @@ const Share = () => {
329
387
  iconName="video-on"
330
388
  onPress={() => enterMeeting()}
331
389
  containerStyle={isMobileUA() && {width: '100%'}}
332
- text={enterMeetingAfterCreateButton.toUpperCase()}
390
+ text={shareRoomStartBtnTextLocal}
333
391
  />
334
392
  <Spacer size={16} />
335
393
  <LinkButton
@@ -28,6 +28,7 @@ export interface StoreInterface {
28
28
  rememberedDevicesListEntries
29
29
  >;
30
30
  activeDeviceId: Record<MediaDeviceInfo['kind'], string>;
31
+ whiteboardNativeInfoToast?: boolean;
31
32
  }
32
33
 
33
34
  export interface StorageContextInterface {
@@ -36,6 +37,7 @@ export interface StorageContextInterface {
36
37
  }
37
38
 
38
39
  export const initStoreValue: StoreInterface = {
40
+ whiteboardNativeInfoToast: false,
39
41
  token: null,
40
42
  displayName: '',
41
43
  selectedLanguageCode: '',
@@ -78,19 +80,19 @@ export const StorageProvider = (props: {children: React.ReactNode}) => {
78
80
  setReady(true);
79
81
  } else {
80
82
  const storeFromStorage = JSON.parse(storeString);
81
- Object.keys(initStoreValue).forEach((key) => {
83
+ Object.keys(initStoreValue).forEach(key => {
82
84
  if (!storeFromStorage[key]) {
83
85
  storeFromStorage[key] = initStoreValue[key];
84
86
  }
85
87
  });
86
- //unauth flow delete token from the localstoage if any
88
+ // unauth flow delete token from the localstoage if any
87
89
  if (!ENABLE_AUTH) {
88
90
  storeFromStorage['token'] = null;
89
91
  }
92
+ storeFromStorage['whiteboardNativeInfoToast'] = false;
90
93
  setStore(storeFromStorage);
91
94
  setReady(true);
92
95
  }
93
- console.log('store hydrated', storeString);
94
96
  setReady(true);
95
97
  } catch (e) {
96
98
  console.error('problem hydrating store', e);
@@ -113,7 +115,6 @@ export const StorageProvider = (props: {children: React.ReactNode}) => {
113
115
  tempStore['token'] = null;
114
116
  }
115
117
  await AsyncStorage.setItem('store', JSON.stringify(tempStore));
116
- console.log('store synced with value', tempStore);
117
118
  } catch (e) {
118
119
  console.log('problem syncing the store', e);
119
120
  }
@@ -1,11 +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 = () => {
7
+ const {isRecordingBot} = useIsRecordingBot();
8
+
6
9
  // if ($config.TOAST_NOTIFICATIONS) {
7
10
  // return <Toast ref={(ref) => Toast.setRef(ref)} config={ToastConfig} />;
8
11
  // } else return <></>;
9
- return <Toast ref={(ref) => Toast.setRef(ref)} config={ToastConfig} />;
12
+ if (isRecordingBot) {
13
+ return <></>;
14
+ }
15
+ return <Toast ref={ref => Toast.setRef(ref)} config={ToastConfig} />;
10
16
  };
11
17
  export default ToastComponent;