agora-appbuilder-core 3.0.13 → 3.0.28-beta-9

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 (572) hide show
  1. package/Readme.md +6 -0
  2. package/package.json +3 -3
  3. package/template/.bundle/config +2 -0
  4. package/template/Gemfile +4 -0
  5. package/template/Gulpfile.js +31 -30
  6. package/template/_eslintrc.js +3 -3
  7. package/template/_gitignore +12 -11
  8. package/template/_package-lock.json +34387 -27128
  9. package/template/_prettierrc.js +2 -2
  10. package/template/agora-rn-uikit/.eslintrc.js +5 -0
  11. package/template/agora-rn-uikit/package-lock.json +25024 -0
  12. package/template/agora-rn-uikit/package.json +14 -14
  13. package/template/agora-rn-uikit/src/AgoraUIKit.tsx +6 -6
  14. package/template/agora-rn-uikit/src/Contexts/ContentContext.tsx +10 -0
  15. package/template/agora-rn-uikit/src/Contexts/DispatchContext.tsx +22 -0
  16. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +10 -6
  17. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +98 -37
  18. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +27 -16
  19. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +31 -26
  20. package/template/agora-rn-uikit/src/Controls/Icons.ts +81 -83
  21. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +6 -6
  22. package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -4
  23. package/template/agora-rn-uikit/src/Controls/Local/FullScreen.tsx +3 -1
  24. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +5 -2
  25. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +5 -2
  26. package/template/agora-rn-uikit/src/Controls/Local/Recording.tsx +0 -2
  27. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +7 -6
  28. package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +5 -5
  29. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +5 -4
  30. package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +3 -1
  31. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +5 -4
  32. package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +2 -2
  33. package/template/agora-rn-uikit/src/Reducer/ActiveSpeaker.ts +30 -0
  34. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +8 -6
  35. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +8 -6
  36. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +23 -0
  37. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +7 -7
  38. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +9 -8
  39. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +7 -7
  40. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +24 -14
  41. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +6 -6
  42. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +6 -6
  43. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +14 -5
  44. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +28 -0
  45. package/template/agora-rn-uikit/src/Reducer/UserSecondaryPin.ts +23 -0
  46. package/template/agora-rn-uikit/src/Reducer/index.ts +4 -0
  47. package/template/agora-rn-uikit/src/Rtc/Create.tsx +197 -66
  48. package/template/agora-rn-uikit/src/Rtc/Join.tsx +60 -33
  49. package/template/agora-rn-uikit/src/RtcConfigure.tsx +194 -57
  50. package/template/agora-rn-uikit/src/Utils/isBotUser.ts +15 -0
  51. package/template/agora-rn-uikit/src/Utils/quality.tsx +8 -0
  52. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +67 -13
  53. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +53 -17
  54. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +19 -11
  55. package/template/agora-rn-uikit/src/index.ts +19 -10
  56. package/template/android/app/build.gradle +67 -155
  57. package/template/android/app/src/debug/AndroidManifest.xml +6 -1
  58. package/template/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java +7 -4
  59. package/template/android/app/src/main/AndroidManifest.xml +21 -27
  60. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  61. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  62. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +67 -0
  63. package/template/android/app/src/main/java/com/helloworld/MainApplication.java +22 -36
  64. package/template/android/app/src/main/java/com/helloworld/SSLPinningFactory.java +30 -0
  65. package/template/android/app/src/main/res/values/colors.xml +7 -0
  66. package/template/android/app/src/main/res/values/strings.xml +3 -0
  67. package/template/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java +20 -0
  68. package/template/android/build.gradle +20 -31
  69. package/template/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  70. package/template/android/gradle/wrapper/gradle-wrapper.properties +3 -2
  71. package/template/android/gradle.properties +18 -4
  72. package/template/android/gradlew +165 -104
  73. package/template/android/gradlew.bat +12 -23
  74. package/template/android/link-assets-manifest.json +13 -0
  75. package/template/android/settings.gradle +1 -0
  76. package/template/babel.config.js +1 -0
  77. package/template/bridge/rtc/webNg/RtcEngine.ts +940 -98
  78. package/template/bridge/rtc/webNg/{SurfaceView.tsx → RtcSurfaceView.tsx} +20 -27
  79. package/template/bridge/rtc/webNg/Types.ts +20 -5
  80. package/template/bridge/rtc/webNg/index.ts +81 -14
  81. package/template/bridge/rtm/web/index.ts +86 -35
  82. package/template/configTransform.js +16 -1
  83. package/template/customization-api/action-library.ts +4 -16
  84. package/template/customization-api/app-state.ts +18 -8
  85. package/template/customization-api/atoms.ts +8 -0
  86. package/template/customization-api/customEvents.ts +7 -2
  87. package/template/customization-api/customize.ts +30 -11
  88. package/template/customization-api/index.ts +5 -0
  89. package/template/customization-api/sub-components.ts +43 -18
  90. package/template/customization-api/temp.ts +51 -0
  91. package/template/customization-api/typeDefinition.ts +65 -49
  92. package/template/customization-api/types.ts +48 -0
  93. package/template/customization-api/utils.ts +19 -1
  94. package/template/customization-implementation/createHook.ts +24 -6
  95. package/template/customization-implementation/index.ts +1 -2
  96. package/template/customization-implementation/useCustomization.tsx +5 -7
  97. package/template/defaultConfig.js +84 -0
  98. package/template/electron/index.html +27 -27
  99. package/template/electron/renderer/index.js +1 -0
  100. package/template/global.d.ts +97 -6
  101. package/template/index.js +18 -1
  102. package/template/index.rsdk.tsx +1 -0
  103. package/template/index.web.js +1 -0
  104. package/template/index.wsdk.tsx +2 -13
  105. package/template/ios/.xcode.env +11 -0
  106. package/template/ios/HelloWorld/AppDelegate.h +2 -4
  107. package/template/ios/HelloWorld/AppDelegate.mm +64 -0
  108. package/template/ios/HelloWorld/HelloWorldDebug.entitlements +10 -0
  109. package/template/ios/HelloWorld/Info.plist +20 -1
  110. package/template/ios/HelloWorld/main.m +2 -1
  111. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +596 -11
  112. package/template/ios/HelloWorld.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  113. package/template/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/ScreenSharing.xcscheme +95 -0
  114. package/template/ios/HelloWorld.xcworkspace/contents.xcworkspacedata +10 -0
  115. package/template/ios/HelloWorld.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  116. package/template/ios/HelloWorldTests/HelloWorldTests.m +14 -13
  117. package/template/ios/HelloWorldTests/Info.plist +2 -2
  118. package/template/ios/Podfile +54 -20
  119. package/template/ios/Podfile.lock +975 -0
  120. package/template/ios/ScreenSharing/Info.plist +15 -0
  121. package/template/ios/ScreenSharing/SampleHandler.h +5 -0
  122. package/template/ios/ScreenSharing/SampleHandler.m +39 -0
  123. package/template/ios/link-assets-manifest.json +13 -0
  124. package/template/jest.config.js +4 -0
  125. package/template/metro.config.js +7 -32
  126. package/template/package-lock.json +57746 -0
  127. package/template/package.json +71 -35
  128. package/template/react-native-toast-message/index.d.ts +46 -44
  129. package/template/react-native-toast-message/index.js +1 -0
  130. package/template/react-native-toast-message/package-lock.json +10553 -0
  131. package/template/react-native-toast-message/src/colors/index.js +3 -2
  132. package/template/react-native-toast-message/src/components/base/index.js +38 -63
  133. package/template/react-native-toast-message/src/components/base/styles.js +20 -39
  134. package/template/react-native-toast-message/src/components/checkbox.js +183 -0
  135. package/template/react-native-toast-message/src/components/error.js +3 -2
  136. package/template/react-native-toast-message/src/components/info.js +3 -2
  137. package/template/react-native-toast-message/src/components/success.js +3 -2
  138. package/template/react-native-toast-message/src/index.js +125 -32
  139. package/template/react-native-toast-message/src/index.sdk.tsx +129 -36
  140. package/template/react-native-toast-message/src/styles.js +3 -4
  141. package/template/react-native-toast-message/src/styles.sdk.ts +3 -4
  142. package/template/react-native.config.js +7 -0
  143. package/template/src/App.tsx +53 -63
  144. package/template/src/AppRoutes.tsx +101 -0
  145. package/template/src/AppWrapper.tsx +83 -29
  146. package/template/src/SDKAppWrapper.tsx +145 -58
  147. package/template/src/app-state/useBeautyEffects.ts +30 -0
  148. package/template/src/app-state/useLocalUserInfo.ts +3 -3
  149. package/template/src/app-state/useMessages.ts +49 -9
  150. package/template/src/app-state/useNoiseSupression.native.tsx +73 -0
  151. package/template/src/app-state/useNoiseSupression.tsx +151 -0
  152. package/template/src/app-state/useVideoQuality.tsx +182 -0
  153. package/template/src/app-state/useVirtualBackground.ts +152 -0
  154. package/template/src/assets/font-styles.css +677 -0
  155. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  156. package/template/src/assets/fonts/icomoon.ttf +0 -0
  157. package/template/src/assets/permission.png +0 -0
  158. package/template/src/assets/selection.json +3491 -0
  159. package/template/src/atoms/ActionMenu.tsx +326 -0
  160. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +71 -0
  161. package/template/src/atoms/AnimatedActiveSpeaker.tsx +84 -0
  162. package/template/src/atoms/AnimatedRings.native.tsx +68 -0
  163. package/template/src/atoms/AnimatedRings.tsx +70 -0
  164. package/template/src/atoms/Avatar.tsx +51 -0
  165. package/template/src/atoms/Card.tsx +74 -0
  166. package/template/src/atoms/Carousel.native.tsx +105 -0
  167. package/template/src/atoms/Carousel.tsx +109 -0
  168. package/template/src/atoms/Checkbox.tsx +98 -0
  169. package/template/src/atoms/CircularProgress.native.tsx +121 -0
  170. package/template/src/atoms/CircularProgress.tsx +101 -0
  171. package/template/src/atoms/ClipboardIconButton.tsx +91 -0
  172. package/template/src/atoms/CustomIcon.tsx +153 -0
  173. package/template/src/atoms/CustomSwitch.tsx +287 -0
  174. package/template/src/atoms/DropDownMulti.tsx +349 -0
  175. package/template/src/atoms/Dropdown.tsx +307 -0
  176. package/template/src/atoms/HorizontalRule.tsx +3 -1
  177. package/template/src/atoms/IconButton.tsx +205 -0
  178. package/template/src/atoms/ImageIcon.tsx +127 -0
  179. package/template/src/atoms/InfoBubble.tsx +291 -0
  180. package/template/src/atoms/InlineNotification.tsx +81 -0
  181. package/template/src/atoms/InlinePopup.tsx +185 -0
  182. package/template/src/atoms/Input.tsx +87 -0
  183. package/template/src/atoms/InviteInfo.tsx +166 -0
  184. package/template/src/atoms/LinkButton.tsx +29 -0
  185. package/template/src/atoms/MeetingLink.tsx +160 -0
  186. package/template/src/atoms/OutlineButton.tsx +61 -0
  187. package/template/src/atoms/ParticipantsCount.tsx +78 -0
  188. package/template/src/atoms/Popup.tsx +178 -0
  189. package/template/src/atoms/PrimaryButton.tsx +65 -26
  190. package/template/src/atoms/RecordingInfo.tsx +47 -0
  191. package/template/src/atoms/SecondaryButton.tsx +10 -5
  192. package/template/src/atoms/Spacer.tsx +23 -0
  193. package/template/src/atoms/TertiaryButton.tsx +108 -0
  194. package/template/src/atoms/TextInput.tsx +13 -14
  195. package/template/src/atoms/Toggle.tsx +47 -0
  196. package/template/src/atoms/Toolbar.tsx +94 -0
  197. package/template/src/atoms/ToolbarItem.tsx +99 -0
  198. package/template/src/atoms/ToolbarMenu.tsx +40 -0
  199. package/template/src/atoms/ToolbarMenuItem.tsx +104 -0
  200. package/template/src/atoms/ToolbarPreset.tsx +147 -0
  201. package/template/src/atoms/Tooltip.native.tsx +65 -0
  202. package/template/src/atoms/Tooltip.tsx +111 -0
  203. package/template/src/atoms/UserAvatar.tsx +60 -0
  204. package/template/src/atoms/pagination/Pagination.tsx +127 -0
  205. package/template/src/atoms/pagination/usePagination.tsx +88 -0
  206. package/template/src/auth/AuthProvider.tsx +710 -0
  207. package/template/src/auth/AuthRoute.tsx +94 -0
  208. package/template/src/auth/IDPAuth.electron.tsx +32 -0
  209. package/template/src/auth/IDPAuth.tsx +73 -0
  210. package/template/src/auth/IDPLogoutComponent.tsx +158 -0
  211. package/template/src/auth/UserCancelPopup.tsx +115 -0
  212. package/template/src/auth/config.ts +53 -0
  213. package/template/src/auth/openIDPURL.electron.tsx +39 -0
  214. package/template/src/auth/openIDPURL.native.tsx +62 -0
  215. package/template/src/auth/openIDPURL.tsx +20 -0
  216. package/template/src/auth/useIDPAuth.electron.tsx +125 -0
  217. package/template/src/auth/useIDPAuth.native.tsx +130 -0
  218. package/template/src/auth/useIDPAuth.tsx +124 -0
  219. package/template/src/auth/useTokenAuth.tsx +267 -0
  220. package/template/src/components/Chat.tsx +177 -279
  221. package/template/src/components/ChatContext.ts +22 -1
  222. package/template/src/components/ColorConfigure.tsx +1 -2
  223. package/template/src/components/ColorContext.ts +1 -1
  224. package/template/src/components/CommonStyles.ts +51 -0
  225. package/template/src/components/Controls.tsx +1275 -108
  226. package/template/src/components/{Controls.native.tsx → Controls1.native.tsx} +15 -9
  227. package/template/src/components/CustomSidePanel.tsx +82 -0
  228. package/template/src/components/DeviceConfigure.native.tsx +2 -2
  229. package/template/src/components/DeviceConfigure.tsx +789 -122
  230. package/template/src/components/DeviceContext.tsx +10 -4
  231. package/template/src/components/EventsConfigure.tsx +773 -12
  232. package/template/src/components/GraphQLProvider.tsx +83 -37
  233. package/template/src/components/GridVideo.tsx +86 -53
  234. package/template/src/components/HostControlView.tsx +118 -42
  235. package/template/src/components/JoinPhrase.tsx +0 -1
  236. package/template/src/components/Leftbar.tsx +129 -0
  237. package/template/src/components/Navbar.tsx +469 -488
  238. package/template/src/components/NavbarMobile.tsx +138 -0
  239. package/template/src/components/Navigation.native.tsx +1 -14
  240. package/template/src/components/{Settings.native.tsx → Navigation.sdk.tsx} +17 -6
  241. package/template/src/components/NetworkQualityContext.tsx +32 -26
  242. package/template/src/components/ParticipantsView.tsx +195 -165
  243. package/template/src/components/PinnedVideo.tsx +317 -122
  244. package/template/src/components/Precall.native.tsx +472 -116
  245. package/template/src/components/Precall.tsx +493 -154
  246. package/template/src/components/RTMConfigure.tsx +477 -83
  247. package/template/src/components/Rightbar.tsx +129 -0
  248. package/template/src/components/Router.electron.ts +2 -0
  249. package/template/src/components/Router.native.ts +2 -0
  250. package/template/src/components/Router.sdk.ts +2 -0
  251. package/template/src/components/Router.ts +2 -0
  252. package/template/src/components/SdkApiContext.tsx +319 -0
  253. package/template/src/components/SdkMuteToggleListener.tsx +88 -0
  254. package/template/src/components/SessionContext.tsx +0 -1
  255. package/template/src/components/Settings.tsx +51 -114
  256. package/template/src/components/SettingsView.tsx +293 -54
  257. package/template/src/components/Share.tsx +415 -297
  258. package/template/src/components/StorageContext.tsx +82 -7
  259. package/template/src/components/ToastComponent.tsx +17 -0
  260. package/template/src/components/WhiteboardLayout.tsx +291 -0
  261. package/template/src/components/beauty-effect/useBeautyEffects.native.tsx +119 -0
  262. package/template/src/components/beauty-effect/useBeautyEffects.tsx +152 -0
  263. package/template/src/components/chat/chatConfigure.native.tsx +511 -0
  264. package/template/src/components/chat/chatConfigure.tsx +529 -0
  265. package/template/src/components/chat-messages/useChatMessages.tsx +513 -386
  266. package/template/src/components/chat-ui/useChatUIControls.tsx +132 -0
  267. package/template/src/components/common/Error.tsx +36 -6
  268. package/template/src/components/common/Logo.tsx +16 -15
  269. package/template/src/components/contexts/LiveStreamDataContext.tsx +23 -17
  270. package/template/src/components/contexts/ScreenShareContext.tsx +15 -1
  271. package/template/src/components/contexts/VideoMeetingDataContext.tsx +41 -11
  272. package/template/src/components/contexts/WaitingRoomContext.tsx +61 -0
  273. package/template/src/components/contexts/WhiteboardContext.tsx +54 -54
  274. package/template/src/components/disable-chat/useDisableChat.tsx +32 -0
  275. package/template/src/components/livestream/LiveStreamContext.tsx +493 -165
  276. package/template/src/components/livestream/Types.ts +58 -17
  277. package/template/src/components/livestream/index.ts +1 -0
  278. package/template/src/components/livestream/views/LiveStreamAttendeeLandingTile.tsx +295 -0
  279. package/template/src/components/livestream/views/LiveStreamControls.tsx +8 -4
  280. package/template/src/components/meeting-info-invite/MeetingInfo.tsx +82 -0
  281. package/template/src/components/meeting-info-invite/MeetingInfoCardHeader.tsx +86 -0
  282. package/template/src/components/meeting-info-invite/MeetingInfoGridTile.tsx +221 -0
  283. package/template/src/components/meeting-info-invite/MeetingInfoLinks.tsx +122 -0
  284. package/template/src/components/participants/AllAudienceParticipants.tsx +105 -35
  285. package/template/src/components/participants/AllHostParticipants.tsx +108 -38
  286. package/template/src/components/participants/Participant.tsx +330 -0
  287. package/template/src/components/participants/ParticipantName.tsx +13 -7
  288. package/template/src/components/participants/ParticipantSectionTitle.tsx +38 -10
  289. package/template/src/components/participants/ScreenshareParticipants.tsx +142 -12
  290. package/template/src/components/participants/UserActionMenuOptions.tsx +510 -0
  291. package/template/src/components/participants/WaitingRoomParticipants.tsx +74 -0
  292. package/template/src/components/popups/InvitePopup.tsx +196 -0
  293. package/template/src/components/popups/StartScreenSharePopup.native.tsx +182 -0
  294. package/template/src/components/popups/StartScreenSharePopup.tsx +6 -0
  295. package/template/src/components/popups/StopRecordingPopup.tsx +120 -0
  296. package/template/src/components/popups/StopScreenSharePopup.native.tsx +135 -0
  297. package/template/src/components/popups/StopScreenSharePopup.tsx +6 -0
  298. package/template/src/components/popups/WhiteboardClearAllPopup.tsx +123 -0
  299. package/template/src/components/precall/LocalMute.tsx +109 -15
  300. package/template/src/components/precall/{LocalMute.native.tsx → LocalMute1.native.tsx} +21 -5
  301. package/template/src/components/precall/PermissionHelper.native.tsx +5 -0
  302. package/template/src/components/precall/PermissionHelper.tsx +154 -0
  303. package/template/src/components/precall/PreCallSettings.tsx +53 -0
  304. package/template/src/components/precall/VideoFallback.tsx +173 -0
  305. package/template/src/components/precall/VideoPreview.native.tsx +19 -8
  306. package/template/src/components/precall/VideoPreview.tsx +28 -7
  307. package/template/src/components/precall/index.tsx +2 -0
  308. package/template/src/components/precall/joinCallBtn.native.tsx +12 -5
  309. package/template/src/components/precall/joinCallBtn.tsx +34 -6
  310. package/template/src/components/precall/joinWaitingRoomBtn.native.tsx +215 -0
  311. package/template/src/components/precall/joinWaitingRoomBtn.tsx +255 -0
  312. package/template/src/components/precall/meetingTitle.tsx +42 -13
  313. package/template/src/components/precall/selectDevice.tsx +5 -25
  314. package/template/src/components/precall/textInput.tsx +40 -14
  315. package/template/src/components/precall/usePreCall.tsx +66 -2
  316. package/template/src/components/recording-bot/RecordingBotRoute.tsx +48 -0
  317. package/template/src/components/recordings/RecordingsDateTable.tsx +62 -0
  318. package/template/src/components/recordings/RecordingsModal.tsx +135 -0
  319. package/template/src/components/recordings/ViewRecordingsModal.tsx +51 -0
  320. package/template/src/components/recordings/recording-table.tsx +250 -0
  321. package/template/src/components/recordings/style.ts +238 -0
  322. package/template/src/components/recordings/utils.ts +122 -0
  323. package/template/src/components/room-info/useRoomInfo.tsx +142 -0
  324. package/template/src/components/{meeting-info/useSetMeetingInfo.tsx → room-info/useSetRoomInfo.tsx} +12 -12
  325. package/template/src/components/styles.ts +42 -21
  326. package/template/src/components/useShareLink.tsx +33 -70
  327. package/template/src/{utils/useButtonTemplate.tsx → components/useToast.tsx} +18 -20
  328. package/template/src/components/useUserPreference.tsx +157 -16
  329. package/template/src/components/useVideoCall.tsx +157 -0
  330. package/template/src/components/useWakeLock.tsx +18 -4
  331. package/template/src/components/virtual-background/VBButton.tsx +62 -0
  332. package/template/src/components/virtual-background/VBCard.native.tsx +280 -0
  333. package/template/src/components/virtual-background/VBCard.tsx +308 -0
  334. package/template/src/components/virtual-background/VBPanel.tsx +282 -0
  335. package/template/src/components/virtual-background/VButils.native.ts +72 -0
  336. package/template/src/components/virtual-background/VButils.ts +144 -0
  337. package/template/src/components/virtual-background/VideoPreview.native.tsx +43 -0
  338. package/template/src/components/virtual-background/VideoPreview.tsx +116 -0
  339. package/template/src/components/virtual-background/imagePaths.ts +82 -0
  340. package/template/src/components/virtual-background/images/beachImageBase64.ts +1 -0
  341. package/template/src/components/virtual-background/images/bedroomImageBase64.ts +1 -0
  342. package/template/src/components/virtual-background/images/bookImageBase64.ts +1 -0
  343. package/template/src/components/virtual-background/images/earthImageBase64.ts +1 -0
  344. package/template/src/components/virtual-background/images/index.ts +37 -0
  345. package/template/src/components/virtual-background/images/lampImageBase64.ts +1 -0
  346. package/template/src/components/virtual-background/images/mountainsImageBase64.ts +1 -0
  347. package/template/src/components/virtual-background/images/office1ImageBase64.ts +1 -0
  348. package/template/src/components/virtual-background/images/officeImageBase64.ts +1 -0
  349. package/template/src/components/virtual-background/images/plantsImageBase64.ts +1 -0
  350. package/template/src/components/virtual-background/images/skyImageBase64.ts +1 -0
  351. package/template/src/components/virtual-background/images/wallImageBase64.ts +1 -0
  352. package/template/src/components/virtual-background/useVB.native.tsx +205 -0
  353. package/template/src/components/virtual-background/useVB.tsx +294 -0
  354. package/template/src/components/whiteboard/StrokeWidthTool.tsx +137 -0
  355. package/template/src/components/whiteboard/WhiteboardButton.tsx +93 -0
  356. package/template/src/components/whiteboard/WhiteboardCanvas.tsx +99 -0
  357. package/template/src/components/whiteboard/WhiteboardConfigure.native.tsx +148 -0
  358. package/template/src/components/whiteboard/WhiteboardConfigure.tsx +473 -0
  359. package/template/src/components/whiteboard/WhiteboardCursor.tsx +152 -0
  360. package/template/src/components/whiteboard/WhiteboardToolBox.tsx +1448 -0
  361. package/template/src/components/whiteboard/WhiteboardView.native.tsx +212 -0
  362. package/template/src/components/whiteboard/WhiteboardView.tsx +81 -0
  363. package/template/src/components/whiteboard/WhiteboardWidget.tsx +729 -0
  364. package/template/src/components/whiteboard/WhiteboardWrapper.tsx +38 -0
  365. package/template/src/language/default-labels/commonLabels.ts +51 -14
  366. package/template/src/language/default-labels/createScreenLabels.ts +97 -17
  367. package/template/src/language/default-labels/joinScreenLabels.ts +45 -6
  368. package/template/src/language/default-labels/precallScreenLabels.ts +158 -25
  369. package/template/src/language/default-labels/shareLinkScreenLabels.ts +85 -37
  370. package/template/src/language/default-labels/videoCallScreenLabels.ts +1290 -158
  371. package/template/src/language/i18nTypes.ts +1 -1
  372. package/template/src/language/useLanguage.tsx +10 -4
  373. package/template/src/logger/AppBuilderLogger.tsx +313 -0
  374. package/template/src/logger/constants.ts +18 -0
  375. package/template/src/logger/transports/agora-transport.native.ts +64 -0
  376. package/template/src/logger/transports/agora-transport.ts +36 -0
  377. package/template/src/logger/transports/customer-transport.ts +162 -0
  378. package/template/src/pages/Authenticate.tsx +5 -15
  379. package/template/src/pages/Create.tsx +394 -202
  380. package/template/src/pages/Endcall.tsx +153 -0
  381. package/template/src/pages/Join.tsx +188 -78
  382. package/template/src/pages/Login.tsx +26 -0
  383. package/template/src/pages/VideoCall.tsx +381 -130
  384. package/template/src/pages/video-call/ActionSheet.native.tsx +343 -0
  385. package/template/src/pages/video-call/ActionSheet.tsx +349 -0
  386. package/template/src/pages/video-call/ActionSheetContent.tsx +655 -0
  387. package/template/src/pages/video-call/ActionSheetHandle.tsx +54 -0
  388. package/template/src/pages/video-call/ActionSheetStyles.css +138 -0
  389. package/template/src/pages/video-call/DefaultLayouts.ts +32 -12
  390. package/template/src/pages/video-call/NameWithMicIcon.tsx +104 -51
  391. package/template/src/pages/video-call/PinchableView.tsx +119 -0
  392. package/template/src/pages/video-call/RenderComponent.tsx +16 -31
  393. package/template/src/pages/video-call/SidePanelHeader.tsx +424 -0
  394. package/template/src/pages/video-call/VideoCallMobileView.tsx +299 -0
  395. package/template/src/pages/video-call/VideoCallScreen.native.tsx +38 -0
  396. package/template/src/pages/video-call/VideoCallScreen.tsx +379 -74
  397. package/template/src/pages/video-call/VideoCallScreenWrapper.tsx +51 -0
  398. package/template/src/pages/video-call/VideoComponent.tsx +81 -6
  399. package/template/src/pages/video-call/VideoRenderer.tsx +525 -63
  400. package/template/src/pages/video-call/VisibilitySensor.tsx +104 -0
  401. package/template/src/pages/video-call/ZoomableWrapper.native.tsx +34 -0
  402. package/template/src/pages/video-call/ZoomableWrapper.tsx +5 -0
  403. package/template/src/pages/video-call/index.ts +51 -7
  404. package/template/src/rtm/RTMEngine.ts +22 -4
  405. package/template/src/rtm-events/constants.ts +26 -9
  406. package/template/src/rtm-events-api/Events.ts +114 -23
  407. package/template/src/rtm-events-api/LocalEvents.ts +15 -0
  408. package/template/src/rtm-events-api/types.ts +10 -5
  409. package/template/src/selection.json +1 -0
  410. package/template/src/subComponents/BlockUI.tsx +70 -0
  411. package/template/src/subComponents/ChatBubble.tsx +413 -96
  412. package/template/src/subComponents/ChatContainer.tsx +305 -101
  413. package/template/src/subComponents/ChatInput.native.tsx +269 -0
  414. package/template/src/subComponents/ChatInput.tsx +308 -156
  415. package/template/src/subComponents/Checkbox.native.tsx +46 -35
  416. package/template/src/subComponents/Checkbox.tsx +9 -8
  417. package/template/src/subComponents/CopyJoinInfo.tsx +52 -62
  418. package/template/src/subComponents/EndcallPopup.tsx +182 -0
  419. package/template/src/subComponents/FallbackLogo.tsx +122 -40
  420. package/template/src/subComponents/LanguageSelector.tsx +35 -31
  421. package/template/src/subComponents/LayoutIconButton.tsx +210 -0
  422. package/template/src/subComponents/LayoutIconDropdown.tsx +149 -133
  423. package/template/src/subComponents/{LayoutIconDropdown.native.tsx → LayoutIconDropdown1.native.tsx} +4 -18
  424. package/template/src/subComponents/Loading.tsx +60 -0
  425. package/template/src/subComponents/LocalAudioMute.tsx +181 -30
  426. package/template/src/subComponents/LocalEndCall.tsx +118 -36
  427. package/template/src/subComponents/LocalSwitchCamera.tsx +72 -40
  428. package/template/src/subComponents/LocalVideoMute.tsx +177 -30
  429. package/template/src/subComponents/Logo.tsx +3 -4
  430. package/template/src/subComponents/LogoutButton.tsx +2 -2
  431. package/template/src/subComponents/NetworkQualityPill.tsx +65 -84
  432. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  433. package/template/src/subComponents/Recording.tsx +44 -31
  434. package/template/src/subComponents/RemoteAudioMute.tsx +83 -29
  435. package/template/src/subComponents/RemoteEndCall.tsx +8 -5
  436. package/template/src/subComponents/RemoteMutePopup.tsx +115 -0
  437. package/template/src/subComponents/RemoteVideoMute.tsx +74 -21
  438. package/template/src/subComponents/RemoveMeetingPopup.tsx +122 -0
  439. package/template/src/subComponents/RemoveScreensharePopup.tsx +124 -0
  440. package/template/src/subComponents/ScreenShareNotice.tsx +95 -12
  441. package/template/src/subComponents/SelectDevice.tsx +548 -66
  442. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +210 -0
  443. package/template/src/subComponents/SelectOAuth.tsx +9 -8
  444. package/template/src/subComponents/SidePanelButtons.ts +0 -3
  445. package/template/src/subComponents/SidePanelEnum.tsx +6 -4
  446. package/template/src/subComponents/SidePanelHeader.tsx +146 -0
  447. package/template/src/subComponents/ToastConfig.tsx +160 -11
  448. package/template/src/subComponents/caption/Caption.tsx +132 -0
  449. package/template/src/subComponents/caption/CaptionContainer.tsx +331 -0
  450. package/template/src/subComponents/caption/CaptionIcon.tsx +115 -0
  451. package/template/src/subComponents/caption/CaptionText.tsx +182 -0
  452. package/template/src/subComponents/caption/DownloadTranscriptBtn.tsx +65 -0
  453. package/template/src/subComponents/caption/LanguageSelectorPopup.tsx +192 -0
  454. package/template/src/subComponents/caption/Transcript.tsx +452 -0
  455. package/template/src/subComponents/caption/TranscriptIcon.tsx +126 -0
  456. package/template/src/subComponents/caption/TranscriptText.tsx +98 -0
  457. package/template/src/subComponents/caption/index.ts +3 -0
  458. package/template/src/subComponents/caption/proto/ptoto.js +91 -0
  459. package/template/src/subComponents/caption/proto/test.proto +23 -0
  460. package/template/src/subComponents/caption/useCaption.tsx +123 -0
  461. package/template/src/subComponents/caption/useCaptionWidth.ts +27 -0
  462. package/template/src/subComponents/caption/useSTTAPI.tsx +275 -0
  463. package/template/src/subComponents/caption/useStreamMessageUtils.native.ts +211 -0
  464. package/template/src/subComponents/caption/useStreamMessageUtils.ts +235 -0
  465. package/template/src/subComponents/caption/useTranscriptDownload.native.ts +93 -0
  466. package/template/src/subComponents/caption/useTranscriptDownload.ts +62 -0
  467. package/template/src/subComponents/caption/utils.ts +126 -0
  468. package/template/src/subComponents/chat/ChatActionMenu.tsx +224 -0
  469. package/template/src/subComponents/chat/ChatAttachment.native.tsx +237 -0
  470. package/template/src/subComponents/chat/ChatAttachment.tsx +205 -0
  471. package/template/src/subComponents/chat/ChatEmoji.native.tsx +75 -0
  472. package/template/src/subComponents/chat/ChatEmoji.tsx +182 -0
  473. package/template/src/subComponents/chat/ChatParticipants.tsx +232 -81
  474. package/template/src/subComponents/chat/ChatSendButton.tsx +209 -0
  475. package/template/src/subComponents/chat/ChatUploadStatus.tsx +84 -0
  476. package/template/src/subComponents/chat/ImagePopup.tsx +400 -0
  477. package/template/src/subComponents/livestream/ApprovedLiveStreamControlsView.tsx +2 -2
  478. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +109 -47
  479. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +61 -45
  480. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +9 -8
  481. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +29 -12
  482. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +33 -17
  483. package/template/src/subComponents/recording/useIsRecordingBot.tsx +76 -0
  484. package/template/src/subComponents/recording/useRecording.tsx +761 -108
  485. package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +93 -9
  486. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +82 -75
  487. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +494 -78
  488. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +247 -110
  489. package/template/src/subComponents/screenshare/useScreenshare.tsx +6 -4
  490. package/template/src/subComponents/waiting-rooms/WaitingRoomControls.tsx +85 -0
  491. package/template/src/subComponents/waiting-rooms/useWaitingRoomAPI.ts +126 -0
  492. package/template/src/theme/index.ts +59 -0
  493. package/template/src/utils/PlatformWrapper.tsx +21 -0
  494. package/template/src/utils/SdkEvents.ts +37 -14
  495. package/template/src/utils/SdkMethodEvents.ts +105 -0
  496. package/template/src/utils/axiomLogger.ts +122 -0
  497. package/template/src/utils/book.jpg +0 -0
  498. package/template/src/utils/common.tsx +350 -7
  499. package/template/src/utils/constants.ts +4 -0
  500. package/template/src/utils/fetch-retry.ts +23 -0
  501. package/template/src/utils/getCustomRoute.ts +7 -0
  502. package/template/src/utils/hexadecimalTransparency.ts +108 -0
  503. package/template/src/utils/index.tsx +83 -0
  504. package/template/src/utils/isMobileOrTablet.ts +7 -2
  505. package/template/src/utils/pendingStateUpdateHelper.ts +19 -0
  506. package/template/src/utils/useActionSheet.tsx +50 -0
  507. package/template/src/utils/useActiveSpeaker.ts +38 -0
  508. package/template/src/utils/useAppState.ts +17 -0
  509. package/template/src/utils/useAsyncEffect.ts +138 -0
  510. package/template/src/utils/useCreateRoom.ts +152 -0
  511. package/template/src/utils/useEndCall.ts +74 -0
  512. package/template/src/utils/useFindActiveSpeaker.native.ts +4 -0
  513. package/template/src/utils/useFindActiveSpeaker.ts +373 -0
  514. package/template/src/utils/useFocus.tsx +51 -0
  515. package/template/src/utils/useFullScreen.native.ts +12 -0
  516. package/template/src/utils/useFullScreen.ts +161 -0
  517. package/template/src/utils/useGetMeetingPhrase.ts +61 -10
  518. package/template/src/utils/useIsAudioEnabled.ts +3 -3
  519. package/template/src/utils/useIsHandRaised.ts +13 -0
  520. package/template/src/utils/useIsLocalUserSpeaking.native.ts +4 -0
  521. package/template/src/utils/useIsLocalUserSpeaking.ts +119 -0
  522. package/template/src/utils/useIsPSTN.ts +3 -3
  523. package/template/src/utils/useIsVideoEnabled.ts +3 -3
  524. package/template/src/utils/useJoinRoom.ts +304 -0
  525. package/template/src/utils/useLayout.tsx +9 -3
  526. package/template/src/utils/useLocalAudio.ts +69 -0
  527. package/template/src/utils/useLocalVideo.ts +69 -0
  528. package/template/src/{subComponents/screenshare/ScreenshareButton.native.tsx → utils/useMenu.tsx} +16 -3
  529. package/template/src/utils/useModal.tsx +8 -0
  530. package/template/src/utils/useMutePSTN.ts +45 -2
  531. package/template/src/utils/useMuteToggleLocal.ts +125 -49
  532. package/template/src/utils/useOrientation.native.tsx +3 -0
  533. package/template/src/utils/useOrientation.tsx +59 -0
  534. package/template/src/utils/useRemoteEndCall.ts +4 -4
  535. package/template/src/utils/useRemoteEndScreenshare.ts +26 -0
  536. package/template/src/utils/useRemoteMute.ts +7 -7
  537. package/template/src/utils/useRemoteRequest.ts +84 -0
  538. package/template/src/utils/useSearchParams.tsx +28 -0
  539. package/template/src/utils/useSidePanel.tsx +16 -5
  540. package/template/src/utils/useSpeechToText.ts +102 -0
  541. package/template/src/utils/useString.ts +19 -7
  542. package/template/src/utils/useSwitchCamera.native.tsx +25 -0
  543. package/template/src/utils/useSwitchCamera.tsx +19 -0
  544. package/template/src/utils/useToolbar.tsx +59 -0
  545. package/template/src/wasms/agora-virtual-background.wasm +0 -0
  546. package/template/static.d.ts +42 -0
  547. package/template/tsconfig_rsdk_index.json +3 -3
  548. package/template/tsconfig_wsdk_index.json +3 -3
  549. package/template/web/index.html +45 -17
  550. package/template/webpack.commons.js +16 -0
  551. package/template/webpack.rsdk.config.js +1 -2
  552. package/template/webpack.web.config.js +8 -3
  553. package/template/_buckconfig +0 -6
  554. package/template/_gitattributes +0 -1
  555. package/template/agora-rn-uikit/src/Contexts/RenderContext.tsx +0 -10
  556. package/template/android/app/_BUCK +0 -55
  557. package/template/android/app/build_defs.bzl +0 -19
  558. package/template/bridge/rtc/webNg/LocalView.tsx +0 -20
  559. package/template/ios/HelloWorld/AppDelegate.m +0 -74
  560. package/template/src/assets/icons.ts +0 -102
  561. package/template/src/components/OAuth.electron.tsx +0 -40
  562. package/template/src/components/OAuth.native.tsx +0 -53
  563. package/template/src/components/OAuth.tsx +0 -29
  564. package/template/src/components/OAuthConfig.ts +0 -77
  565. package/template/src/components/StoreToken.tsx +0 -38
  566. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -69
  567. package/template/src/components/meeting-info/useMeetingInfo.tsx +0 -70
  568. package/template/src/components/participants/MeParticipant.tsx +0 -38
  569. package/template/src/components/participants/RemoteParticipants.tsx +0 -71
  570. package/template/src/pages/video-call/CustomUserContextHolder.tsx +0 -20
  571. package/template/src/utils/useCreateMeeting.ts +0 -88
  572. package/template/src/utils/useJoinMeeting.ts +0 -132
@@ -13,57 +13,50 @@
13
13
  import {ILocalVideoTrack, IRemoteVideoTrack} from 'agora-rtc-sdk-ng';
14
14
  import React, {useEffect} from 'react';
15
15
  import {StyleProp, StyleSheet, ViewProps, ViewStyle} from 'react-native';
16
- import {VideoMirrorMode, VideoRenderMode} from 'react-native-agora';
16
+ import {RenderModeType} from './Types';
17
+ import {LogSource, logger} from '../../../src/logger/AppBuilderLogger';
17
18
 
18
19
  export interface RtcSurfaceViewProps extends ViewProps {
19
- zOrderMediaOverlay?: boolean;
20
- zOrderOnTop?: boolean;
21
- renderMode?: any;
22
- channelId?: string;
23
- mirrorMode?: any;
24
- }
25
- export interface RtcUidProps {
26
- uid: number;
20
+ canvas: {
21
+ renderMode?: RenderModeType;
22
+ uid?: number;
23
+ };
27
24
  }
25
+
28
26
  export interface StyleProps {
29
27
  style?: StyleProp<ViewStyle>;
30
28
  }
31
29
 
32
- interface SurfaceViewInterface
33
- extends RtcSurfaceViewProps,
34
- RtcUidProps,
35
- StyleProps {}
36
-
37
- const SurfaceView = (props: SurfaceViewInterface) => {
38
- // console.log('Surface View props', props);
30
+ interface SurfaceViewInterface extends RtcSurfaceViewProps, StyleProps {}
39
31
 
32
+ const RtcSurfaceView = (props: SurfaceViewInterface) => {
33
+ const {uid, renderMode} = props.canvas;
40
34
  const stream: ILocalVideoTrack | IRemoteVideoTrack =
41
- props.uid === 0
35
+ uid === 0
42
36
  ? window.engine.localStream.video
43
- : props.uid === 1
37
+ : uid === 1
44
38
  ? window.engine.screenStream.video
45
- : window.engine.remoteStreams.get(props.uid)?.video;
46
- // console.log(props, window.engine, stream);
39
+ : window.engine.remoteStreams.get(uid)?.video;
47
40
  useEffect(
48
41
  function () {
49
42
  if (stream?.play) {
50
- if (props.renderMode === 2) {
51
- stream.play(String(props.uid), {fit: 'contain'});
43
+ if (renderMode === RenderModeType.RenderModeFit) {
44
+ stream.play(String(uid), {fit: 'contain'});
52
45
  } else {
53
- stream.play(String(props.uid));
46
+ stream.play(String(uid));
54
47
  }
55
48
  }
56
49
  return () => {
57
- console.log(`unmounting stream ${props.uid}`, stream);
50
+ console.log(`unmounting stream ${uid}`, stream);
58
51
  stream && stream.stop();
59
52
  };
60
53
  },
61
- [props.uid, props.renderMode, stream],
54
+ [uid, renderMode, stream],
62
55
  );
63
56
 
64
57
  return stream ? (
65
58
  <div
66
- id={String(props.uid)}
59
+ id={String(uid)}
67
60
  className={'video-container'}
68
61
  style={{...style.full, ...(props.style as Object), overflow: 'hidden'}}
69
62
  />
@@ -78,4 +71,4 @@ const style = StyleSheet.create({
78
71
  },
79
72
  });
80
73
 
81
- export default SurfaceView;
74
+ export default RtcSurfaceView;
@@ -9,11 +9,26 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- export enum VideoRenderMode {
13
- Hidden = 1,
14
- Fit,
15
- Adaptive,
12
+
13
+ export interface RtcEngineContext {
14
+ appId?: string;
16
15
  }
16
+
17
+ export enum RenderModeType {
18
+ /**
19
+ * 1: Hidden mode. Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). One dimension of the video may have clipped contents.
20
+ */
21
+ RenderModeHidden = 1,
22
+ /**
23
+ * 2: Fit mode. Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). Areas that are not filled due to disparity in the aspect ratio are filled with black.
24
+ */
25
+ RenderModeFit = 2,
26
+ /**
27
+ * @ignore
28
+ */
29
+ RenderModeAdaptive = 3,
30
+ }
31
+
17
32
  export enum VideoMirrorMode {
18
33
  /**
19
34
  * 0: (Default) The SDK determines the mirror mode.
@@ -26,7 +41,7 @@ export enum VideoMirrorMode {
26
41
  /**
27
42
  * 2: Disables mirror mode.
28
43
  */
29
- Disabled = 2
44
+ Disabled = 2,
30
45
  }
31
46
  /**
32
47
  *
@@ -10,23 +10,90 @@
10
10
  *********************************************
11
11
  */
12
12
  import RtcEngine from './RtcEngine';
13
- import SurfaceView from './SurfaceView';
14
- import LocalView from './LocalView';
15
- import * as Types from './Types';
13
+ export {default as RtcSurfaceView} from './RtcSurfaceView';
16
14
 
17
- export const RtcLocalView = {
18
- SurfaceView: LocalView,
19
- TextureView: LocalView,
20
- };
15
+ import * as Types from './Types';
21
16
 
22
- export const RtcRemoteView = {
23
- SurfaceView: SurfaceView as any,
24
- TextureView: SurfaceView as any,
25
- };
17
+ export const VideoMirrorMode = {...Types.RenderModeType};
18
+ export const RenderModeType = {...Types.RenderModeType};
26
19
 
27
- export const VideoRenderMode = {...Types.VideoRenderMode};
28
- export const VideoMirrorMode = {...Types.VideoRenderMode};
20
+ export function createAgoraRtcEngine() {
21
+ let engine = new RtcEngine();
22
+ window.engine = engine;
23
+ return engine;
24
+ }
29
25
 
30
26
  export {RnEncryptionEnum as EncryptionMode} from './RtcEngine';
31
- export {AREAS as AreaCode} from './RtcEngine'
27
+ export {AREAS as AreaCode} from './RtcEngine';
28
+ export type VideoEncoderConfiguration = any;
29
+ export declare enum AudioScenario {
30
+ /**
31
+ * 0: Default audio scenario.
32
+ *
33
+ * **Note**
34
+ * If you run the iOS app on an M1 Mac, due to the hardware differences between M1 Macs, iPhones, and iPads,
35
+ * the default audio scenario of the Agora iOS SDK is the same as that of the Agora macOS SDK.
36
+ */
37
+ Default = 0,
38
+ /**
39
+ * 1: Entertainment scenario where users need to frequently switch the user role.
40
+ */
41
+ ChatRoomEntertainment = 1,
42
+ /**
43
+ * 2: Education scenario where users want smoothness and stability.
44
+ */
45
+ Education = 2,
46
+ /**
47
+ * 3: High-quality audio chatroom scenario where hosts mainly play music.
48
+ */
49
+ GameStreaming = 3,
50
+ /**
51
+ * 4: Showroom scenario where a single host wants high-quality audio.
52
+ */
53
+ ShowRoom = 4,
54
+ /**
55
+ * 5: Gaming scenario for group chat that only contains the human voice.
56
+ */
57
+ ChatRoomGaming = 5,
58
+ /**
59
+ * IoT (Internet of Things) scenario where users use IoT devices with low power consumption.
60
+ *
61
+ * @since v3.2.0.
62
+ */
63
+ IOT = 6,
64
+ /**
65
+ * Meeting scenario that mainly contains the human voice.
66
+ *
67
+ * @since v3.2.0.
68
+ */
69
+ MEETING = 8,
70
+ }
71
+ export declare enum AudioProfile {
72
+ /**
73
+ * 0: Default audio profile.
74
+ * - In the `Communication` profile: A sample rate of 32 KHz, audio encoding, mono, and a bitrate of up to 18 Kbps.
75
+ * - In the `LiveBroadcasting` profile: A sample rate of 48 KHz, music encoding, mono, and a bitrate of up to 64 Kbps.
76
+ */
77
+ Default = 0,
78
+ /**
79
+ * 1: A sample rate of 32 KHz, audio encoding, mono, and a bitrate of up to 18 Kbps.
80
+ */
81
+ SpeechStandard = 1,
82
+ /**
83
+ * 2: A sample rate of 48 KHz, music encoding, mono, and a bitrate of up to 64 Kbps.
84
+ */
85
+ MusicStandard = 2,
86
+ /**
87
+ * 3: A sample rate of 48 KHz, music encoding, stereo, and a bitrate of up to 80 Kbps.
88
+ */
89
+ MusicStandardStereo = 3,
90
+ /**
91
+ * 4: A sample rate of 48 KHz, music encoding, mono, and a bitrate of up to 96 Kbps.
92
+ */
93
+ MusicHighQuality = 4,
94
+ /**
95
+ * 5: A sample rate of 48 KHz, music encoding, stereo, and a bitrate of up to 128 Kbps.
96
+ */
97
+ MusicHighQualityStereo = 5,
98
+ }
32
99
  export default RtcEngine;
@@ -18,17 +18,18 @@ import {
18
18
  } from 'agora-react-native-rtm/lib/typescript/src';
19
19
  import {RtmClientEvents} from 'agora-react-native-rtm/lib/typescript/src/RtmEngine';
20
20
  import AgoraRTM, {VERSION} from 'agora-rtm-sdk';
21
+ import RtmClient from 'agora-react-native-rtm';
22
+ import {LogSource, logger} from '../../../src/logger/AppBuilderLogger';
21
23
  // export {RtmAttribute}
22
24
  //
23
- interface RtmAttributePlaceholder {
24
- };
25
+ interface RtmAttributePlaceholder {}
25
26
  export {RtmAttributePlaceholder as RtmAttribute};
26
27
 
27
28
  type callbackType = (args?: any) => void;
28
29
 
29
30
  export default class RtmEngine {
30
31
  public appId: string;
31
- public client: any;
32
+ public client: RtmClient;
32
33
  public channelMap = new Map<string, any>([]);
33
34
  public remoteInvititations = new Map<string, any>([]);
34
35
  public localInvititations = new Map<string, any>([]);
@@ -36,7 +37,7 @@ export default class RtmEngine {
36
37
  ['channelMessageReceived', () => null],
37
38
  ['channelMemberJoined', () => null],
38
39
  ['channelMemberLeft', () => null],
39
- ['ChannelAttributesUpdated', () => null],
40
+ ['channelAttributesUpdated', () => null],
40
41
  ]);
41
42
  public clientEventsMap = new Map<string, any>([
42
43
  ['connectionStateChanged', () => null],
@@ -59,7 +60,7 @@ export default class RtmEngine {
59
60
  ]);
60
61
  constructor() {
61
62
  this.appId = '';
62
- console.log('Using RTM Bridge');
63
+ logger.debug(LogSource.AgoraSDK, 'Log', 'Using RTM Bridge');
63
64
  }
64
65
 
65
66
  on(event: any, listener: any) {
@@ -67,7 +68,7 @@ export default class RtmEngine {
67
68
  event === 'channelMessageReceived' ||
68
69
  event === 'channelMemberJoined' ||
69
70
  event === 'channelMemberLeft' ||
70
- event === 'ChannelAttributesUpdated'
71
+ event === 'channelAttributesUpdated'
71
72
  ) {
72
73
  this.channelEventsMap.set(event, listener);
73
74
  } else if (
@@ -99,6 +100,38 @@ export default class RtmEngine {
99
100
  this.appId = APP_ID;
100
101
  this.client = AgoraRTM.createInstance(this.appId);
101
102
 
103
+ if ($config.GEO_FENCING) {
104
+ try {
105
+ //include area is comma seperated value
106
+ let includeArea = $config.GEO_FENCING_INCLUDE_AREA
107
+ ? $config.GEO_FENCING_INCLUDE_AREA
108
+ : AREAS.GLOBAL;
109
+
110
+ //exclude area is single value
111
+ let excludeArea = $config.GEO_FENCING_EXCLUDE_AREA
112
+ ? $config.GEO_FENCING_EXCLUDE_AREA
113
+ : '';
114
+
115
+ includeArea = includeArea?.split(',');
116
+
117
+ //pass excludedArea if only its provided
118
+ if (excludeArea) {
119
+ AgoraRTM.setArea({
120
+ areaCodes: includeArea,
121
+ excludedArea: excludeArea,
122
+ });
123
+ }
124
+ //otherwise we can pass area directly
125
+ else {
126
+ AgoraRTM.setArea({areaCodes: includeArea});
127
+ }
128
+ } catch (setAeraError) {
129
+ console.log('error on RTM setArea', setAeraError);
130
+ }
131
+ }
132
+
133
+ window.rtmClient = this.client;
134
+
102
135
  this.client.on('ConnectionStateChanged', (state, reason) => {
103
136
  this.clientEventsMap.get('connectionStateChanged')({state, reason});
104
137
  });
@@ -174,7 +207,7 @@ export default class RtmEngine {
174
207
  }
175
208
 
176
209
  async logout(): Promise<any> {
177
- return this.client.logout();
210
+ return await this.client.logout();
178
211
  }
179
212
 
180
213
  async joinChannel(channelId: string): Promise<any> {
@@ -202,16 +235,27 @@ export default class RtmEngine {
202
235
  .get(channelId)
203
236
  .on('AttributesUpdated', (attributes: RtmChannelAttribute) => {
204
237
  /**
205
- * a) The following piece of code is commented for future reference.
206
- * b) To be used in future implementations of channel attributes
207
- * c) Kindly note the below event listener 'ChannelAttributesUpdated' expects type
238
+ * a) Kindly note the below event listener 'channelAttributesUpdated' expects type
208
239
  * RtmChannelAttribute[] (array of objects [{key: 'valueOfKey', value: 'valueOfValue}])
209
240
  * whereas the above listener 'AttributesUpdated' receives attributes in object form
210
241
  * {[valueOfKey]: valueOfValue} of type RtmChannelAttribute
211
- * d) Hence in this bridge the data should be modified to keep in sync with both the
242
+ * b) Hence in this bridge the data should be modified to keep in sync with both the
212
243
  * listeners for web and listener for native
213
244
  */
214
- // this.channelEventsMap.get('ChannelAttributesUpdated')(attributes); //RN expect evt: any
245
+ /**
246
+ * 1. Loop through object
247
+ * 2. Create a object {key: "", value: ""} and push into array
248
+ * 3. Return the Array
249
+ */
250
+ const channelAttributes = Object.keys(attributes).reduce((acc, key) => {
251
+ const {value, lastUpdateTs, lastUpdateUserId} = attributes[key];
252
+ acc.push({key, value, lastUpdateTs, lastUpdateUserId});
253
+ return acc;
254
+ }, []);
255
+
256
+ this.channelEventsMap.get('channelAttributesUpdated')(
257
+ channelAttributes,
258
+ );
215
259
  });
216
260
 
217
261
  return this.channelMap.get(channelId).join();
@@ -266,8 +310,8 @@ export default class RtmEngine {
266
310
 
267
311
  async queryPeersOnlineStatus(uid: Array<String>) {
268
312
  let peerArray: Array<any> = [];
269
- await this.client.queryPeersOnlineStatus(uid).then((list) => {
270
- Object.entries(list).forEach((value) => {
313
+ await this.client.queryPeersOnlineStatus(uid).then(list => {
314
+ Object.entries(list).forEach(value => {
271
315
  peerArray.push({
272
316
  online: value[1],
273
317
  uid: value[0],
@@ -294,6 +338,19 @@ export default class RtmEngine {
294
338
  return response;
295
339
  }
296
340
 
341
+ async getChannelAttributes(channelId: string) {
342
+ let response = {};
343
+ await this.client
344
+ .getChannelAttributes(channelId)
345
+ .then((attributes: string) => {
346
+ response = {attributes};
347
+ })
348
+ .catch((e: any) => {
349
+ Promise.reject(e);
350
+ });
351
+ return response;
352
+ }
353
+
297
354
  async removeAllLocalUserAttributes() {
298
355
  return this.client.clearLocalUserAttributes();
299
356
  }
@@ -304,7 +361,7 @@ export default class RtmEngine {
304
361
 
305
362
  async replaceLocalUserAttributes(attributes: string[]) {
306
363
  let formattedAttributes: any = {};
307
- attributes.map((attribute) => {
364
+ attributes.map(attribute => {
308
365
  let key = Object.values(attribute)[0];
309
366
  let value = Object.values(attribute)[1];
310
367
  formattedAttributes[key] = value;
@@ -314,7 +371,7 @@ export default class RtmEngine {
314
371
 
315
372
  async setLocalUserAttributes(attributes: string[]) {
316
373
  let formattedAttributes: any = {};
317
- attributes.map((attribute) => {
374
+ attributes.map(attribute => {
318
375
  let key = Object.values(attribute)[0];
319
376
  let value = Object.values(attribute)[1];
320
377
  formattedAttributes[key] = value;
@@ -325,7 +382,7 @@ export default class RtmEngine {
325
382
 
326
383
  async addOrUpdateLocalUserAttributes(attributes: RtmAttribute[]) {
327
384
  let formattedAttributes: any = {};
328
- attributes.map((attribute) => {
385
+ attributes.map(attribute => {
329
386
  let key = Object.values(attribute)[0];
330
387
  let value = Object.values(attribute)[1];
331
388
  formattedAttributes[key] = value;
@@ -333,28 +390,22 @@ export default class RtmEngine {
333
390
  return this.client.addOrUpdateLocalUserAttributes({...formattedAttributes});
334
391
  }
335
392
 
336
- addOrUpdateChannelAttributes(
393
+ async addOrUpdateChannelAttributes(
337
394
  channelId: string,
338
395
  attributes: RtmChannelAttribute[],
339
396
  option: ChannelAttributeOptions,
340
397
  ): Promise<void> {
341
- /**
342
- * The following piece of code is commented and not deleted
343
- * to be used in future implementations of channel attributes
344
- */
345
-
346
- // let formattedAttributes: any = {};
347
- // attributes.map((attribute) => {
348
- // let key = Object.values(attribute)[0];
349
- // let value = Object.values(attribute)[1];
350
- // formattedAttributes[key] = value;
351
- // });
352
- // return this.client.addOrUpdateChannelAttributes(
353
- // channelId,
354
- // {...formattedAttributes},
355
- // option,
356
- // );
357
- return Promise.resolve(); // remove this line when functionality is added to the above function
398
+ let formattedAttributes: any = {};
399
+ attributes.map(attribute => {
400
+ let key = Object.values(attribute)[0];
401
+ let value = Object.values(attribute)[1];
402
+ formattedAttributes[key] = value;
403
+ });
404
+ return this.client.addOrUpdateChannelAttributes(
405
+ channelId,
406
+ {...formattedAttributes},
407
+ option,
408
+ );
358
409
  }
359
410
 
360
411
  async sendLocalInvitation(invitationProps: any) {
@@ -12,7 +12,22 @@
12
12
  let jsonFile = require('./config.json');
13
13
  let PREFIX = '$config';
14
14
  let config = {};
15
- Object.keys(jsonFile).map((key) => {
15
+ Object.keys(jsonFile).map(key => {
16
16
  config[`${PREFIX}.${key}`] = jsonFile[key];
17
17
  });
18
+
19
+ //find any missing config
20
+ const defaultConfig = require('./defaultConfig');
21
+ const filteredArray = Object.keys(defaultConfig).filter(
22
+ value => !Object.keys(jsonFile).includes(value),
23
+ );
24
+
25
+ //add missing config with default value
26
+ if (filteredArray && filteredArray?.length) {
27
+ //console.error('config.json missing ', filteredArray);
28
+ filteredArray.forEach(i => {
29
+ config[`${PREFIX}.${i}`] = defaultConfig[i];
30
+ });
31
+ }
32
+
18
33
  module.exports = config;
@@ -1,22 +1,10 @@
1
1
  //hooks used for create/join meeting
2
- export {default as useCreateMeeting} from '../src/utils/useCreateMeeting';
3
- export {default as useJoinMeeting} from '../src/utils/useJoinMeeting';
4
-
5
- //mute local audio state
6
- export {
7
- MUTE_LOCAL_TYPE,
8
- default as useMuteToggleLocal,
9
- } from '../src/utils/useMuteToggleLocal';
2
+ export {default as useCreateRoom} from '../src/utils/useCreateRoom';
3
+ export {default as useJoinRoom} from '../src/utils/useJoinRoom';
10
4
 
11
5
  //remove remote user from the call
12
6
  export {default as useRemoteEndcall} from '../src/utils/useRemoteEndCall';
13
-
14
- //mute remote user audio/video
15
- export {
16
- default as useRemoteMute,
17
- MUTE_REMOTE_TYPE,
18
- } from '../src/utils/useRemoteMute';
7
+ //switch camera
8
+ export {default as useSwitchCamera} from '../src/utils/useSwitchCamera';
19
9
 
20
10
  export {controlMessageEnum} from '../src/components/ChatContext';
21
- //audio/video toggle state
22
- export {ToggleState} from '../agora-rn-uikit/src/Contexts/PropsContext';
@@ -2,7 +2,7 @@
2
2
  * Core contexts
3
3
  */
4
4
  import {createHook} from 'customization-implementation';
5
- import {RtcContext, RenderContext} from '../agora-rn-uikit';
5
+ import {RtcContext, ContentContext} from '../agora-rn-uikit';
6
6
 
7
7
  // commented for v1 release
8
8
  //import {default as DeviceContext} from '../src/components/DeviceContext';
@@ -14,7 +14,7 @@ export const useRtc = createHook(RtcContext);
14
14
  /**
15
15
  * The Render app state governs the information necessary to render each user content view displayed in the videocall screen.
16
16
  */
17
- export const useRender = createHook(RenderContext);
17
+ export const useContent = createHook(ContentContext);
18
18
 
19
19
  export {useLocalUserInfo} from '../src/app-state/useLocalUserInfo';
20
20
 
@@ -26,8 +26,8 @@ export {useLocalUserInfo} from '../src/app-state/useLocalUserInfo';
26
26
  * UI contexts
27
27
  */
28
28
  // commented for v1 release
29
- //export {usePreCall} from '../src/components/precall/usePreCall';
30
- //export type {PreCallContextInterface} from '../src/components/precall/usePreCall';
29
+ export {usePreCall} from '../src/components/precall/usePreCall';
30
+ export type {PreCallContextInterface} from '../src/components/precall/usePreCall';
31
31
  export {useLayout} from '../src/utils/useLayout';
32
32
  export type {LayoutContextInterface} from '../src/utils/useLayout';
33
33
  // commented for v1 release
@@ -40,14 +40,24 @@ export type {LayoutContextInterface} from '../src/utils/useLayout';
40
40
  // export type {ScreenshareContextInterface} from '../src/subComponents/screenshare/useScreenshare';
41
41
  export {useRecording} from '../src/subComponents/recording/useRecording';
42
42
  export type {RecordingContextInterface} from '../src/subComponents/recording/useRecording';
43
- export {useMeetingInfo} from '../src/components/meeting-info/useMeetingInfo';
44
- export type {MeetingInfoContextInterface} from '../src/components/meeting-info/useMeetingInfo';
45
- export {useChatUIControl} from '../src/components/chat-ui/useChatUIControl';
46
- export type {ChatUIControlInterface} from '../src/components/chat-ui/useChatUIControl';
43
+ export {useRoomInfo} from '../src/components/room-info/useRoomInfo';
44
+ export type {RoomInfoContextInterface} from '../src/components/room-info/useRoomInfo';
47
45
  export {useMessages} from '../src/app-state/useMessages';
48
46
  export type {messageInterface} from '../src/app-state/useMessages';
49
47
  export {SidePanelType} from '../src/subComponents/SidePanelEnum';
50
48
  export {useSidePanel} from '../src/utils/useSidePanel';
51
49
 
50
+ export {useNoiseSupression} from '../src/app-state/useNoiseSupression';
51
+ export {useVideoQuality} from '../src/app-state/useVideoQuality';
52
+
52
53
  //hook used to get/set username
53
54
  export {default as useUserName} from '../src/utils/useUserName';
55
+
56
+ export {
57
+ useChatUIControls,
58
+ ChatType,
59
+ } from '../src/components/chat-ui/useChatUIControls';
60
+ export type {ChatUIControlsInterface} from '../src/components/chat-ui/useChatUIControls';
61
+ export {useVirtualBackground} from '../src/app-state/useVirtualBackground';
62
+ export {useBeautyEffects} from '../src/app-state/useBeautyEffects';
63
+ export {useLiveStreamDataContext} from '../src/components/contexts/LiveStreamDataContext';
@@ -0,0 +1,8 @@
1
+ export {default as UserAvatar} from '../src/atoms/UserAvatar';
2
+ export {default as ImageIcon} from '../src/atoms/ImageIcon';
3
+ export {default as Checkbox} from '../src/atoms/Checkbox';
4
+ export {default as Spacer} from '../src/atoms/Spacer';
5
+ export {default as LinkButton} from '../src/atoms/LinkButton';
6
+ export {default as PrimaryButton} from '../src/atoms/PrimaryButton';
7
+ export {default as TertiaryButton} from '../src/atoms/TertiaryButton';
8
+ export {default as ActionMenu} from '../src/atoms/ActionMenu';
@@ -1,9 +1,14 @@
1
1
  // 1. Import Events
2
2
  import Events from '../src/rtm-events-api/Events';
3
- import {EventSource} from '../src/rtm-events-api';
3
+ import {
4
+ EventSource,
5
+ PersistanceLevel,
6
+ EventCallback,
7
+ } from '../src/rtm-events-api';
4
8
 
5
9
  // 2. Initialize with source "fpe"
6
10
  const customEvents = new Events(EventSource.fpe);
7
11
 
8
12
  // 3. export
9
- export {customEvents};
13
+ export {customEvents, PersistanceLevel};
14
+ export type {EventCallback};