agora-appbuilder-core 4.0.0-api.5 → 4.0.0-api.6

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 (406) hide show
  1. package/package.json +2 -2
  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 +26471 -22749
  8. package/template/_prettierrc.js +2 -2
  9. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +30 -10
  10. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +19 -0
  11. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +1 -0
  12. package/template/agora-rn-uikit/src/Controls/Icons.ts +45 -0
  13. package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -4
  14. package/template/agora-rn-uikit/src/Controls/Local/FullScreen.tsx +3 -1
  15. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +1 -0
  16. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +1 -0
  17. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +1 -0
  18. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +1 -0
  19. package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +3 -1
  20. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +1 -0
  21. package/template/agora-rn-uikit/src/Reducer/ActiveSpeaker.ts +30 -0
  22. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +3 -1
  23. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +3 -1
  24. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +1 -1
  25. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +3 -3
  26. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +5 -4
  27. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +1 -1
  28. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +8 -5
  29. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +1 -1
  30. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +1 -1
  31. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +1 -1
  32. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +18 -1
  33. package/template/agora-rn-uikit/src/Reducer/UserSecondaryPin.ts +23 -0
  34. package/template/agora-rn-uikit/src/Reducer/index.ts +2 -0
  35. package/template/agora-rn-uikit/src/Rtc/Create.tsx +47 -21
  36. package/template/agora-rn-uikit/src/Rtc/Join.tsx +37 -15
  37. package/template/agora-rn-uikit/src/RtcConfigure.tsx +122 -12
  38. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +32 -4
  39. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +21 -2
  40. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +2 -0
  41. package/template/android/app/build.gradle +59 -156
  42. package/template/android/app/src/debug/AndroidManifest.xml +6 -1
  43. package/template/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java +7 -4
  44. package/template/android/app/src/main/AndroidManifest.xml +6 -19
  45. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  46. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +17 -0
  47. package/template/android/app/src/main/java/com/helloworld/MainApplication.java +19 -36
  48. package/template/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java +20 -0
  49. package/template/android/build.gradle +19 -33
  50. package/template/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  51. package/template/android/gradle/wrapper/gradle-wrapper.properties +3 -2
  52. package/template/android/gradle.properties +18 -4
  53. package/template/android/gradlew +165 -104
  54. package/template/android/gradlew.bat +12 -23
  55. package/template/android/settings.gradle +1 -0
  56. package/template/bridge/rtc/webNg/RtcEngine.ts +131 -16
  57. package/template/bridge/rtc/webNg/index.ts +72 -1
  58. package/template/bridge/rtm/web/index.ts +5 -3
  59. package/template/configTransform.js +16 -1
  60. package/template/customization-api/action-library.ts +0 -8
  61. package/template/customization-api/app-state.ts +11 -2
  62. package/template/customization-api/customEvents.ts +6 -1
  63. package/template/customization-api/index.ts +4 -0
  64. package/template/customization-api/sub-components.ts +6 -3
  65. package/template/customization-api/temp.ts +50 -0
  66. package/template/customization-api/typeDefinition.ts +26 -14
  67. package/template/customization-api/types.ts +26 -0
  68. package/template/customization-api/utils.ts +2 -0
  69. package/template/customization-implementation/index.ts +0 -1
  70. package/template/defaultConfig.js +72 -0
  71. package/template/global.d.ts +13 -1
  72. package/template/index.js +0 -4
  73. package/template/index.web.js +0 -5
  74. package/template/index.wsdk.tsx +1 -19
  75. package/template/ios/.xcode.env +11 -0
  76. package/template/ios/HelloWorld/AppDelegate.h +2 -4
  77. package/template/ios/HelloWorld/AppDelegate.mm +42 -0
  78. package/template/ios/HelloWorld/Info.plist +1 -1
  79. package/template/ios/HelloWorld/main.m +2 -1
  80. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +529 -17
  81. package/template/ios/HelloWorld.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  82. package/template/ios/HelloWorld.xcworkspace/contents.xcworkspacedata +10 -0
  83. package/template/ios/HelloWorld.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  84. package/template/ios/HelloWorldTests/HelloWorldTests.m +14 -13
  85. package/template/ios/HelloWorldTests/Info.plist +2 -2
  86. package/template/ios/Podfile +53 -20
  87. package/template/ios/Podfile.lock +873 -0
  88. package/template/ios/ScreenSharing/Info.plist +15 -0
  89. package/template/ios/ScreenSharing/SampleHandler.h +9 -0
  90. package/template/ios/ScreenSharing/SampleHandler.m +70 -0
  91. package/template/jest.config.js +4 -0
  92. package/template/metro.config.js +7 -32
  93. package/template/package.json +52 -39
  94. package/template/react-native-toast-message/index.d.ts +3 -1
  95. package/template/react-native-toast-message/index.js +1 -0
  96. package/template/react-native-toast-message/src/components/base/index.js +20 -32
  97. package/template/react-native-toast-message/src/components/base/styles.js +18 -21
  98. package/template/react-native-toast-message/src/components/checkbox.js +24 -19
  99. package/template/react-native-toast-message/src/index.js +3 -1
  100. package/template/react-native-toast-message/src/index.sdk.tsx +4 -1
  101. package/template/src/App.tsx +13 -85
  102. package/template/src/AppRoutes.tsx +77 -0
  103. package/template/src/AppWrapper.tsx +38 -33
  104. package/template/src/SDKAppWrapper.tsx +79 -43
  105. package/template/src/app-state/useNoiseSupression.native.tsx +67 -0
  106. package/template/src/app-state/useNoiseSupression.tsx +107 -0
  107. package/template/src/app-state/useVideoQuality.tsx +39 -0
  108. package/template/src/assets/font-styles.css +171 -3
  109. package/template/src/assets/fonts/icomoon.ttf +0 -0
  110. package/template/src/assets/selection.json +1 -1
  111. package/template/src/atoms/ActionMenu.tsx +50 -11
  112. package/template/src/atoms/Avatar.tsx +51 -0
  113. package/template/src/atoms/Card.tsx +21 -8
  114. package/template/src/atoms/Carousel.native.tsx +105 -0
  115. package/template/src/atoms/Carousel.tsx +103 -0
  116. package/template/src/atoms/Checkbox.tsx +98 -0
  117. package/template/src/atoms/CircularProgress.tsx +0 -1
  118. package/template/src/atoms/ClipboardIconButton.tsx +91 -0
  119. package/template/src/atoms/CustomIcon.tsx +45 -0
  120. package/template/src/atoms/DropDownMulti.tsx +349 -0
  121. package/template/src/atoms/Dropdown.tsx +3 -3
  122. package/template/src/atoms/IconButton.tsx +52 -9
  123. package/template/src/atoms/ImageIcon.tsx +6 -3
  124. package/template/src/atoms/InlineNotification.tsx +81 -0
  125. package/template/src/atoms/MeetingLink.tsx +160 -0
  126. package/template/src/atoms/ParticipantsCount.tsx +18 -7
  127. package/template/src/atoms/Popup.tsx +49 -27
  128. package/template/src/atoms/PrimaryButton.tsx +19 -5
  129. package/template/src/atoms/RecordingInfo.tsx +2 -2
  130. package/template/src/atoms/SecondaryButton.tsx +2 -0
  131. package/template/src/atoms/Spacer.tsx +1 -0
  132. package/template/src/atoms/TertiaryButton.tsx +35 -5
  133. package/template/src/atoms/TextInput.tsx +2 -1
  134. package/template/src/atoms/Toolbar.tsx +64 -30
  135. package/template/src/atoms/ToolbarItem.tsx +11 -5
  136. package/template/src/atoms/ToolbarPreset.tsx +13 -2
  137. package/template/src/atoms/Tooltip.tsx +26 -4
  138. package/template/src/auth/AuthProvider.tsx +500 -0
  139. package/template/src/auth/AuthRoute.tsx +94 -0
  140. package/template/src/auth/IDPAuth.electron.tsx +31 -0
  141. package/template/src/auth/IDPAuth.tsx +67 -0
  142. package/template/src/auth/IDPLogoutComponent.tsx +158 -0
  143. package/template/src/auth/UserCancelPopup.tsx +115 -0
  144. package/template/src/auth/config.ts +52 -0
  145. package/template/src/auth/openIDPURL.electron.tsx +39 -0
  146. package/template/src/auth/openIDPURL.native.tsx +51 -0
  147. package/template/src/auth/openIDPURL.tsx +20 -0
  148. package/template/src/auth/useIDPAuth.electron.tsx +65 -0
  149. package/template/src/auth/useIDPAuth.native.tsx +70 -0
  150. package/template/src/auth/useIDPAuth.tsx +63 -0
  151. package/template/src/auth/useTokenAuth.tsx +194 -0
  152. package/template/src/components/Chat.tsx +5 -8
  153. package/template/src/components/ChatContext.ts +4 -0
  154. package/template/src/components/ColorConfigure.tsx +0 -1
  155. package/template/src/components/CommonStyles.ts +9 -2
  156. package/template/src/components/Controls.tsx +659 -52
  157. package/template/src/components/DeviceConfigure.tsx +362 -156
  158. package/template/src/components/DeviceContext.tsx +2 -0
  159. package/template/src/components/EventsConfigure.tsx +713 -109
  160. package/template/src/components/GraphQLProvider.tsx +62 -36
  161. package/template/src/components/GridVideo.tsx +23 -13
  162. package/template/src/components/HostControlView.tsx +11 -14
  163. package/template/src/components/JoinPhrase.tsx +0 -1
  164. package/template/src/components/Leftbar.tsx +4 -3
  165. package/template/src/components/Navbar.tsx +110 -42
  166. package/template/src/components/NavbarMobile.tsx +47 -36
  167. package/template/src/components/Navigation.native.tsx +1 -15
  168. package/template/src/{subComponents/screenshare/ScreenshareButton.native.tsx → components/Navigation.sdk.tsx} +17 -3
  169. package/template/src/components/Navigation.tsx +1 -15
  170. package/template/src/components/ParticipantsView.tsx +56 -48
  171. package/template/src/components/PinnedVideo.tsx +188 -114
  172. package/template/src/components/Precall.native.tsx +169 -67
  173. package/template/src/components/Precall.tsx +237 -71
  174. package/template/src/components/RTMConfigure.tsx +167 -55
  175. package/template/src/components/Rightbar.tsx +4 -3
  176. package/template/src/components/Router.electron.ts +1 -0
  177. package/template/src/components/Router.native.ts +1 -0
  178. package/template/src/components/Router.sdk.ts +1 -0
  179. package/template/src/components/Router.ts +1 -0
  180. package/template/src/components/SdkApiContext.tsx +179 -27
  181. package/template/src/components/SdkMuteToggleListener.tsx +88 -0
  182. package/template/src/components/SessionContext.tsx +0 -1
  183. package/template/src/components/Settings.tsx +25 -3
  184. package/template/src/components/SettingsView.tsx +44 -9
  185. package/template/src/components/Share.tsx +149 -71
  186. package/template/src/components/StorageContext.tsx +19 -5
  187. package/template/src/components/ToastComponent.tsx +3 -0
  188. package/template/src/components/WhiteboardLayout.tsx +291 -0
  189. package/template/src/components/chat-messages/useChatMessages.tsx +420 -207
  190. package/template/src/components/common/Error.tsx +2 -0
  191. package/template/src/components/common/Logo.tsx +2 -2
  192. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -4
  193. package/template/src/components/contexts/ScreenShareContext.tsx +15 -1
  194. package/template/src/components/contexts/WaitingRoomContext.tsx +50 -0
  195. package/template/src/components/contexts/WhiteboardContext.tsx +54 -54
  196. package/template/src/components/disable-chat/useDisableChat.tsx +32 -0
  197. package/template/src/components/livestream/LiveStreamContext.tsx +262 -177
  198. package/template/src/components/livestream/Types.ts +34 -18
  199. package/template/src/components/livestream/views/LiveStreamAttendeeLandingTile.tsx +295 -0
  200. package/template/src/components/livestream/views/LiveStreamControls.tsx +2 -4
  201. package/template/src/components/meeting-info-invite/MeetingInfo.tsx +82 -0
  202. package/template/src/components/meeting-info-invite/MeetingInfoCardHeader.tsx +86 -0
  203. package/template/src/components/meeting-info-invite/MeetingInfoGridTile.tsx +218 -0
  204. package/template/src/components/meeting-info-invite/MeetingInfoLinks.tsx +122 -0
  205. package/template/src/components/participants/AllAudienceParticipants.tsx +4 -5
  206. package/template/src/components/participants/AllHostParticipants.tsx +5 -6
  207. package/template/src/components/participants/Participant.tsx +40 -9
  208. package/template/src/components/participants/ParticipantSectionTitle.tsx +5 -2
  209. package/template/src/components/participants/ScreenshareParticipants.tsx +15 -17
  210. package/template/src/components/participants/UserActionMenuOptions.tsx +157 -49
  211. package/template/src/components/participants/WaitingRoomParticipants.tsx +74 -0
  212. package/template/src/components/popups/InvitePopup.tsx +110 -45
  213. package/template/src/components/popups/StartScreenSharePopup.native.tsx +182 -0
  214. package/template/src/components/popups/StartScreenSharePopup.tsx +6 -0
  215. package/template/src/components/popups/StopRecordingPopup.tsx +11 -5
  216. package/template/src/components/popups/StopScreenSharePopup.native.tsx +135 -0
  217. package/template/src/components/popups/StopScreenSharePopup.tsx +6 -0
  218. package/template/src/components/popups/WhiteboardClearAllPopup.tsx +123 -0
  219. package/template/src/components/precall/LocalMute.tsx +69 -45
  220. package/template/src/components/precall/PermissionHelper.tsx +52 -24
  221. package/template/src/components/precall/PreCallSettings.tsx +1 -0
  222. package/template/src/components/precall/VideoFallback.tsx +173 -0
  223. package/template/src/components/precall/VideoPreview.native.tsx +16 -50
  224. package/template/src/components/precall/VideoPreview.tsx +27 -162
  225. package/template/src/components/precall/index.tsx +2 -0
  226. package/template/src/components/precall/joinCallBtn.native.tsx +10 -3
  227. package/template/src/components/precall/joinCallBtn.tsx +11 -2
  228. package/template/src/components/precall/joinWaitingRoomBtn.native.tsx +210 -0
  229. package/template/src/components/precall/joinWaitingRoomBtn.tsx +250 -0
  230. package/template/src/components/precall/meetingTitle.tsx +35 -9
  231. package/template/src/components/precall/selectDevice.tsx +5 -5
  232. package/template/src/components/precall/textInput.tsx +16 -18
  233. package/template/src/components/precall/usePreCall.tsx +14 -4
  234. package/template/src/components/room-info/useRoomInfo.tsx +34 -0
  235. package/template/src/components/useShareLink.tsx +24 -59
  236. package/template/src/components/useUserPreference.tsx +73 -10
  237. package/template/src/components/useVideoCall.tsx +76 -3
  238. package/template/src/components/virtual-background/VBButton.tsx +64 -0
  239. package/template/src/components/virtual-background/VBCard.native.tsx +282 -0
  240. package/template/src/components/virtual-background/VBCard.tsx +272 -0
  241. package/template/src/components/virtual-background/VBPanel.tsx +279 -0
  242. package/template/src/components/virtual-background/VButils.native.ts +37 -0
  243. package/template/src/components/virtual-background/VButils.ts +104 -0
  244. package/template/src/components/virtual-background/VideoPreview.native.tsx +43 -0
  245. package/template/src/components/virtual-background/VideoPreview.tsx +106 -0
  246. package/template/src/components/virtual-background/imagePaths.ts +87 -0
  247. package/template/src/components/virtual-background/images/beachImageBase64.ts +1 -0
  248. package/template/src/components/virtual-background/images/bedroomImageBase64.ts +1 -0
  249. package/template/src/components/virtual-background/images/bookImageBase64.ts +1 -0
  250. package/template/src/components/virtual-background/images/earthImageBase64.ts +1 -0
  251. package/template/src/components/virtual-background/images/index.ts +37 -0
  252. package/template/src/components/virtual-background/images/lampImageBase64.ts +1 -0
  253. package/template/src/components/virtual-background/images/mountainsImageBase64.ts +1 -0
  254. package/template/src/components/virtual-background/images/office1ImageBase64.ts +1 -0
  255. package/template/src/components/virtual-background/images/officeImageBase64.ts +1 -0
  256. package/template/src/components/virtual-background/images/plantsImageBase64.ts +1 -0
  257. package/template/src/components/virtual-background/images/skyImageBase64.ts +1 -0
  258. package/template/src/components/virtual-background/images/wallImageBase64.ts +1 -0
  259. package/template/src/components/virtual-background/useVB.native.tsx +188 -0
  260. package/template/src/components/virtual-background/useVB.tsx +267 -0
  261. package/template/src/components/whiteboard/StrokeWidthTool.tsx +137 -0
  262. package/template/src/components/whiteboard/WhiteboardButton.tsx +93 -0
  263. package/template/src/components/whiteboard/WhiteboardCanvas.tsx +99 -0
  264. package/template/src/components/whiteboard/WhiteboardConfigure.native.tsx +137 -0
  265. package/template/src/components/whiteboard/WhiteboardConfigure.tsx +441 -0
  266. package/template/src/components/whiteboard/WhiteboardCursor.tsx +152 -0
  267. package/template/src/components/whiteboard/WhiteboardToolBox.tsx +1246 -0
  268. package/template/src/components/whiteboard/WhiteboardView.native.tsx +109 -0
  269. package/template/src/components/whiteboard/WhiteboardView.tsx +81 -0
  270. package/template/src/components/whiteboard/WhiteboardWidget.tsx +674 -0
  271. package/template/src/components/whiteboard/WhiteboardWrapper.tsx +38 -0
  272. package/template/src/language/default-labels/commonLabels.ts +51 -14
  273. package/template/src/language/default-labels/createScreenLabels.ts +97 -17
  274. package/template/src/language/default-labels/joinScreenLabels.ts +45 -6
  275. package/template/src/language/default-labels/precallScreenLabels.ts +145 -23
  276. package/template/src/language/default-labels/shareLinkScreenLabels.ts +85 -37
  277. package/template/src/language/default-labels/videoCallScreenLabels.ts +1137 -158
  278. package/template/src/pages/Create.tsx +125 -80
  279. package/template/src/pages/Join.tsx +76 -34
  280. package/template/src/pages/Login.tsx +26 -0
  281. package/template/src/pages/VideoCall.tsx +229 -114
  282. package/template/src/pages/video-call/ActionSheet.native.tsx +54 -7
  283. package/template/src/pages/video-call/ActionSheet.tsx +55 -16
  284. package/template/src/pages/video-call/ActionSheetContent.tsx +366 -291
  285. package/template/src/pages/video-call/ActionSheetHandle.tsx +7 -1
  286. package/template/src/pages/video-call/DefaultLayouts.ts +11 -5
  287. package/template/src/pages/video-call/NameWithMicIcon.tsx +17 -9
  288. package/template/src/pages/video-call/PinchableView.tsx +119 -0
  289. package/template/src/pages/video-call/RenderComponent.tsx +12 -3
  290. package/template/src/pages/video-call/SidePanelHeader.tsx +208 -6
  291. package/template/src/pages/video-call/VideoCallMobileView.tsx +140 -106
  292. package/template/src/pages/video-call/VideoCallScreen.native.tsx +3 -2
  293. package/template/src/pages/video-call/VideoCallScreen.tsx +113 -66
  294. package/template/src/pages/video-call/VideoComponent.tsx +53 -5
  295. package/template/src/pages/video-call/VideoRenderer.tsx +309 -52
  296. package/template/src/pages/video-call/VisibilitySensor.tsx +104 -0
  297. package/template/src/pages/video-call/ZoomableWrapper.native.tsx +34 -0
  298. package/template/src/pages/video-call/ZoomableWrapper.tsx +5 -0
  299. package/template/src/pages/video-call/index.ts +2 -0
  300. package/template/src/rtm/RTMEngine.ts +9 -4
  301. package/template/src/rtm-events/constants.ts +20 -0
  302. package/template/src/rtm-events-api/Events.ts +2 -0
  303. package/template/src/rtm-events-api/LocalEvents.ts +8 -0
  304. package/template/src/selection.json +1 -0
  305. package/template/src/subComponents/ChatBubble.tsx +81 -64
  306. package/template/src/subComponents/ChatContainer.tsx +20 -13
  307. package/template/src/subComponents/ChatInput.ios.tsx +11 -2
  308. package/template/src/subComponents/ChatInput.tsx +12 -3
  309. package/template/src/subComponents/Checkbox.native.tsx +46 -46
  310. package/template/src/subComponents/Checkbox.tsx +7 -6
  311. package/template/src/subComponents/CopyJoinInfo.tsx +26 -11
  312. package/template/src/subComponents/EndcallPopup.tsx +83 -12
  313. package/template/src/subComponents/LanguageSelector.tsx +34 -30
  314. package/template/src/subComponents/LayoutIconButton.tsx +30 -8
  315. package/template/src/subComponents/LayoutIconDropdown.tsx +19 -3
  316. package/template/src/subComponents/Loading.tsx +60 -0
  317. package/template/src/subComponents/LocalAudioMute.tsx +106 -30
  318. package/template/src/subComponents/LocalEndCall.tsx +91 -15
  319. package/template/src/subComponents/LocalSwitchCamera.tsx +50 -11
  320. package/template/src/subComponents/LocalVideoMute.tsx +126 -32
  321. package/template/src/subComponents/LogoutButton.tsx +1 -1
  322. package/template/src/subComponents/NetworkQualityPill.tsx +14 -31
  323. package/template/src/subComponents/Recording.tsx +23 -6
  324. package/template/src/subComponents/RemoteAudioMute.tsx +3 -3
  325. package/template/src/subComponents/RemoteMutePopup.tsx +55 -14
  326. package/template/src/subComponents/RemoteVideoMute.tsx +3 -3
  327. package/template/src/subComponents/RemoveMeetingPopup.tsx +19 -6
  328. package/template/src/subComponents/RemoveScreensharePopup.tsx +20 -5
  329. package/template/src/subComponents/ScreenShareNotice.tsx +11 -6
  330. package/template/src/subComponents/SelectDevice.tsx +98 -32
  331. package/template/src/subComponents/SidePanelEnum.tsx +2 -0
  332. package/template/src/subComponents/SidePanelHeader.tsx +97 -63
  333. package/template/src/subComponents/ToastConfig.tsx +70 -61
  334. package/template/src/subComponents/caption/Caption.tsx +130 -0
  335. package/template/src/subComponents/caption/CaptionContainer.tsx +302 -0
  336. package/template/src/subComponents/caption/CaptionIcon.tsx +111 -0
  337. package/template/src/subComponents/caption/CaptionText.tsx +182 -0
  338. package/template/src/subComponents/caption/DownloadTranscriptBtn.tsx +65 -0
  339. package/template/src/subComponents/caption/LanguageSelectorPopup.tsx +192 -0
  340. package/template/src/subComponents/caption/Transcript.tsx +449 -0
  341. package/template/src/subComponents/caption/TranscriptIcon.tsx +123 -0
  342. package/template/src/subComponents/caption/TranscriptText.tsx +98 -0
  343. package/template/src/subComponents/caption/index.ts +3 -0
  344. package/template/src/subComponents/caption/proto/ptoto.js +91 -0
  345. package/template/src/subComponents/caption/proto/test.proto +23 -0
  346. package/template/src/subComponents/caption/useCaption.tsx +123 -0
  347. package/template/src/subComponents/caption/useCaptionWidth.ts +27 -0
  348. package/template/src/subComponents/caption/useSTTAPI.tsx +179 -0
  349. package/template/src/subComponents/caption/useStreamMessageUtils.native.ts +211 -0
  350. package/template/src/subComponents/caption/useStreamMessageUtils.ts +235 -0
  351. package/template/src/subComponents/caption/useTranscriptDownload.native.ts +68 -0
  352. package/template/src/subComponents/caption/useTranscriptDownload.ts +52 -0
  353. package/template/src/subComponents/caption/utils.ts +125 -0
  354. package/template/src/subComponents/chat/ChatParticipants.tsx +53 -17
  355. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +11 -13
  356. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -9
  357. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +1 -0
  358. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +10 -6
  359. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +28 -19
  360. package/template/src/subComponents/recording/useRecording.tsx +49 -20
  361. package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +0 -1
  362. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +29 -10
  363. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +270 -66
  364. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +182 -95
  365. package/template/src/subComponents/screenshare/useScreenshare.tsx +2 -0
  366. package/template/src/subComponents/waiting-rooms/WaitingRoomControls.tsx +85 -0
  367. package/template/src/subComponents/waiting-rooms/useWaitingRoomAPI.ts +75 -0
  368. package/template/src/theme/index.ts +9 -0
  369. package/template/src/utils/SdkEvents.ts +14 -0
  370. package/template/src/utils/SdkMethodEvents.ts +23 -3
  371. package/template/src/utils/axiomLogger.ts +117 -0
  372. package/template/src/utils/book.jpg +0 -0
  373. package/template/src/utils/common.tsx +118 -6
  374. package/template/src/utils/endCallEveryOne.ts +7 -0
  375. package/template/src/utils/getCustomRoute.ts +7 -0
  376. package/template/src/utils/index.tsx +23 -0
  377. package/template/src/utils/useActionSheet.tsx +50 -0
  378. package/template/src/utils/useActiveSpeaker.ts +3 -7
  379. package/template/src/utils/useAppState.ts +17 -0
  380. package/template/src/utils/useAsyncEffect.ts +138 -0
  381. package/template/src/utils/useCreateRoom.ts +8 -12
  382. package/template/src/utils/useDisableButton.tsx +37 -0
  383. package/template/src/utils/useFindActiveSpeaker.native.ts +4 -0
  384. package/template/src/utils/useFindActiveSpeaker.ts +335 -0
  385. package/template/src/utils/useIsLocalUserSpeaking.native.ts +4 -0
  386. package/template/src/utils/useIsLocalUserSpeaking.ts +98 -0
  387. package/template/src/utils/useJoinRoom.ts +97 -36
  388. package/template/src/utils/useMuteToggleLocal.ts +114 -96
  389. package/template/src/utils/useString.ts +13 -3
  390. package/template/static.d.ts +42 -0
  391. package/template/tsconfig_rsdk_index.json +3 -3
  392. package/template/tsconfig_wsdk_index.json +1 -1
  393. package/template/web/index.html +20 -0
  394. package/template/webpack.commons.js +21 -10
  395. package/template/webpack.web.config.js +7 -3
  396. package/template/_buckconfig +0 -6
  397. package/template/_gitattributes +0 -1
  398. package/template/android/app/_BUCK +0 -55
  399. package/template/android/app/build_defs.bzl +0 -19
  400. package/template/ios/HelloWorld/AppDelegate.m +0 -74
  401. package/template/src/components/OAuth.electron.tsx +0 -41
  402. package/template/src/components/OAuth.native.tsx +0 -55
  403. package/template/src/components/OAuth.tsx +0 -30
  404. package/template/src/components/OAuthConfig.ts +0 -77
  405. package/template/src/components/Settings.native.tsx +0 -21
  406. package/template/src/components/StoreToken.tsx +0 -39
@@ -10,12 +10,15 @@
10
10
  *********************************************
11
11
  */
12
12
  import {useLocalUserInfo, useRtc} from 'customization-api';
13
- import {useContext, useEffect, useRef, useState} from 'react';
14
-
15
- import {ToggleState} from '../../agora-rn-uikit/src/Contexts/PropsContext';
16
- import {isMobileUA, isWebInternal} from './common';
17
- import {AppState} from 'react-native';
18
- import {DispatchContext} from '../../agora-rn-uikit';
13
+ import {useContext} from 'react';
14
+ import {
15
+ PropsContext,
16
+ ClientRole,
17
+ ToggleState,
18
+ DispatchContext,
19
+ } from '../../agora-rn-uikit';
20
+ import {isAndroid, isIOS, isWebInternal} from './common';
21
+ import {SdkMuteQueueContext} from '../components/SdkMuteToggleListener';
19
22
 
20
23
  export enum MUTE_LOCAL_TYPE {
21
24
  audio,
@@ -28,50 +31,32 @@ function useMuteToggleLocal() {
28
31
  const {RtcEngineUnsafe} = useRtc();
29
32
  const {dispatch} = useContext(DispatchContext);
30
33
  const local = useLocalUserInfo();
34
+ const isLiveStream = $config.EVENT_MODE;
35
+ const {rtcProps} = useContext(PropsContext);
36
+ const isBroadCasting = rtcProps?.role == ClientRole.Broadcaster;
31
37
 
32
- const appState = useRef(AppState.currentState);
33
- const [appStateVisible, setAppStateVisible] = useState(appState.current);
34
- const isCamON = useRef(local.video);
35
-
36
- useEffect(() => {
37
- if ($config.AUDIO_ROOM || !isMobileUA()) return;
38
- const subscription = AppState.addEventListener('change', (nextAppState) => {
39
- appState.current = nextAppState;
40
- setAppStateVisible(appState.current);
41
- });
42
-
43
- return () => {
44
- subscription?.remove();
45
- };
46
- }, []);
38
+ const {videoMuteQueue, audioMuteQueue} = useContext(SdkMuteQueueContext);
47
39
 
48
- useEffect(() => {
49
- // console.log(`Video State ${local.video} in Mode ${appStateVisible}`);
50
- if (appStateVisible === 'background') {
51
- isCamON.current = local.video;
52
- if (isCamON.current) {
53
- isWebInternal()
54
- ? RtcEngineUnsafe.muteLocalVideoStream(true)
55
- : RtcEngineUnsafe.enableLocalVideo(false);
40
+ const toggleMute = async (
41
+ type: MUTE_LOCAL_TYPE,
42
+ _action?: ToggleState,
43
+ _fromSdk?: boolean,
44
+ ) => {
45
+ const queueRef =
46
+ type === MUTE_LOCAL_TYPE.video ? videoMuteQueue : audioMuteQueue;
56
47
 
57
- dispatch({
58
- type: 'LocalMuteVideo',
59
- value: [0],
60
- });
48
+ const handleQueue = async () => {
49
+ if (queueRef.current.length > 0) {
50
+ const queueItem = queueRef.current.shift();
51
+ try {
52
+ await toggleMute(type, queueItem.action, true);
53
+ queueItem.resolveQueued();
54
+ } catch (e) {
55
+ queueItem.rejectQueued(e);
56
+ }
61
57
  }
62
- }
63
- if (appStateVisible === 'active' && isCamON.current) {
64
- isWebInternal()
65
- ? RtcEngineUnsafe.muteLocalVideoStream(false)
66
- : RtcEngineUnsafe.enableLocalVideo(true);
67
- dispatch({
68
- type: 'LocalMuteVideo',
69
- value: [1],
70
- });
71
- }
72
- }, [appStateVisible]);
58
+ };
73
59
 
74
- return async (type: MUTE_LOCAL_TYPE) => {
75
60
  switch (type) {
76
61
  case MUTE_LOCAL_TYPE.audio:
77
62
  let localAudioState = local.audio;
@@ -80,35 +65,45 @@ function useMuteToggleLocal() {
80
65
  localAudioState === ToggleState.enabled ||
81
66
  localAudioState === ToggleState.disabled
82
67
  ) {
83
- // Disable UI
84
- dispatch({
85
- type: 'LocalMuteAudio',
86
- value: [
87
- localAudioState === ToggleState.enabled
88
- ? ToggleState.disabling
89
- : ToggleState.enabling,
90
- ],
91
- });
92
-
93
- try {
94
- await RtcEngineUnsafe.muteLocalAudioStream(
95
- localAudioState === ToggleState.enabled,
96
- );
97
- // Enable UI
68
+ if (localAudioState !== _action) {
69
+ // Disable UI
98
70
  dispatch({
99
71
  type: 'LocalMuteAudio',
100
72
  value: [
101
73
  localAudioState === ToggleState.enabled
102
- ? ToggleState.disabled
103
- : ToggleState.enabled,
74
+ ? ToggleState.disabling
75
+ : ToggleState.enabling,
104
76
  ],
105
77
  });
106
- } catch (e) {
107
- console.error(e);
108
- dispatch({
109
- type: 'LocalMuteAudio',
110
- value: [localAudioState],
111
- });
78
+
79
+ try {
80
+ await RtcEngineUnsafe.muteLocalAudioStream(
81
+ localAudioState === ToggleState.enabled,
82
+ );
83
+ // Enable UI
84
+ dispatch({
85
+ type: 'LocalMuteAudio',
86
+ value: [
87
+ localAudioState === ToggleState.enabled
88
+ ? ToggleState.disabled
89
+ : ToggleState.enabled,
90
+ ],
91
+ });
92
+ handleQueue();
93
+ } catch (e) {
94
+ dispatch({
95
+ type: 'LocalMuteAudio',
96
+ value: [localAudioState],
97
+ });
98
+ handleQueue();
99
+ if (_fromSdk) {
100
+ throw e;
101
+ } else {
102
+ console.error('Error toggling audio', e);
103
+ }
104
+ }
105
+ } else {
106
+ handleQueue();
112
107
  }
113
108
  }
114
109
  break;
@@ -120,45 +115,68 @@ function useMuteToggleLocal() {
120
115
  localVideoState === ToggleState.disabled
121
116
  ) {
122
117
  // Disable UI
123
- dispatch({
124
- type: 'LocalMuteVideo',
125
- value: [
126
- localVideoState === ToggleState.enabled
127
- ? ToggleState.disabling
128
- : ToggleState.enabling,
129
- ],
130
- });
131
-
132
- try {
133
- //enableLocalVideo not available on web
134
- isWebInternal()
135
- ? await RtcEngineUnsafe.muteLocalVideoStream(
136
- localVideoState === ToggleState.enabled ? true : false,
137
- )
138
- : await RtcEngineUnsafe.enableLocalVideo(
139
- localVideoState === ToggleState.enabled ? false : true,
140
- );
141
-
142
- // Enable UI
118
+ if (localVideoState !== _action) {
143
119
  dispatch({
144
120
  type: 'LocalMuteVideo',
145
121
  value: [
146
122
  localVideoState === ToggleState.enabled
147
- ? ToggleState.disabled
148
- : ToggleState.enabled,
123
+ ? ToggleState.disabling
124
+ : ToggleState.enabling,
149
125
  ],
150
126
  });
151
- } catch (e) {
152
- console.log('error while dispatching');
153
- dispatch({
154
- type: 'LocalMuteVideo',
155
- value: [localVideoState],
156
- });
127
+
128
+ try {
129
+ //enableLocalVideo not available on web
130
+ isWebInternal()
131
+ ? await RtcEngineUnsafe.muteLocalVideoStream(
132
+ localVideoState === ToggleState.enabled ? true : false,
133
+ )
134
+ : //@ts-ignore
135
+ await RtcEngineUnsafe.enableLocalVideo(
136
+ localVideoState === ToggleState.enabled ? false : true,
137
+ );
138
+ /**
139
+ * In native only
140
+ * hotfix for livestream co-presenter video publishing
141
+ * enableLocalVideo -> only enabled local video not publishing video stream
142
+ * enable publishing for livestreaming presenter(who raised hand and approved by host)
143
+ */
144
+ if ((isAndroid() || isIOS()) && isLiveStream && isBroadCasting) {
145
+ await RtcEngineUnsafe.muteLocalVideoStream(
146
+ localVideoState === ToggleState.enabled ? true : false,
147
+ );
148
+ }
149
+ // Enable UI
150
+ dispatch({
151
+ type: 'LocalMuteVideo',
152
+ value: [
153
+ localVideoState === ToggleState.enabled
154
+ ? ToggleState.disabled
155
+ : ToggleState.enabled,
156
+ ],
157
+ });
158
+ handleQueue();
159
+ } catch (e) {
160
+ dispatch({
161
+ type: 'LocalMuteVideo',
162
+ value: [localVideoState],
163
+ });
164
+ handleQueue();
165
+ if (_fromSdk) {
166
+ throw e;
167
+ } else {
168
+ console.error('Error toggling video', e);
169
+ }
170
+ }
171
+ } else {
172
+ handleQueue();
157
173
  }
158
174
  }
159
175
  break;
160
176
  }
161
177
  };
178
+
179
+ return toggleMute;
162
180
  }
163
181
 
164
182
  export default useMuteToggleLocal;
@@ -13,11 +13,12 @@ import {useCustomization} from 'customization-implementation';
13
13
  import {useLanguage} from '../language/useLanguage';
14
14
  import {DEFAULT_I18_DATA} from '../language';
15
15
  import {TextDataInterface} from '../language/default-labels/index';
16
+ import {useEffect, useRef} from 'react';
16
17
 
17
18
  export function usei18nData(
18
19
  selectedLanguageCode: string = DEFAULT_I18_DATA.locale,
19
20
  ) {
20
- const languageData = useCustomization((data) => data?.i18n);
21
+ const languageData = useCustomization(data => data?.i18n);
21
22
  if (
22
23
  !selectedLanguageCode ||
23
24
  !languageData ||
@@ -27,7 +28,7 @@ export function usei18nData(
27
28
  return DEFAULT_I18_DATA.data;
28
29
  } else {
29
30
  let selectedLanguageData = languageData.find(
30
- (item) => item.locale === selectedLanguageCode,
31
+ item => item.locale === selectedLanguageCode,
31
32
  );
32
33
  if (selectedLanguageData && selectedLanguageData.data) {
33
34
  return {
@@ -43,7 +44,7 @@ export function usei18nData(
43
44
  export function useString<T = string>(
44
45
  keyName: keyof TextDataInterface,
45
46
  ): (input?: T) => string {
46
- const lanCode = useLanguage((data) => data.languageCode);
47
+ const lanCode = useLanguage(data => data.languageCode);
47
48
  const textData = usei18nData(lanCode);
48
49
  const getString = (input?: T) => {
49
50
  let keyValue = textData ? textData[keyName] : undefined;
@@ -59,3 +60,12 @@ export function useString<T = string>(
59
60
  };
60
61
  return getString;
61
62
  }
63
+
64
+ export const useStringRef = (key: keyof TextDataInterface) => {
65
+ const fn = useString(key);
66
+ const refFn = useRef(fn);
67
+ useEffect(() => {
68
+ refFn.current = fn;
69
+ }, [fn]);
70
+ return refFn;
71
+ };
@@ -0,0 +1,42 @@
1
+ declare module "src/SDKAppWrapper" {
2
+ import { CustomizationApiInterface, MeetingInfoContextInterface, customEvents } from "customization-api/index";
3
+ import { userEventsMapInterface } from "src/utils/SdkEvents";
4
+ import { Unsubscribe } from 'nanoevents';
5
+ import { deviceId } from "src/components/DeviceConfigure";
6
+ type meetingData = Partial<MeetingInfoContextInterface['data']>;
7
+ export interface AppBuilderSdkApiInterface {
8
+ customize: (customization: CustomizationApiInterface) => Promise<void>;
9
+ joinRoom: (roomDetails: string | meetingData, userName?: string) => Promise<meetingData>;
10
+ joinPrecall: (roomDetails: string | meetingData, userName?: string) => Promise<[meetingData, (userName?: string) => Promise<MeetingInfoContextInterface['data']>]>;
11
+ setMicrophone: (deviceId: deviceId) => Promise<void>;
12
+ setCamera: (deviceId: deviceId) => Promise<void>;
13
+ setSpeaker: (deviceId: deviceId) => Promise<void>;
14
+ muteAudio: (mute: boolean | ((currentMute: boolean) => boolean)) => Promise<void>;
15
+ muteVideo: (mute: boolean | ((currentMute: boolean) => boolean)) => Promise<void>;
16
+ createCustomization: (customization: CustomizationApiInterface) => CustomizationApiInterface;
17
+ login: (token: string) => Promise<void>;
18
+ logout: () => Promise<void>;
19
+ customEvents: typeof customEvents;
20
+ on: <T extends keyof userEventsMapInterface>(userEventName: T, cb: userEventsMapInterface[T]) => Unsubscribe;
21
+ }
22
+ export const AppBuilderSdkApi: AppBuilderSdkApiInterface;
23
+ const SDKAppWrapper: () => JSX.Element;
24
+ export default SDKAppWrapper;
25
+ }
26
+ declare module "index.rsdk" {
27
+ /**
28
+ * @format
29
+ */
30
+ import { AppBuilderSdkApiInterface } from "src/SDKAppWrapper";
31
+ import React from 'react';
32
+ import * as RN from 'react-native-web';
33
+ import './src/assets/font-styles.css';
34
+ export * from "customization-api/index";
35
+ export * from "customization-implementation/index";
36
+ interface AppBuilderReactSdkInterface extends AppBuilderSdkApiInterface {
37
+ View: React.FC;
38
+ }
39
+ const AppBuilderReactSdkApi: AppBuilderReactSdkInterface;
40
+ export { React, RN };
41
+ export default AppBuilderReactSdkApi;
42
+ }
@@ -4,7 +4,7 @@
4
4
  // "files":["./customization-api/index.ts","./global.d.ts","./bridge/rtm/web/index.ts","./bridge/rtc/webNg/index.ts"],
5
5
  // --------------------------------------------------------
6
6
  // Use with typescript tsc command
7
- "files": ["./src/SDKAppWrapper.tsx", "./index.rsdk.tsx", "./global.d.ts"],
7
+ "files": ["./index.rsdk.tsx", "./global.d.ts"],
8
8
  // --------------------------------------------------------
9
9
  "compilerOptions": {
10
10
  /* Basic Options */
@@ -47,8 +47,8 @@
47
47
  // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
48
48
 
49
49
  /* Module Resolution Options */
50
- // "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
51
- "noResolve": true /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
50
+ "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
51
+ "noResolve": false /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
52
52
  "baseUrl": "./" /* Base directory to resolve non-absolute module names. */,
53
53
  "resolveJsonModule": true,
54
54
  // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
@@ -4,7 +4,7 @@
4
4
  // "files":["./customization-api/index.ts","./global.d.ts","./bridge/rtm/web/index.ts","./bridge/rtc/webNg/index.ts"],
5
5
  // --------------------------------------------------------
6
6
  // Use with typescript tsc command
7
- "files": ["./src/SDKAppWrapper.tsx", "./index.wsdk.tsx", "./global.d.ts"],
7
+ "files": ["./index.wsdk.tsx", "./global.d.ts"],
8
8
  // --------------------------------------------------------
9
9
  "compilerOptions": {
10
10
  /* Basic Options */
@@ -27,6 +27,26 @@
27
27
  /* *:active {
28
28
  outline: none;
29
29
  } */
30
+ /* Webkit (Chrome, Safari) */
31
+ ::-webkit-scrollbar {
32
+ width: 4px;
33
+ }
34
+
35
+ ::-webkit-scrollbar-track {
36
+ background-color: transparent;
37
+ }
38
+
39
+ ::-webkit-scrollbar-thumb {
40
+ background-color: #777;
41
+ border-radius: 2px;
42
+ }
43
+
44
+ /* Firefox */
45
+ html {
46
+ scrollbar-width: thin;
47
+ scrollbar-color: transparent #777;
48
+ }
49
+
30
50
  </style>
31
51
  <div id="react-app" style="
32
52
  height: 100vh;
@@ -34,15 +34,15 @@ module.exports = {
34
34
  plugins: [
35
35
  // Using html webpack plugin to utilize our index.html
36
36
  !isSdk &&
37
- new HtmlWebpackPlugin({
38
- title: configVars['$config.APP_NAME'],
39
- template: isElectron ? 'electron/index.html' : 'web/index.html',
40
- }),
37
+ new HtmlWebpackPlugin({
38
+ title: configVars['$config.APP_NAME'],
39
+ template: isElectron ? 'electron/index.html' : 'web/index.html',
40
+ }),
41
41
  isDevelopment &&
42
- !isSdk &&
43
- new ReactRefreshWebpackPlugin({
44
- overlay: false,
45
- }),
42
+ !isSdk &&
43
+ new ReactRefreshWebpackPlugin({
44
+ overlay: false,
45
+ }),
46
46
  ].filter(Boolean),
47
47
  resolve: {
48
48
  alias: {
@@ -141,9 +141,20 @@ module.exports = {
141
141
  },
142
142
  {
143
143
  test: /\.css$/i,
144
- use: ["style-loader", "css-loader"],
144
+ use: ['style-loader', 'css-loader'],
145
+ },
146
+ {
147
+ test: /\.(wasm)$/i,
148
+ use: [
149
+ {
150
+ loader: 'file-loader',
151
+ options: {
152
+ outputPath: 'wasm',
153
+ name: '[name].[ext]',
154
+ },
155
+ },
156
+ ],
145
157
  },
146
-
147
158
  ],
148
159
  },
149
160
  };
@@ -31,8 +31,12 @@ module.exports = merge(commons, {
31
31
  // https: true,
32
32
  historyApiFallback: true, // Support for react-router
33
33
  static: './', // same as contentBase from webpack v4 config
34
- client:{
35
- overlay: false
36
- }
34
+ client: {
35
+ overlay: false,
36
+ },
37
+ headers: {
38
+ 'Access-Control-Allow-Origin': '*',
39
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
40
+ },
37
41
  },
38
42
  });
@@ -1,6 +0,0 @@
1
-
2
- [android]
3
- target = Google Inc.:Google APIs:23
4
-
5
- [maven_repositories]
6
- central = https://repo1.maven.org/maven2
@@ -1 +0,0 @@
1
- *.pbxproj -text
@@ -1,55 +0,0 @@
1
- # To learn about Buck see [Docs](https://buckbuild.com/).
2
- # To run your application with Buck:
3
- # - install Buck
4
- # - `npm start` - to start the packager
5
- # - `cd android`
6
- # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7
- # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8
- # - `buck install -r android/app` - compile, install and run application
9
- #
10
-
11
- load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
12
-
13
- lib_deps = []
14
-
15
- create_aar_targets(glob(["libs/*.aar"]))
16
-
17
- create_jar_targets(glob(["libs/*.jar"]))
18
-
19
- android_library(
20
- name = "all-libs",
21
- exported_deps = lib_deps,
22
- )
23
-
24
- android_library(
25
- name = "app-code",
26
- srcs = glob([
27
- "src/main/java/**/*.java",
28
- ]),
29
- deps = [
30
- ":all-libs",
31
- ":build_config",
32
- ":res",
33
- ],
34
- )
35
-
36
- android_build_config(
37
- name = "build_config",
38
- package = "com.helloworld",
39
- )
40
-
41
- android_resource(
42
- name = "res",
43
- package = "com.helloworld",
44
- res = "src/main/res",
45
- )
46
-
47
- android_binary(
48
- name = "app",
49
- keystore = "//android/keystores:debug",
50
- manifest = "src/main/AndroidManifest.xml",
51
- package_type = "debug",
52
- deps = [
53
- ":app-code",
54
- ],
55
- )
@@ -1,19 +0,0 @@
1
- """Helper definitions to glob .aar and .jar targets"""
2
-
3
- def create_aar_targets(aarfiles):
4
- for aarfile in aarfiles:
5
- name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
6
- lib_deps.append(":" + name)
7
- android_prebuilt_aar(
8
- name = name,
9
- aar = aarfile,
10
- )
11
-
12
- def create_jar_targets(jarfiles):
13
- for jarfile in jarfiles:
14
- name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
15
- lib_deps.append(":" + name)
16
- prebuilt_jar(
17
- name = name,
18
- binary_jar = jarfile,
19
- )
@@ -1,74 +0,0 @@
1
- #import "AppDelegate.h"
2
-
3
- #import <React/RCTBridge.h>
4
- #import <React/RCTBundleURLProvider.h>
5
- #import <React/RCTRootView.h>
6
- #import <React/RCTLinkingManager.h>
7
-
8
- #ifdef FB_SONARKIT_ENABLED
9
- #import <FlipperKit/FlipperClient.h>
10
- #import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
11
- #import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
12
- #import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
13
- #import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
14
- #import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
15
-
16
- static void InitializeFlipper(UIApplication *application) {
17
- FlipperClient *client = [FlipperClient sharedClient];
18
- SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
19
- [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
20
- [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
21
- [client addPlugin:[FlipperKitReactPlugin new]];
22
- [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
23
- [client start];
24
- }
25
- #endif
26
-
27
- @implementation AppDelegate
28
-
29
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
30
- {
31
- #ifdef FB_SONARKIT_ENABLED
32
- InitializeFlipper(application);
33
- #endif
34
-
35
- RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
36
- RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
37
- moduleName:@"HelloWorld"
38
- initialProperties:nil];
39
-
40
- rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
41
-
42
- self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
43
- UIViewController *rootViewController = [UIViewController new];
44
- rootViewController.view = rootView;
45
- self.window.rootViewController = rootViewController;
46
- [self.window makeKeyAndVisible];
47
- return YES;
48
- }
49
-
50
- - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
51
- {
52
- #if DEBUG
53
- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
54
- #else
55
- return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
56
- #endif
57
- }
58
-
59
- - (BOOL)application:(UIApplication *)application
60
- openURL:(NSURL *)url
61
- options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
62
- {
63
- return [RCTLinkingManager application:application openURL:url options:options];
64
- }
65
-
66
- - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity
67
- restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
68
- {
69
- return [RCTLinkingManager application:application
70
- continueUserActivity:userActivity
71
- restorationHandler:restorationHandler];
72
- }
73
-
74
- @end
@@ -1,41 +0,0 @@
1
- /*
2
- ********************************************
3
- Copyright © 2021 Agora Lab, Inc., all rights reserved.
4
- AppBuilder and all associated components, source code, APIs, services, and documentation
5
- (the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
6
- accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
7
- Use without a license or in violation of any license terms and conditions (including use for
8
- any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
9
- information visit https://appbuilder.agora.io.
10
- *********************************************
11
- */
12
- import React from 'react';
13
- import {useHistory} from './Router';
14
- import SelectOAuth from '../subComponents/SelectOAuth';
15
- import {url, oAuthSystemType} from './OAuthConfig';
16
-
17
- const Oauth = () => {
18
- const history = useHistory();
19
- const onSelectOAuthSystem = ({
20
- oAuthSystem,
21
- }: {
22
- oAuthSystem: oAuthSystemType;
23
- }) => {
24
- console.log('electron OAuth');
25
- const oAuthUrl = url({platform: 'desktop'})[`${oAuthSystem}Url`];
26
- // @ts-ignore
27
- window.addEventListener(
28
- 'message',
29
- ({data, origin}: {data: {token: string}; origin: string}) => {
30
- if (data.token) {
31
- console.log(data, origin);
32
- history.push(`/auth-token/${data.token}`);
33
- }
34
- },
35
- false,
36
- );
37
- window.open(oAuthUrl, 'modal');
38
- };
39
- return <SelectOAuth onSelectOAuth={onSelectOAuthSystem} />;
40
- };
41
- export default Oauth;