agora-appbuilder-core 4.0.0 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/package.json +3 -3
  2. package/template/.bundle/config +2 -0
  3. package/template/Gemfile +4 -0
  4. package/template/Gulpfile.js +29 -29
  5. package/template/_eslintrc.js +3 -3
  6. package/template/_gitignore +12 -11
  7. package/template/_package-lock.json +28491 -23647
  8. package/template/_prettierrc.js +2 -2
  9. package/template/agora-rn-uikit/.eslintrc.js +5 -0
  10. package/template/agora-rn-uikit/package.json +14 -14
  11. package/template/agora-rn-uikit/src/AgoraUIKit.tsx +6 -6
  12. package/template/agora-rn-uikit/src/Contexts/ContentContext.tsx +10 -0
  13. package/template/agora-rn-uikit/src/Contexts/DispatchContext.tsx +22 -0
  14. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +6 -6
  15. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +79 -38
  16. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +26 -17
  17. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +1 -0
  18. package/template/agora-rn-uikit/src/Controls/Icons.ts +45 -0
  19. package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -4
  20. package/template/agora-rn-uikit/src/Controls/Local/FullScreen.tsx +3 -1
  21. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +5 -2
  22. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +5 -2
  23. package/template/agora-rn-uikit/src/Controls/Local/Recording.tsx +0 -2
  24. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +7 -6
  25. package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +5 -5
  26. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +5 -4
  27. package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +3 -1
  28. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +5 -4
  29. package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +2 -2
  30. package/template/agora-rn-uikit/src/Reducer/ActiveSpeaker.ts +30 -0
  31. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +8 -7
  32. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +8 -7
  33. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +6 -7
  34. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +7 -8
  35. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +9 -9
  36. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +7 -8
  37. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +14 -13
  38. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +6 -7
  39. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +6 -7
  40. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +5 -6
  41. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +20 -3
  42. package/template/agora-rn-uikit/src/Reducer/UserSecondaryPin.ts +23 -0
  43. package/template/agora-rn-uikit/src/Reducer/index.ts +2 -1
  44. package/template/agora-rn-uikit/src/Rtc/Create.tsx +138 -100
  45. package/template/agora-rn-uikit/src/Rtc/Join.tsx +55 -28
  46. package/template/agora-rn-uikit/src/RtcConfigure.tsx +177 -77
  47. package/template/agora-rn-uikit/src/Utils/isBotUser.ts +15 -0
  48. package/template/agora-rn-uikit/src/Utils/quality.tsx +8 -0
  49. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +56 -12
  50. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +47 -17
  51. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +19 -11
  52. package/template/agora-rn-uikit/src/index.ts +15 -9
  53. package/template/android/app/build.gradle +59 -156
  54. package/template/android/app/src/debug/AndroidManifest.xml +6 -1
  55. package/template/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java +7 -4
  56. package/template/android/app/src/main/AndroidManifest.xml +6 -19
  57. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  58. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +17 -0
  59. package/template/android/app/src/main/java/com/helloworld/MainApplication.java +22 -36
  60. package/template/android/app/src/main/java/com/helloworld/SSLPinningFactory.java +30 -0
  61. package/template/android/app/src/main/res/values/strings.xml +3 -0
  62. package/template/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java +20 -0
  63. package/template/android/build.gradle +19 -33
  64. package/template/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  65. package/template/android/gradle/wrapper/gradle-wrapper.properties +3 -2
  66. package/template/android/gradle.properties +18 -4
  67. package/template/android/gradlew +165 -104
  68. package/template/android/gradlew.bat +12 -23
  69. package/template/android/settings.gradle +1 -0
  70. package/template/bridge/rtc/webNg/RtcEngine.ts +200 -70
  71. package/template/bridge/rtc/webNg/{SurfaceView.tsx → RtcSurfaceView.tsx} +20 -26
  72. package/template/bridge/rtc/webNg/Types.ts +20 -5
  73. package/template/bridge/rtc/webNg/index.ts +81 -14
  74. package/template/bridge/rtm/web/index.ts +5 -3
  75. package/template/configTransform.js +16 -1
  76. package/template/customization-api/action-library.ts +4 -16
  77. package/template/customization-api/app-state.ts +15 -8
  78. package/template/customization-api/customEvents.ts +7 -2
  79. package/template/customization-api/customize.ts +1 -1
  80. package/template/customization-api/index.ts +4 -0
  81. package/template/customization-api/sub-components.ts +17 -16
  82. package/template/customization-api/temp.ts +52 -0
  83. package/template/customization-api/typeDefinition.ts +34 -46
  84. package/template/customization-api/types.ts +26 -0
  85. package/template/customization-api/utils.ts +4 -0
  86. package/template/customization-implementation/createHook.ts +24 -6
  87. package/template/customization-implementation/index.ts +1 -2
  88. package/template/customization-implementation/useCustomization.tsx +5 -7
  89. package/template/defaultConfig.js +72 -0
  90. package/template/global.d.ts +14 -1
  91. package/template/index.js +1 -4
  92. package/template/index.web.js +0 -5
  93. package/template/index.wsdk.tsx +1 -12
  94. package/template/ios/.xcode.env +11 -0
  95. package/template/ios/HelloWorld/AppDelegate.h +2 -4
  96. package/template/ios/HelloWorld/AppDelegate.mm +64 -0
  97. package/template/ios/HelloWorld/HelloWorldDebug.entitlements +10 -0
  98. package/template/ios/HelloWorld/Info.plist +8 -2
  99. package/template/ios/HelloWorld/main.m +2 -1
  100. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +533 -17
  101. package/template/ios/HelloWorld.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  102. package/template/ios/HelloWorld.xcworkspace/contents.xcworkspacedata +10 -0
  103. package/template/ios/HelloWorld.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  104. package/template/ios/HelloWorldTests/HelloWorldTests.m +14 -13
  105. package/template/ios/HelloWorldTests/Info.plist +2 -2
  106. package/template/ios/Podfile +54 -20
  107. package/template/ios/Podfile.lock +809 -0
  108. package/template/ios/ScreenSharing/Info.plist +15 -0
  109. package/template/ios/ScreenSharing/SampleHandler.h +9 -0
  110. package/template/ios/ScreenSharing/SampleHandler.m +70 -0
  111. package/template/jest.config.js +4 -0
  112. package/template/metro.config.js +7 -32
  113. package/template/package.json +53 -39
  114. package/template/react-native-toast-message/index.d.ts +3 -1
  115. package/template/react-native-toast-message/index.js +1 -0
  116. package/template/react-native-toast-message/src/components/base/index.js +20 -32
  117. package/template/react-native-toast-message/src/components/base/styles.js +18 -21
  118. package/template/react-native-toast-message/src/components/checkbox.js +24 -19
  119. package/template/react-native-toast-message/src/index.js +3 -1
  120. package/template/react-native-toast-message/src/index.sdk.tsx +4 -1
  121. package/template/src/App.tsx +53 -69
  122. package/template/src/AppRoutes.tsx +90 -0
  123. package/template/src/AppWrapper.tsx +42 -25
  124. package/template/src/SDKAppWrapper.tsx +90 -57
  125. package/template/src/app-state/useLocalUserInfo.ts +3 -3
  126. package/template/src/app-state/useNoiseSupression.native.tsx +67 -0
  127. package/template/src/app-state/useNoiseSupression.tsx +107 -0
  128. package/template/src/app-state/useVideoQuality.tsx +39 -0
  129. package/template/src/assets/font-styles.css +175 -3
  130. package/template/src/assets/fonts/icomoon.ttf +0 -0
  131. package/template/src/assets/selection.json +1 -1
  132. package/template/src/atoms/ActionMenu.tsx +50 -11
  133. package/template/src/atoms/Avatar.tsx +51 -0
  134. package/template/src/atoms/Card.tsx +21 -8
  135. package/template/src/atoms/Carousel.native.tsx +105 -0
  136. package/template/src/atoms/Carousel.tsx +103 -0
  137. package/template/src/atoms/Checkbox.tsx +98 -0
  138. package/template/src/atoms/CircularProgress.tsx +0 -1
  139. package/template/src/atoms/ClipboardIconButton.tsx +91 -0
  140. package/template/src/atoms/CustomIcon.tsx +46 -0
  141. package/template/src/atoms/DropDownMulti.tsx +349 -0
  142. package/template/src/atoms/Dropdown.tsx +3 -3
  143. package/template/src/atoms/IconButton.tsx +52 -9
  144. package/template/src/atoms/ImageIcon.tsx +18 -5
  145. package/template/src/atoms/InlineNotification.tsx +81 -0
  146. package/template/src/atoms/InviteInfo.tsx +4 -4
  147. package/template/src/atoms/MeetingLink.tsx +160 -0
  148. package/template/src/atoms/ParticipantsCount.tsx +20 -8
  149. package/template/src/atoms/Popup.tsx +49 -27
  150. package/template/src/atoms/PrimaryButton.tsx +19 -5
  151. package/template/src/atoms/RecordingInfo.tsx +8 -5
  152. package/template/src/atoms/SecondaryButton.tsx +2 -0
  153. package/template/src/atoms/Spacer.tsx +1 -0
  154. package/template/src/atoms/TertiaryButton.tsx +35 -5
  155. package/template/src/atoms/TextInput.tsx +2 -1
  156. package/template/src/atoms/Toolbar.tsx +102 -0
  157. package/template/src/atoms/ToolbarItem.tsx +85 -0
  158. package/template/src/atoms/ToolbarMenu.tsx +40 -0
  159. package/template/src/atoms/ToolbarMenuItem.tsx +104 -0
  160. package/template/src/atoms/ToolbarPreset.tsx +71 -0
  161. package/template/src/atoms/Tooltip.tsx +30 -13
  162. package/template/src/atoms/pagination/Pagination.tsx +127 -0
  163. package/template/src/atoms/pagination/usePagination.tsx +88 -0
  164. package/template/src/auth/AuthProvider.tsx +500 -0
  165. package/template/src/auth/AuthRoute.tsx +94 -0
  166. package/template/src/auth/IDPAuth.electron.tsx +31 -0
  167. package/template/src/auth/IDPAuth.tsx +67 -0
  168. package/template/src/auth/IDPLogoutComponent.tsx +158 -0
  169. package/template/src/auth/UserCancelPopup.tsx +115 -0
  170. package/template/src/auth/config.ts +52 -0
  171. package/template/src/auth/openIDPURL.electron.tsx +39 -0
  172. package/template/src/auth/openIDPURL.native.tsx +51 -0
  173. package/template/src/auth/openIDPURL.tsx +20 -0
  174. package/template/src/auth/useIDPAuth.electron.tsx +65 -0
  175. package/template/src/auth/useIDPAuth.native.tsx +70 -0
  176. package/template/src/auth/useIDPAuth.tsx +63 -0
  177. package/template/src/auth/useTokenAuth.tsx +194 -0
  178. package/template/src/components/Chat.tsx +92 -72
  179. package/template/src/components/ChatContext.ts +2 -0
  180. package/template/src/components/ColorConfigure.tsx +0 -1
  181. package/template/src/components/CommonStyles.ts +9 -2
  182. package/template/src/components/Controls.tsx +914 -182
  183. package/template/src/components/Controls1.native.tsx +9 -5
  184. package/template/src/components/DeviceConfigure.native.tsx +2 -2
  185. package/template/src/components/DeviceConfigure.tsx +400 -149
  186. package/template/src/components/DeviceContext.tsx +2 -0
  187. package/template/src/components/EventsConfigure.tsx +722 -82
  188. package/template/src/components/GraphQLProvider.tsx +82 -39
  189. package/template/src/components/GridVideo.tsx +30 -16
  190. package/template/src/components/HostControlView.tsx +11 -14
  191. package/template/src/components/JoinPhrase.tsx +0 -1
  192. package/template/src/components/Leftbar.tsx +110 -0
  193. package/template/src/components/Navbar.tsx +305 -147
  194. package/template/src/components/NavbarMobile.tsx +119 -0
  195. package/template/src/components/Navigation.native.tsx +1 -15
  196. package/template/src/components/{Settings.native.tsx → Navigation.sdk.tsx} +17 -6
  197. package/template/src/components/NetworkQualityContext.tsx +12 -6
  198. package/template/src/components/ParticipantsView.tsx +63 -56
  199. package/template/src/components/PinnedVideo.tsx +191 -119
  200. package/template/src/components/Precall.native.tsx +177 -72
  201. package/template/src/components/Precall.tsx +247 -78
  202. package/template/src/components/RTMConfigure.tsx +205 -67
  203. package/template/src/components/Rightbar.tsx +112 -0
  204. package/template/src/components/Router.electron.ts +1 -0
  205. package/template/src/components/Router.native.ts +1 -0
  206. package/template/src/components/Router.sdk.ts +1 -0
  207. package/template/src/components/Router.ts +1 -0
  208. package/template/src/components/SdkApiContext.tsx +313 -0
  209. package/template/src/components/SdkMuteToggleListener.tsx +88 -0
  210. package/template/src/components/SessionContext.tsx +0 -1
  211. package/template/src/components/Settings.tsx +33 -4
  212. package/template/src/components/SettingsView.tsx +44 -9
  213. package/template/src/components/Share.tsx +152 -74
  214. package/template/src/components/StorageContext.tsx +23 -6
  215. package/template/src/components/ToastComponent.tsx +10 -1
  216. package/template/src/components/WhiteboardLayout.tsx +291 -0
  217. package/template/src/components/chat-messages/useChatMessages.tsx +454 -239
  218. package/template/src/components/chat-ui/{useChatUIControl.tsx → useChatUIControls.tsx} +29 -29
  219. package/template/src/components/common/Error.tsx +2 -0
  220. package/template/src/components/common/Logo.tsx +2 -2
  221. package/template/src/components/contexts/LiveStreamDataContext.tsx +13 -12
  222. package/template/src/components/contexts/ScreenShareContext.tsx +15 -1
  223. package/template/src/components/contexts/VideoMeetingDataContext.tsx +6 -6
  224. package/template/src/components/contexts/WaitingRoomContext.tsx +50 -0
  225. package/template/src/components/contexts/WhiteboardContext.tsx +54 -54
  226. package/template/src/components/disable-chat/useDisableChat.tsx +32 -0
  227. package/template/src/components/livestream/LiveStreamContext.tsx +314 -220
  228. package/template/src/components/livestream/Types.ts +36 -20
  229. package/template/src/components/livestream/views/LiveStreamAttendeeLandingTile.tsx +295 -0
  230. package/template/src/components/livestream/views/LiveStreamControls.tsx +5 -10
  231. package/template/src/components/meeting-info-invite/MeetingInfo.tsx +82 -0
  232. package/template/src/components/meeting-info-invite/MeetingInfoCardHeader.tsx +86 -0
  233. package/template/src/components/meeting-info-invite/MeetingInfoGridTile.tsx +218 -0
  234. package/template/src/components/meeting-info-invite/MeetingInfoLinks.tsx +122 -0
  235. package/template/src/components/participants/AllAudienceParticipants.tsx +19 -20
  236. package/template/src/components/participants/AllHostParticipants.tsx +20 -19
  237. package/template/src/components/participants/Participant.tsx +45 -16
  238. package/template/src/components/participants/ParticipantSectionTitle.tsx +5 -2
  239. package/template/src/components/participants/ScreenshareParticipants.tsx +17 -19
  240. package/template/src/components/participants/UserActionMenuOptions.tsx +173 -62
  241. package/template/src/components/participants/WaitingRoomParticipants.tsx +74 -0
  242. package/template/src/components/popups/InvitePopup.tsx +110 -45
  243. package/template/src/components/popups/StartScreenSharePopup.native.tsx +182 -0
  244. package/template/src/components/popups/StartScreenSharePopup.tsx +6 -0
  245. package/template/src/components/popups/StopRecordingPopup.tsx +11 -5
  246. package/template/src/components/popups/StopScreenSharePopup.native.tsx +135 -0
  247. package/template/src/components/popups/StopScreenSharePopup.tsx +6 -0
  248. package/template/src/components/popups/WhiteboardClearAllPopup.tsx +123 -0
  249. package/template/src/components/precall/LocalMute.tsx +69 -45
  250. package/template/src/components/precall/PermissionHelper.tsx +56 -28
  251. package/template/src/components/precall/PreCallSettings.tsx +1 -0
  252. package/template/src/components/precall/VideoFallback.tsx +173 -0
  253. package/template/src/components/precall/VideoPreview.native.tsx +19 -53
  254. package/template/src/components/precall/VideoPreview.tsx +29 -164
  255. package/template/src/components/precall/index.tsx +2 -0
  256. package/template/src/components/precall/joinCallBtn.native.tsx +12 -5
  257. package/template/src/components/precall/joinCallBtn.tsx +13 -4
  258. package/template/src/components/precall/joinWaitingRoomBtn.native.tsx +210 -0
  259. package/template/src/components/precall/joinWaitingRoomBtn.tsx +250 -0
  260. package/template/src/components/precall/meetingTitle.tsx +37 -11
  261. package/template/src/components/precall/selectDevice.tsx +5 -5
  262. package/template/src/components/precall/textInput.tsx +17 -19
  263. package/template/src/components/precall/usePreCall.tsx +33 -1
  264. package/template/src/components/recording-bot/RecordingBotRoute.tsx +42 -0
  265. package/template/src/components/recordings/RecordingsDateTable.tsx +62 -0
  266. package/template/src/components/recordings/RecordingsModal.tsx +135 -0
  267. package/template/src/components/recordings/ViewRecordingsModal.tsx +51 -0
  268. package/template/src/components/recordings/recording-table.tsx +154 -0
  269. package/template/src/components/recordings/style.ts +183 -0
  270. package/template/src/components/recordings/utils.ts +80 -0
  271. package/template/src/components/room-info/useRoomInfo.tsx +128 -0
  272. package/template/src/components/{meeting-info/useSetMeetingInfo.tsx → room-info/useSetRoomInfo.tsx} +12 -12
  273. package/template/src/components/useShareLink.tsx +28 -63
  274. package/template/src/components/useUserPreference.tsx +82 -16
  275. package/template/src/components/useVideoCall.tsx +93 -1
  276. package/template/src/components/virtual-background/VBButton.tsx +64 -0
  277. package/template/src/components/virtual-background/VBCard.native.tsx +282 -0
  278. package/template/src/components/virtual-background/VBCard.tsx +272 -0
  279. package/template/src/components/virtual-background/VBPanel.tsx +279 -0
  280. package/template/src/components/virtual-background/VButils.native.ts +37 -0
  281. package/template/src/components/virtual-background/VButils.ts +104 -0
  282. package/template/src/components/virtual-background/VideoPreview.native.tsx +43 -0
  283. package/template/src/components/virtual-background/VideoPreview.tsx +106 -0
  284. package/template/src/components/virtual-background/imagePaths.ts +87 -0
  285. package/template/src/components/virtual-background/images/beachImageBase64.ts +1 -0
  286. package/template/src/components/virtual-background/images/bedroomImageBase64.ts +1 -0
  287. package/template/src/components/virtual-background/images/bookImageBase64.ts +1 -0
  288. package/template/src/components/virtual-background/images/earthImageBase64.ts +1 -0
  289. package/template/src/components/virtual-background/images/index.ts +37 -0
  290. package/template/src/components/virtual-background/images/lampImageBase64.ts +1 -0
  291. package/template/src/components/virtual-background/images/mountainsImageBase64.ts +1 -0
  292. package/template/src/components/virtual-background/images/office1ImageBase64.ts +1 -0
  293. package/template/src/components/virtual-background/images/officeImageBase64.ts +1 -0
  294. package/template/src/components/virtual-background/images/plantsImageBase64.ts +1 -0
  295. package/template/src/components/virtual-background/images/skyImageBase64.ts +1 -0
  296. package/template/src/components/virtual-background/images/wallImageBase64.ts +1 -0
  297. package/template/src/components/virtual-background/useVB.native.tsx +185 -0
  298. package/template/src/components/virtual-background/useVB.tsx +267 -0
  299. package/template/src/components/whiteboard/StrokeWidthTool.tsx +137 -0
  300. package/template/src/components/whiteboard/WhiteboardButton.tsx +93 -0
  301. package/template/src/components/whiteboard/WhiteboardCanvas.tsx +99 -0
  302. package/template/src/components/whiteboard/WhiteboardConfigure.native.tsx +148 -0
  303. package/template/src/components/whiteboard/WhiteboardConfigure.tsx +446 -0
  304. package/template/src/components/whiteboard/WhiteboardCursor.tsx +152 -0
  305. package/template/src/components/whiteboard/WhiteboardToolBox.tsx +1246 -0
  306. package/template/src/components/whiteboard/WhiteboardView.native.tsx +188 -0
  307. package/template/src/components/whiteboard/WhiteboardView.tsx +81 -0
  308. package/template/src/components/whiteboard/WhiteboardWidget.tsx +685 -0
  309. package/template/src/components/whiteboard/WhiteboardWrapper.tsx +38 -0
  310. package/template/src/language/default-labels/commonLabels.ts +51 -14
  311. package/template/src/language/default-labels/createScreenLabels.ts +97 -17
  312. package/template/src/language/default-labels/joinScreenLabels.ts +45 -6
  313. package/template/src/language/default-labels/precallScreenLabels.ts +149 -25
  314. package/template/src/language/default-labels/shareLinkScreenLabels.ts +85 -37
  315. package/template/src/language/default-labels/videoCallScreenLabels.ts +1195 -158
  316. package/template/src/pages/Create.tsx +136 -106
  317. package/template/src/pages/Endcall.tsx +2 -2
  318. package/template/src/pages/Join.tsx +82 -40
  319. package/template/src/pages/Login.tsx +26 -0
  320. package/template/src/pages/VideoCall.tsx +329 -127
  321. package/template/src/pages/video-call/ActionSheet.native.tsx +54 -6
  322. package/template/src/pages/video-call/ActionSheet.tsx +55 -15
  323. package/template/src/pages/video-call/ActionSheetContent.tsx +498 -308
  324. package/template/src/pages/video-call/ActionSheetHandle.tsx +7 -1
  325. package/template/src/pages/video-call/DefaultLayouts.ts +20 -8
  326. package/template/src/pages/video-call/NameWithMicIcon.tsx +41 -64
  327. package/template/src/pages/video-call/PinchableView.tsx +119 -0
  328. package/template/src/pages/video-call/RenderComponent.tsx +14 -30
  329. package/template/src/pages/video-call/SidePanelHeader.tsx +227 -29
  330. package/template/src/pages/video-call/VideoCallMobileView.tsx +231 -89
  331. package/template/src/pages/video-call/VideoCallScreen.native.tsx +3 -2
  332. package/template/src/pages/video-call/VideoCallScreen.tsx +233 -84
  333. package/template/src/pages/video-call/VideoCallScreenWrapper.tsx +41 -0
  334. package/template/src/pages/video-call/VideoComponent.tsx +60 -8
  335. package/template/src/pages/video-call/VideoRenderer.tsx +343 -57
  336. package/template/src/pages/video-call/VisibilitySensor.tsx +104 -0
  337. package/template/src/pages/video-call/ZoomableWrapper.native.tsx +34 -0
  338. package/template/src/pages/video-call/ZoomableWrapper.tsx +5 -0
  339. package/template/src/pages/video-call/index.ts +42 -8
  340. package/template/src/rtm/RTMEngine.ts +17 -4
  341. package/template/src/rtm-events/constants.ts +21 -3
  342. package/template/src/rtm-events-api/Events.ts +7 -4
  343. package/template/src/rtm-events-api/LocalEvents.ts +14 -0
  344. package/template/src/rtm-events-api/types.ts +5 -5
  345. package/template/src/selection.json +1 -0
  346. package/template/src/subComponents/ChatBubble.tsx +87 -67
  347. package/template/src/subComponents/ChatContainer.tsx +70 -49
  348. package/template/src/subComponents/ChatInput.ios.tsx +32 -85
  349. package/template/src/subComponents/ChatInput.tsx +31 -80
  350. package/template/src/subComponents/Checkbox.native.tsx +46 -46
  351. package/template/src/subComponents/Checkbox.tsx +7 -6
  352. package/template/src/subComponents/CopyJoinInfo.tsx +31 -11
  353. package/template/src/subComponents/EndcallPopup.tsx +83 -12
  354. package/template/src/subComponents/FallbackLogo.tsx +2 -2
  355. package/template/src/subComponents/LanguageSelector.tsx +34 -30
  356. package/template/src/subComponents/LayoutIconButton.tsx +34 -17
  357. package/template/src/subComponents/LayoutIconDropdown.tsx +21 -8
  358. package/template/src/subComponents/Loading.tsx +60 -0
  359. package/template/src/subComponents/LocalAudioMute.tsx +87 -34
  360. package/template/src/subComponents/LocalEndCall.tsx +61 -24
  361. package/template/src/subComponents/LocalSwitchCamera.tsx +57 -13
  362. package/template/src/subComponents/LocalVideoMute.tsx +105 -36
  363. package/template/src/subComponents/LogoutButton.tsx +1 -1
  364. package/template/src/subComponents/NetworkQualityPill.tsx +22 -38
  365. package/template/src/subComponents/Recording.tsx +29 -9
  366. package/template/src/subComponents/RemoteAudioMute.tsx +5 -5
  367. package/template/src/subComponents/RemoteMutePopup.tsx +55 -14
  368. package/template/src/subComponents/RemoteVideoMute.tsx +5 -5
  369. package/template/src/subComponents/RemoveMeetingPopup.tsx +19 -6
  370. package/template/src/subComponents/RemoveScreensharePopup.tsx +20 -5
  371. package/template/src/subComponents/ScreenShareNotice.tsx +11 -6
  372. package/template/src/subComponents/SelectDevice.tsx +103 -34
  373. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +9 -6
  374. package/template/src/subComponents/SidePanelButtons.ts +0 -3
  375. package/template/src/subComponents/SidePanelEnum.tsx +2 -0
  376. package/template/src/subComponents/SidePanelHeader.tsx +97 -63
  377. package/template/src/subComponents/ToastConfig.tsx +70 -61
  378. package/template/src/subComponents/caption/Caption.tsx +132 -0
  379. package/template/src/subComponents/caption/CaptionContainer.tsx +302 -0
  380. package/template/src/subComponents/caption/CaptionIcon.tsx +111 -0
  381. package/template/src/subComponents/caption/CaptionText.tsx +182 -0
  382. package/template/src/subComponents/caption/DownloadTranscriptBtn.tsx +65 -0
  383. package/template/src/subComponents/caption/LanguageSelectorPopup.tsx +192 -0
  384. package/template/src/subComponents/caption/Transcript.tsx +452 -0
  385. package/template/src/subComponents/caption/TranscriptIcon.tsx +123 -0
  386. package/template/src/subComponents/caption/TranscriptText.tsx +98 -0
  387. package/template/src/subComponents/caption/index.ts +3 -0
  388. package/template/src/subComponents/caption/proto/ptoto.js +91 -0
  389. package/template/src/subComponents/caption/proto/test.proto +23 -0
  390. package/template/src/subComponents/caption/useCaption.tsx +123 -0
  391. package/template/src/subComponents/caption/useCaptionWidth.ts +27 -0
  392. package/template/src/subComponents/caption/useSTTAPI.tsx +179 -0
  393. package/template/src/subComponents/caption/useStreamMessageUtils.native.ts +211 -0
  394. package/template/src/subComponents/caption/useStreamMessageUtils.ts +235 -0
  395. package/template/src/subComponents/caption/useTranscriptDownload.native.ts +63 -0
  396. package/template/src/subComponents/caption/useTranscriptDownload.ts +52 -0
  397. package/template/src/subComponents/caption/utils.ts +126 -0
  398. package/template/src/subComponents/chat/ChatParticipants.tsx +60 -24
  399. package/template/src/subComponents/livestream/ApprovedLiveStreamControlsView.tsx +2 -2
  400. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +19 -20
  401. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +66 -35
  402. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +3 -2
  403. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +10 -6
  404. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +28 -19
  405. package/template/src/subComponents/recording/useIsRecordingBot.tsx +38 -0
  406. package/template/src/subComponents/recording/useRecording.tsx +251 -138
  407. package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +0 -1
  408. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +39 -15
  409. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +275 -69
  410. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +193 -124
  411. package/template/src/subComponents/screenshare/useScreenshare.tsx +2 -0
  412. package/template/src/subComponents/waiting-rooms/WaitingRoomControls.tsx +85 -0
  413. package/template/src/subComponents/waiting-rooms/useWaitingRoomAPI.ts +75 -0
  414. package/template/src/theme/index.ts +13 -0
  415. package/template/src/utils/SdkEvents.ts +37 -14
  416. package/template/src/utils/SdkMethodEvents.ts +101 -0
  417. package/template/src/utils/axiomLogger.ts +117 -0
  418. package/template/src/utils/book.jpg +0 -0
  419. package/template/src/utils/common.tsx +118 -6
  420. package/template/src/utils/constants.ts +4 -0
  421. package/template/src/utils/getCustomRoute.ts +7 -0
  422. package/template/src/utils/index.tsx +34 -0
  423. package/template/src/utils/useActionSheet.tsx +50 -0
  424. package/template/src/utils/useActiveSpeaker.ts +38 -0
  425. package/template/src/utils/useAppState.ts +17 -0
  426. package/template/src/utils/useAsyncEffect.ts +138 -0
  427. package/template/src/utils/{useCreateMeeting.ts → useCreateRoom.ts} +27 -26
  428. package/template/src/utils/useEndCall.ts +65 -0
  429. package/template/src/utils/useFindActiveSpeaker.native.ts +4 -0
  430. package/template/src/utils/useFindActiveSpeaker.ts +335 -0
  431. package/template/src/utils/useGetMeetingPhrase.ts +10 -10
  432. package/template/src/utils/useIsAudioEnabled.ts +3 -3
  433. package/template/src/utils/useIsLocalUserSpeaking.native.ts +4 -0
  434. package/template/src/utils/useIsLocalUserSpeaking.ts +103 -0
  435. package/template/src/utils/useIsPSTN.ts +3 -3
  436. package/template/src/utils/useIsVideoEnabled.ts +3 -3
  437. package/template/src/utils/useJoinRoom.ts +199 -0
  438. package/template/src/utils/{useIsActiveSpeaker.ts → useLocalAudio.ts} +23 -12
  439. package/template/src/{components/OAuth.tsx → utils/useMenu.tsx} +16 -15
  440. package/template/src/utils/useModal.tsx +8 -0
  441. package/template/src/utils/useMutePSTN.ts +2 -2
  442. package/template/src/utils/useMuteToggleLocal.ts +121 -96
  443. package/template/src/utils/useRemoteEndCall.ts +4 -4
  444. package/template/src/utils/useRemoteEndScreenshare.ts +4 -4
  445. package/template/src/utils/useRemoteMute.ts +7 -7
  446. package/template/src/utils/useRemoteRequest.ts +7 -7
  447. package/template/src/utils/useSearchParams.tsx +28 -0
  448. package/template/src/utils/useString.ts +13 -3
  449. package/template/src/utils/useSwitchCamera.native.tsx +25 -0
  450. package/template/src/{subComponents/screenshare/ScreenshareButton.native.tsx → utils/useSwitchCamera.tsx} +12 -11
  451. package/template/src/utils/useToolbar.tsx +59 -0
  452. package/template/src/wasms/agora-virtual-background.wasm +0 -0
  453. package/template/static.d.ts +42 -0
  454. package/template/tsconfig_rsdk_index.json +3 -3
  455. package/template/tsconfig_wsdk_index.json +1 -1
  456. package/template/web/index.html +20 -0
  457. package/template/webpack.commons.js +21 -10
  458. package/template/webpack.rsdk.config.js +1 -2
  459. package/template/webpack.web.config.js +7 -3
  460. package/template/_buckconfig +0 -6
  461. package/template/_gitattributes +0 -1
  462. package/template/agora-rn-uikit/src/Contexts/RenderContext.tsx +0 -10
  463. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  464. package/template/android/app/_BUCK +0 -55
  465. package/template/android/app/build_defs.bzl +0 -19
  466. package/template/bridge/rtc/webNg/LocalView.tsx +0 -20
  467. package/template/ios/HelloWorld/AppDelegate.m +0 -74
  468. package/template/src/components/OAuth.electron.tsx +0 -41
  469. package/template/src/components/OAuth.native.tsx +0 -55
  470. package/template/src/components/OAuthConfig.ts +0 -77
  471. package/template/src/components/StoreToken.tsx +0 -39
  472. package/template/src/components/meeting-info/useMeetingInfo.tsx +0 -70
  473. package/template/src/pages/video-call/CustomUserContextHolder.tsx +0 -20
  474. package/template/src/utils/useButtonTemplate.tsx +0 -44
  475. package/template/src/utils/useJoinMeeting.ts +0 -132
@@ -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,10 +18,10 @@ 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';
21
22
  // export {RtmAttribute}
22
23
  //
23
- interface RtmAttributePlaceholder {
24
- };
24
+ interface RtmAttributePlaceholder {}
25
25
  export {RtmAttributePlaceholder as RtmAttribute};
26
26
 
27
27
  type callbackType = (args?: any) => void;
@@ -99,6 +99,8 @@ export default class RtmEngine {
99
99
  this.appId = APP_ID;
100
100
  this.client = AgoraRTM.createInstance(this.appId);
101
101
 
102
+ window.rtmClient = this.client;
103
+
102
104
  this.client.on('ConnectionStateChanged', (state, reason) => {
103
105
  this.clientEventsMap.get('connectionStateChanged')({state, reason});
104
106
  });
@@ -174,7 +176,7 @@ export default class RtmEngine {
174
176
  }
175
177
 
176
178
  async logout(): Promise<any> {
177
- return this.client.logout();
179
+ return await this.client.logout();
178
180
  }
179
181
 
180
182
  async joinChannel(channelId: string): Promise<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,21 @@ 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';
@@ -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};
@@ -46,7 +46,7 @@ function isComponent(data: any) {
46
46
  }
47
47
 
48
48
  //These keys value are not react component. so doing indexOf and checking whether its function or not
49
- const ignoreTheseKeys = ['customLayout', 'useUserContext'];
49
+ const ignoreTheseKeys = ['customLayout'];
50
50
 
51
51
  function validateComponents(components: any) {
52
52
  for (const key in components) {
@@ -24,3 +24,7 @@ export * from './customEvents';
24
24
  export * from './sub-components';
25
25
  export * from './typeDefinition';
26
26
  export * from './utils';
27
+ export * from './types';
28
+
29
+ //TODO: hari remove later - used for simple-practice demo
30
+ export * from './temp';
@@ -1,10 +1,7 @@
1
1
  //Common components
2
- export {default as HorizontalRule} from '../src/atoms/HorizontalRule';
3
- export {default as PrimaryButton} from '../src/atoms/PrimaryButton';
4
- export {default as SecondaryButton} from '../src/atoms/SecondaryButton';
5
2
  export {default as TextInput} from '../src/atoms/TextInput';
6
3
  //Icons
7
- export {Icons} from '../agora-rn-uikit';
4
+ //export {Icons} from '../agora-rn-uikit';
8
5
 
9
6
  // commented for v1 release
10
7
  //create screen
@@ -16,30 +13,28 @@ export {Icons} from '../agora-rn-uikit';
16
13
 
17
14
  // commented for v1 release
18
15
  //Precall components
19
- //export * from '../src/components/precall/index';
16
+ export * from '../src/components/precall/index';
20
17
 
21
18
  //video call components
22
19
  export {
23
20
  ParticipantsView,
24
- Controls,
25
- ControlsComponentsArray,
26
- Navbar,
27
- NavBarComponentsArray,
28
21
  ChatBubble,
29
- ChatSendButton,
30
- ChatTextInput,
22
+ ChatInput,
31
23
  Chat,
32
24
  SettingsView,
25
+ ToolbarComponents,
33
26
  } from '../src/pages/video-call/index';
34
27
  export {default as GridLayout} from '../src/components/GridVideo';
35
28
  export {default as PinnedLayout} from '../src/components/PinnedVideo';
36
29
  export {default as VideoComponent} from '../src/pages/video-call/VideoComponent';
37
30
  export {default as MaxVideoView} from '../src/pages/video-call/VideoRenderer';
38
- export {default as RenderComponent} from '../src/pages/video-call/RenderComponent';
39
31
  export {default as NameWithMicIcon} from '../src/pages/video-call/NameWithMicIcon';
40
32
  export {default as NetworkQualityPill} from '../src/subComponents/NetworkQualityPill';
41
33
  //videocall screen
42
34
  export {default as VideocallScreen} from '../src/pages/video-call/VideoCallScreen';
35
+ export {default as PrecallScreen} from '../src/components/Precall';
36
+ export {default as VBPanel} from '../src/components/virtual-background/VBPanel';
37
+ export {WhiteboardListener} from '../src/components/Controls';
43
38
 
44
39
  // commented for v1 release
45
40
  //Settings screen
@@ -51,12 +46,18 @@ export {default as VideocallScreen} from '../src/pages/video-call/VideoCallScree
51
46
  //export {default as LanguageSelector} from '../src/subComponents/LanguageSelector';
52
47
 
53
48
  //Sidepanel buttons
54
- export {SidePanelButtonsArray} from '../src/subComponents/SidePanelButtons';
49
+ //export {SidePanelButtonsArray} from '../src/subComponents/SidePanelButtons';
55
50
  export {
56
- ImageIcon as UiKitImageIcon,
57
51
  MaxVideoView as UiKitMaxVideoView,
58
- BtnTemplate as UiKitBtnTemplate,
59
52
  ClientRole as UikitClientRole,
60
53
  ChannelProfile as UikitChannelProfile,
54
+ PropsContext as UikitPropsContext,
61
55
  } from '../agora-rn-uikit';
62
- export type {BtnTemplateInterface as UikitBtnTemplateInterface} from '../agora-rn-uikit';
56
+ export {default as Toolbar} from '../src/atoms/Toolbar';
57
+ export {default as ToolbarItem} from '../src/atoms/ToolbarItem';
58
+ export {default as ToolbarPreset} from '../src/atoms/ToolbarPreset';
59
+ export {default as ToolbarMenu} from '../src/atoms/ToolbarMenu';
60
+ export type {
61
+ ToolbarCustomItem,
62
+ ToolbarPresetProps,
63
+ } from '../src/atoms/ToolbarPreset';
@@ -0,0 +1,52 @@
1
+ //exporting for simple-practice demo
2
+
3
+ import VideoRenderer from '../src/pages/video-call/VideoRenderer';
4
+ import {DispatchContext} from '../agora-rn-uikit';
5
+ import IconButton from '../src/atoms/IconButton';
6
+ import WhiteboardView from '../src/components/whiteboard/WhiteboardView';
7
+ import {
8
+ useWhiteboard,
9
+ whiteboardContext,
10
+ } from '../src/components/whiteboard/WhiteboardConfigure';
11
+ import {useVideoCall} from '../src/components/useVideoCall';
12
+ import {useScreenshare} from '../src/subComponents/screenshare/useScreenshare';
13
+ import EndcallPopup from '../src/subComponents/EndcallPopup';
14
+ import useSTTAPI from '../src/subComponents/caption/useSTTAPI';
15
+ import {useCaption} from '../src/subComponents/caption/useCaption';
16
+ import useMuteToggleLocal, {
17
+ MUTE_LOCAL_TYPE,
18
+ } from '../src/utils/useMuteToggleLocal';
19
+ import {RoomPhase} from 'white-web-sdk';
20
+ import {useScreenContext} from '../src/components/contexts/ScreenShareContext';
21
+ import {filterObject} from '../src/utils/index';
22
+ import {useToggleWhiteboard} from '../src/components/Controls';
23
+ import {ShowInputURL} from '../src/components/Share';
24
+ import useRemoteMute, {MUTE_REMOTE_TYPE} from '../src/utils/useRemoteMute';
25
+ import getCustomRoute from '../src/utils/getCustomRoute';
26
+ import TertiaryButton from '../src/atoms/TertiaryButton';
27
+ import useEndCall from '../src/utils/useEndCall';
28
+ export {
29
+ VideoRenderer,
30
+ DispatchContext,
31
+ IconButton,
32
+ WhiteboardView,
33
+ whiteboardContext,
34
+ useVideoCall,
35
+ useScreenshare,
36
+ EndcallPopup,
37
+ useSTTAPI,
38
+ useCaption,
39
+ useWhiteboard,
40
+ useMuteToggleLocal,
41
+ MUTE_LOCAL_TYPE,
42
+ RoomPhase,
43
+ useScreenContext,
44
+ filterObject,
45
+ useToggleWhiteboard,
46
+ ShowInputURL,
47
+ useRemoteMute,
48
+ MUTE_REMOTE_TYPE,
49
+ getCustomRoute,
50
+ TertiaryButton,
51
+ useEndCall,
52
+ };
@@ -13,21 +13,14 @@ import React from 'react';
13
13
  export type {ChatBubbleProps} from '../src/components/ChatContext';
14
14
  import {ChatBubbleProps} from '../src/components/ChatContext';
15
15
  import {
16
- RenderInterface,
17
- RenderStateInterface,
16
+ ContentInterface,
17
+ ContentStateInterface,
18
18
  UidType,
19
19
  } from '../agora-rn-uikit';
20
20
  import {I18nInterface} from '../src/language/i18nTypes';
21
21
  import {IconsInterface} from '../src/atoms/CustomIcon';
22
- export type {RenderInterface, RenderStateInterface, UidType};
23
- export type {
24
- ChatTextInputProps,
25
- ChatSendButtonProps,
26
- } from '../src/subComponents/ChatInput';
27
- import {
28
- ChatTextInputProps,
29
- ChatSendButtonProps,
30
- } from '../src/subComponents/ChatInput';
22
+ import {ToolbarCustomItem} from './sub-components';
23
+ import {TextDataInterface} from '../src/language/default-labels';
31
24
 
32
25
  export const CUSTOM_ROUTES_PREFIX = '/r/';
33
26
 
@@ -50,49 +43,37 @@ export interface ChatCmpInterface {
50
43
  //commented for v1 release
51
44
  //extends BeforeAndAfterInterface
52
45
  chatBubble?: React.ComponentType<ChatBubbleProps>;
53
- chatInput?: React.ComponentType<ChatTextInputProps>;
54
- chatSendButton?: React.ComponentType<ChatSendButtonProps>;
55
- }
56
-
57
- export interface renderComponentInterface {
58
- user: RenderInterface;
59
- isMax?: boolean;
60
- }
61
-
62
- export interface renderComponentObjectInterface {
63
- [key: string]: React.ComponentType<renderComponentInterface>;
46
+ chatInput?: React.ComponentType;
64
47
  }
65
48
 
66
- export type layoutComponent = React.ComponentType<{
67
- renderData: RenderStateInterface['activeUids'];
49
+ export type LayoutComponent = React.ComponentType<{
50
+ renderData: ContentStateInterface['activeUids'];
68
51
  }>;
69
52
 
70
- export interface layoutObjectBase {
53
+ export interface LayoutItem {
71
54
  name: string;
72
55
  label: string;
73
- component: layoutComponent;
74
- }
75
-
76
- export interface layoutObjectWithIcon extends layoutObjectBase {
56
+ translationKey?: keyof TextDataInterface;
77
57
  icon: string;
78
- iconName?: never;
79
- }
80
- export interface layoutObjectWithIconName extends layoutObjectBase {
81
- icon?: never;
82
- iconName: keyof IconsInterface;
58
+ component: LayoutComponent;
83
59
  }
84
- export type layoutObjectType = layoutObjectWithIcon | layoutObjectWithIconName;
85
60
 
61
+ export type ToolbarType = React.ComponentType | Array<ToolbarCustomItem>;
86
62
  export interface VideoCallInterface extends BeforeAndAfterInterface {
87
63
  // commented for v1 release
88
- topBar?: React.ComponentType;
64
+ topToolBar?: ToolbarType;
65
+ bottomToolBar?: ToolbarType;
66
+ leftToolBar?: ToolbarType;
67
+ rightToolBar?: ToolbarType;
89
68
  //settingsPanel?: React.ComponentType;
90
69
  participantsPanel?: React.ComponentType;
91
- bottomBar?: React.ComponentType;
92
70
  chat?: ChatCmpInterface;
93
- customContent?: renderComponentObjectInterface;
94
- customLayout?: (layouts: layoutObjectType[]) => layoutObjectType[];
95
- useUserContext?: () => void;
71
+ customLayout?: (layouts: LayoutItem[]) => LayoutItem[];
72
+ wrapper?: React.ComponentType;
73
+ invitePopup?: {
74
+ title: string;
75
+ renderComponent?: React.ComponentType;
76
+ };
96
77
  }
97
78
 
98
79
  export type ComponentsInterface = {
@@ -101,7 +82,8 @@ export type ComponentsInterface = {
101
82
  */
102
83
  appRoot?: React.ComponentType;
103
84
  // commented for v1 release
104
- //precall?: PreCallInterface | React.ComponentType;
85
+ // precall?: PreCallInterface | React.ComponentType;
86
+ precall?: React.ComponentType;
105
87
  //create?: React.ComponentType;
106
88
  //share?: React.ComponentType;
107
89
  //join?: React.ComponentType;
@@ -119,6 +101,10 @@ export interface CustomRoutesInterface {
119
101
  }
120
102
 
121
103
  export type CustomHookType = () => () => Promise<void>;
104
+ export type EndCallHookType = () => (
105
+ isHost: boolean,
106
+ history: History,
107
+ ) => Promise<void>;
122
108
 
123
109
  export interface CustomizationApiInterface {
124
110
  /**
@@ -129,7 +115,7 @@ export interface CustomizationApiInterface {
129
115
  * custom routes used to add new page/routes
130
116
  */
131
117
  // commented for v1 release
132
- //customRoutes?: CustomRoutesInterface[];
118
+ customRoutes?: CustomRoutesInterface[];
133
119
  /**
134
120
  * Internationlization
135
121
  */
@@ -138,8 +124,10 @@ export interface CustomizationApiInterface {
138
124
  * Life cycle events
139
125
  */
140
126
  // commented for v1 release
141
- // lifecycle?: {
142
- // useBeforeJoin?: CustomHookType;
143
- // useBeforeCreate?: CustomHookType;
144
- // };
127
+ lifecycle?: {
128
+ useAfterEndCall?: EndCallHookType;
129
+ useBeforeEndCall?: EndCallHookType;
130
+ // useBeforeJoin?: CustomHookType;
131
+ // useBeforeCreate?: CustomHookType;
132
+ };
145
133
  }
@@ -0,0 +1,26 @@
1
+ //audio/video toggle state
2
+ export {
3
+ ToggleState,
4
+ ClientRole,
5
+ } from '../agora-rn-uikit/src/Contexts/PropsContext';
6
+ export type {
7
+ ContentInterface,
8
+ ContentStateInterface,
9
+ UidType,
10
+ } from '../agora-rn-uikit';
11
+ export {
12
+ I18nDeviceStatus,
13
+ I18nMuteType,
14
+ } from '../src/language/default-labels/videoCallScreenLabels';
15
+ export type {
16
+ NetworkQualities,
17
+ I18nRequestConfirmation,
18
+ I18nMuteConfirmation,
19
+ deviceDetectionToastSubHeadingDataInterface,
20
+ sttSpokenLanguageToastHeadingDataType,
21
+ whiteboardFileUploadToastDataType,
22
+ publicChatToastSubHeadingDataInterface,
23
+ privateChatToastHeadingDataInterface,
24
+ publicAndPrivateChatToastSubHeadingDataInterface,
25
+ } from '../src/language/default-labels/videoCallScreenLabels';
26
+ export type {TextDataInterface} from '../src/language/default-labels';
@@ -21,6 +21,9 @@ export {default as useIsPSTN} from '../src/utils/useIsPSTN';
21
21
  export {default as useIsAudioEnabled} from '../src/utils/useIsAudioEnabled';
22
22
  export {default as useIsVideoEnabled} from '../src/utils/useIsVideoEnabled';
23
23
 
24
+ //hook to get active speaker uid
25
+ export {default as useActiveSpeaker} from '../src/utils/useActiveSpeaker';
26
+
24
27
  //hooks used for navigation
25
28
  export {useHistory, useParams} from '../src/components/Router';
26
29
 
@@ -28,3 +31,4 @@ export {useHistory, useParams} from '../src/components/Router';
28
31
  export {isWeb, isIOS, isAndroid, isDesktop} from '../src/utils/common';
29
32
  export {default as isMobileOrTablet} from '../src/utils/isMobileOrTablet';
30
33
  export {useLocalUid} from '../agora-rn-uikit';
34
+ export {default as useLocalAudio} from '../src/utils/useLocalAudio';