agora-appbuilder-core 2.2.0 → 2.3.0-beta.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 (301) hide show
  1. package/Readme.md +7 -1
  2. package/package.json +4 -3
  3. package/template/Gulpfile.js +306 -87
  4. package/template/_gitignore +4 -1
  5. package/template/_package-lock.json +32186 -3078
  6. package/template/agora-rn-uikit/src/AgoraUIKit.tsx +23 -20
  7. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +13 -8
  8. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +25 -9
  9. package/template/agora-rn-uikit/src/Contexts/RenderContext.tsx +10 -0
  10. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +11 -5
  11. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +6 -2
  12. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +1 -1
  13. package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -2
  14. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +2 -2
  15. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +2 -2
  16. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +6 -2
  17. package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +11 -6
  18. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +10 -6
  19. package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +7 -6
  20. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +6 -5
  21. package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +3 -3
  22. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +16 -13
  23. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +16 -13
  24. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +13 -13
  25. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +16 -13
  26. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +28 -31
  27. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +48 -35
  28. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +11 -13
  29. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +11 -13
  30. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +18 -15
  31. package/template/agora-rn-uikit/src/Rtc/Create.tsx +14 -2
  32. package/template/agora-rn-uikit/src/Rtc/Join.tsx +19 -3
  33. package/template/agora-rn-uikit/src/RtcConfigure.tsx +161 -44
  34. package/template/agora-rn-uikit/src/Utils/useLocalUid.ts +8 -0
  35. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +8 -6
  36. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +8 -6
  37. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +18 -9
  38. package/template/agora-rn-uikit/src/index.ts +12 -12
  39. package/template/babel.config.js +17 -1
  40. package/template/bridge/rtc/webNg/RtcEngine.ts +34 -28
  41. package/template/bridge/rtc/webNg/SurfaceView.tsx +3 -2
  42. package/template/bridge/rtc/webNg/Types.ts +14 -0
  43. package/template/bridge/rtc/webNg/index.ts +5 -2
  44. package/template/bridge/rtm/web/index.ts +13 -7
  45. package/template/electron-builder.js +3 -2
  46. package/template/esbuild.rsdk.go +226 -0
  47. package/template/{src/subComponents/LayoutEnum.tsx → esbuildConfigTransform.js} +1 -5
  48. package/template/fpe-api/components.ts +42 -0
  49. package/template/fpe-api/context.ts +45 -0
  50. package/template/fpe-api/fpeEvents.ts +9 -0
  51. package/template/fpe-api/index.ts +21 -0
  52. package/template/fpe-api/install.ts +128 -0
  53. package/template/fpe-api/typeDefinition.ts +143 -0
  54. package/template/fpe-api/useFpe.tsx +35 -0
  55. package/template/fpe-api/utils.ts +62 -0
  56. package/template/fpe-implementation/createHook.ts +33 -0
  57. package/template/fpe-implementation/dummyFpe.ts +17 -0
  58. package/template/fpe-implementation/index.ts +1 -0
  59. package/template/fpe-todo.txt +14 -0
  60. package/template/fpe.config.js +29 -0
  61. package/template/global.d.ts +4 -0
  62. package/template/index.rsdk.tsx +27 -0
  63. package/template/index.wsdk.tsx +27 -0
  64. package/template/package.json +28 -12
  65. package/template/react-native-toast-message/src/index.js +9 -10
  66. package/template/react-native-toast-message/src/index.wsdk.js +419 -0
  67. package/template/src/App.tsx +97 -65
  68. package/template/src/AppWrapper.tsx +79 -0
  69. package/template/src/SDKAppWrapper.tsx +67 -0
  70. package/template/src/atoms/PrimaryButton.tsx +14 -8
  71. package/template/src/atoms/TextInput.tsx +13 -5
  72. package/template/src/components/Chat.tsx +171 -139
  73. package/template/src/components/ChatContext.ts +14 -22
  74. package/template/src/components/ColorConfigure.tsx +2 -2
  75. package/template/src/components/Controls.native.tsx +72 -62
  76. package/template/src/components/Controls.tsx +90 -69
  77. package/template/src/components/DeviceConfigure.tsx +1 -1
  78. package/template/src/components/DeviceContext.tsx +14 -7
  79. package/template/src/components/GraphQLProvider.tsx +9 -2
  80. package/template/src/components/GridVideo.tsx +20 -159
  81. package/template/src/components/HostControlView.tsx +54 -15
  82. package/template/src/components/Navbar.tsx +408 -157
  83. package/template/src/components/NetworkQualityContext.tsx +29 -22
  84. package/template/src/components/ParticipantsView.tsx +91 -115
  85. package/template/src/components/PinnedVideo.tsx +41 -188
  86. package/template/src/components/Precall.native.tsx +131 -97
  87. package/template/src/components/Precall.tsx +193 -158
  88. package/template/src/components/RTMConfigure.tsx +328 -416
  89. package/template/src/components/Router.sdk.ts +20 -0
  90. package/template/src/components/SessionContext.tsx +6 -3
  91. package/template/src/components/Settings.native.tsx +3 -0
  92. package/template/src/components/Settings.tsx +65 -31
  93. package/template/src/components/SettingsView.tsx +14 -8
  94. package/template/src/components/Share.tsx +188 -220
  95. package/template/src/components/StorageContext.tsx +5 -5
  96. package/template/src/components/StoreToken.tsx +5 -1
  97. package/template/src/components/chat-messages/useChatMessages.tsx +208 -0
  98. package/template/src/components/chat-notification/useChatNotification.tsx +78 -0
  99. package/template/src/components/chat-ui/useChatUIControl.tsx +66 -0
  100. package/template/src/components/common/Error.tsx +54 -0
  101. package/template/src/components/common/Logo.tsx +35 -0
  102. package/template/src/components/common/index.tsx +8 -0
  103. package/template/src/components/contexts/LiveStreamDataContext.tsx +79 -0
  104. package/template/src/components/contexts/ScreenShareContext.tsx +47 -0
  105. package/template/src/components/contexts/WhiteboardContext.tsx +59 -0
  106. package/template/src/components/dimension/DimensionContext.ts +27 -0
  107. package/template/src/components/dimension/DimensionProvider.tsx +34 -0
  108. package/template/src/components/livestream/LiveStreamContext.tsx +293 -272
  109. package/template/src/components/livestream/Types.ts +26 -7
  110. package/template/src/components/livestream/index.ts +13 -2
  111. package/template/src/components/livestream/views/LiveStreamControls.tsx +5 -1
  112. package/template/src/components/meeting-info/useMeetingInfo.tsx +63 -0
  113. package/template/src/components/meeting-info/useSetMeetingInfo.tsx +38 -0
  114. package/template/src/components/participants/AllAudienceParticipants.tsx +26 -21
  115. package/template/src/components/participants/AllHostParticipants.tsx +41 -53
  116. package/template/src/components/participants/MeParticipant.tsx +9 -10
  117. package/template/src/components/participants/ParticipantName.tsx +2 -1
  118. package/template/src/components/participants/RemoteParticipants.tsx +3 -3
  119. package/template/src/components/precall/LocalMute.native.tsx +91 -0
  120. package/template/src/components/precall/LocalMute.tsx +90 -0
  121. package/template/src/components/precall/VideoPreview.native.tsx +35 -0
  122. package/template/src/components/precall/VideoPreview.tsx +33 -0
  123. package/template/src/components/precall/index.tsx +28 -0
  124. package/template/src/components/precall/joinCallBtn.native.tsx +69 -0
  125. package/template/src/components/precall/joinCallBtn.tsx +91 -0
  126. package/template/src/components/precall/meetingTitle.tsx +26 -0
  127. package/template/src/components/precall/selectDevice.tsx +46 -0
  128. package/template/src/components/precall/textInput.tsx +43 -0
  129. package/template/src/components/precall/usePreCall.tsx +41 -0
  130. package/template/src/components/styles.ts +20 -3
  131. package/template/src/components/useShareLink.tsx +239 -0
  132. package/template/src/components/useWakeLock.tsx +3 -3
  133. package/template/src/custom-events/CustomEvents.ts +221 -0
  134. package/template/src/custom-events/index.tsx +4 -0
  135. package/template/src/custom-events/types.ts +51 -0
  136. package/template/src/language/default-labels/commonLabels.ts +21 -0
  137. package/template/src/language/default-labels/createScreenLabels.ts +22 -0
  138. package/template/src/language/default-labels/index.ts +38 -0
  139. package/template/src/language/default-labels/joinScreenLabels.ts +13 -0
  140. package/template/src/language/default-labels/precallScreenLabels.ts +33 -0
  141. package/template/src/language/default-labels/shareLinkScreenLabels.ts +44 -0
  142. package/template/src/language/default-labels/videoCallScreenLabels.ts +189 -0
  143. package/template/src/language/i18nTypes.ts +10 -0
  144. package/template/src/language/index.ts +18 -0
  145. package/template/src/language/useLanguage.tsx +92 -0
  146. package/template/src/pages/Authenticate.tsx +21 -15
  147. package/template/src/pages/Create.tsx +176 -159
  148. package/template/src/pages/Join.tsx +44 -32
  149. package/template/src/pages/VideoCall.tsx +134 -406
  150. package/template/src/pages/create/useCreate.tsx +37 -0
  151. package/template/src/pages/video-call/CustomLayout.ts +17 -0
  152. package/template/src/pages/video-call/CustomUserContextHolder.tsx +12 -0
  153. package/template/src/pages/video-call/DefaultLayouts.ts +65 -0
  154. package/template/src/pages/video-call/NameWithMicStatus.tsx +62 -0
  155. package/template/src/pages/video-call/RenderComponent.tsx +52 -0
  156. package/template/src/pages/video-call/VideoCallScreen.tsx +191 -0
  157. package/template/src/pages/video-call/VideoComponent.tsx +34 -0
  158. package/template/src/pages/video-call/VideoRenderer.tsx +86 -0
  159. package/template/src/pages/video-call/index.ts +20 -0
  160. package/template/src/rtm/RTMEngine.ts +58 -0
  161. package/template/src/rtm/utils.ts +44 -0
  162. package/template/src/rtm-events/EventUtils.ts +267 -0
  163. package/template/src/rtm-events/EventsQueue.ts +38 -0
  164. package/template/src/rtm-events/constants.ts +40 -0
  165. package/template/src/rtm-events/index.tsx +8 -0
  166. package/template/src/rtm-events/types.ts +7 -0
  167. package/template/src/subComponents/ChatBubble.tsx +18 -11
  168. package/template/src/subComponents/ChatContainer.tsx +79 -30
  169. package/template/src/subComponents/ChatInput.tsx +146 -70
  170. package/template/src/subComponents/CopyJoinInfo.tsx +52 -67
  171. package/template/src/subComponents/Error.tsx +35 -24
  172. package/template/src/subComponents/LanguageSelector.tsx +85 -0
  173. package/template/src/subComponents/LayoutIconDropdown.native.tsx +163 -0
  174. package/template/src/subComponents/LayoutIconDropdown.tsx +198 -0
  175. package/template/src/subComponents/LocalAudioMute.tsx +52 -30
  176. package/template/src/subComponents/LocalEndCall.tsx +52 -0
  177. package/template/src/subComponents/LocalSwitchCamera.tsx +61 -0
  178. package/template/src/subComponents/LocalVideoMute.tsx +48 -30
  179. package/template/src/subComponents/LogoutButton.tsx +20 -5
  180. package/template/src/subComponents/NetworkQualityPill.tsx +43 -13
  181. package/template/src/subComponents/OpenInNativeButton.tsx +3 -2
  182. package/template/src/subComponents/Recording.tsx +46 -138
  183. package/template/src/subComponents/RemoteAudioMute.tsx +30 -34
  184. package/template/src/subComponents/RemoteEndCall.tsx +18 -7
  185. package/template/src/subComponents/RemoteVideoMute.tsx +17 -9
  186. package/template/src/subComponents/ScreenShareNotice.tsx +40 -40
  187. package/template/src/subComponents/SelectDevice.tsx +88 -45
  188. package/template/src/subComponents/SelectOAuth.tsx +30 -6
  189. package/template/src/subComponents/SidePanelButtons.ts +39 -0
  190. package/template/src/subComponents/TextWithTooltip.native.tsx +2 -1
  191. package/template/src/subComponents/TextWithTooltip.tsx +15 -20
  192. package/template/src/subComponents/chat/ChatParticipants.tsx +31 -32
  193. package/template/src/subComponents/livestream/ApprovedLiveStreamControlsView.tsx +7 -3
  194. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -18
  195. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +22 -8
  196. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +12 -7
  197. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +24 -27
  198. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +23 -26
  199. package/template/src/subComponents/livestream/index.ts +10 -2
  200. package/template/src/subComponents/recording/useRecording.tsx +209 -0
  201. package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +64 -0
  202. package/template/src/subComponents/screenshare/ScreenshareButton.native.tsx +18 -0
  203. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +61 -31
  204. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +57 -52
  205. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +102 -143
  206. package/template/src/subComponents/screenshare/useScreenshare.tsx +29 -0
  207. package/template/src/subComponents/toastConfig.tsx +25 -20
  208. package/template/src/utils/IsAttendeeUser.ts +34 -0
  209. package/template/src/utils/SdkEvents.ts +68 -0
  210. package/template/src/utils/common.tsx +40 -0
  211. package/template/src/utils/eventEmitter.ts +29 -0
  212. package/template/src/utils/getMeetingInvite.ts +30 -0
  213. package/template/src/utils/index.tsx +11 -2
  214. package/template/src/utils/isAudioEnabled.ts +29 -0
  215. package/template/src/utils/isHostUser.ts +33 -0
  216. package/template/src/utils/isMobileOrTablet.native.ts +5 -0
  217. package/template/src/utils/{mobileWebTest.tsx → isMobileOrTablet.ts} +5 -2
  218. package/template/src/utils/isPSTNUser.ts +30 -0
  219. package/template/src/utils/isSDK.sdk.ts +5 -0
  220. package/template/src/utils/isSDK.ts +5 -0
  221. package/template/src/utils/isScreenShareUser.ts +31 -0
  222. package/template/src/utils/isVideoEnabled.ts +29 -0
  223. package/template/src/utils/useButtonTemplate.tsx +43 -0
  224. package/template/src/utils/useCreateMeeting.ts +74 -0
  225. package/template/src/utils/useGetLiveStreamingRequests.ts +24 -0
  226. package/template/src/utils/useGetMeetingPhrase.ts +68 -0
  227. package/template/src/utils/useGetName.ts +20 -0
  228. package/template/src/{subComponents/screenshare/ScreenshareContext.tsx → utils/useGroupMessages.ts} +10 -7
  229. package/template/src/utils/useJoinMeeting.ts +120 -0
  230. package/template/src/utils/useLayout.tsx +40 -0
  231. package/template/src/utils/useLiveStreamingUids.ts +26 -0
  232. package/template/src/utils/useMutePSTN.ts +43 -0
  233. package/template/src/utils/useMuteToggleLocal.ts +109 -0
  234. package/template/src/utils/useNavParams.ts +6 -0
  235. package/template/src/utils/useNavigateTo.ts +8 -0
  236. package/template/src/utils/usePrivateMessages.ts +33 -0
  237. package/template/src/utils/useRemoteEndCall.ts +27 -0
  238. package/template/src/utils/useRemoteMute.ts +64 -0
  239. package/template/src/utils/useSendControlMessage.ts +51 -0
  240. package/template/src/utils/useSendMessage.ts +40 -0
  241. package/template/src/utils/useSetName.ts +20 -0
  242. package/template/src/utils/useSetUnreadMessageCount.ts +43 -0
  243. package/template/src/utils/useSidePanel.tsx +41 -0
  244. package/template/src/utils/useString.ts +61 -0
  245. package/template/src/utils/useUnreadMessageCount.ts +50 -0
  246. package/template/src/utils/useUserList.ts +26 -0
  247. package/template/tsconfig.json +4 -4
  248. package/template/tsconfig_fpeApi.json +103 -0
  249. package/template/tsconfig_rsdk_index.json +105 -0
  250. package/template/tsconfig_wsdk_index.json +104 -0
  251. package/template/webpack.commons.js +40 -16
  252. package/template/webpack.main.config.js +2 -1
  253. package/template/webpack.renderer.config.js +1 -1
  254. package/template/webpack.rsdk.config.js +33 -0
  255. package/template/webpack.ts.config.js +89 -0
  256. package/template/webpack.web.config.js +8 -1
  257. package/template/webpack.wsdk.config.js +34 -0
  258. package/template/agora-rn-uikit/.git/HEAD +0 -1
  259. package/template/agora-rn-uikit/.git/config +0 -16
  260. package/template/agora-rn-uikit/.git/description +0 -1
  261. package/template/agora-rn-uikit/.git/hooks/applypatch-msg.sample +0 -15
  262. package/template/agora-rn-uikit/.git/hooks/commit-msg.sample +0 -24
  263. package/template/agora-rn-uikit/.git/hooks/fsmonitor-watchman.sample +0 -173
  264. package/template/agora-rn-uikit/.git/hooks/post-update.sample +0 -8
  265. package/template/agora-rn-uikit/.git/hooks/pre-applypatch.sample +0 -14
  266. package/template/agora-rn-uikit/.git/hooks/pre-commit.sample +0 -49
  267. package/template/agora-rn-uikit/.git/hooks/pre-merge-commit.sample +0 -13
  268. package/template/agora-rn-uikit/.git/hooks/pre-push.sample +0 -53
  269. package/template/agora-rn-uikit/.git/hooks/pre-rebase.sample +0 -169
  270. package/template/agora-rn-uikit/.git/hooks/pre-receive.sample +0 -24
  271. package/template/agora-rn-uikit/.git/hooks/prepare-commit-msg.sample +0 -42
  272. package/template/agora-rn-uikit/.git/hooks/push-to-checkout.sample +0 -78
  273. package/template/agora-rn-uikit/.git/hooks/update.sample +0 -128
  274. package/template/agora-rn-uikit/.git/index +0 -0
  275. package/template/agora-rn-uikit/.git/info/exclude +0 -6
  276. package/template/agora-rn-uikit/.git/logs/HEAD +0 -2
  277. package/template/agora-rn-uikit/.git/logs/refs/heads/ab-dev-auto +0 -1
  278. package/template/agora-rn-uikit/.git/logs/refs/heads/master +0 -1
  279. package/template/agora-rn-uikit/.git/logs/refs/remotes/origin/HEAD +0 -1
  280. package/template/agora-rn-uikit/.git/objects/pack/pack-0061d00cd98162a329a32b537488a35d0abeb069.idx +0 -0
  281. package/template/agora-rn-uikit/.git/objects/pack/pack-0061d00cd98162a329a32b537488a35d0abeb069.pack +0 -0
  282. package/template/agora-rn-uikit/.git/packed-refs +0 -24
  283. package/template/agora-rn-uikit/.git/refs/heads/ab-dev-auto +0 -1
  284. package/template/agora-rn-uikit/.git/refs/heads/master +0 -1
  285. package/template/agora-rn-uikit/.git/refs/remotes/origin/HEAD +0 -1
  286. package/template/agora-rn-uikit/.gitignore +0 -63
  287. package/template/agora-rn-uikit/package-lock.json +0 -7612
  288. package/template/agora-rn-uikit/src/Contexts/MaxUidContext.tsx +0 -7
  289. package/template/agora-rn-uikit/src/Contexts/MinUidContext.tsx +0 -8
  290. package/template/package-lock.json +0 -22923
  291. package/template/react-native-toast-message/.gitignore +0 -5
  292. package/template/react-native-toast-message/.npmignore +0 -5
  293. package/template/react-native-toast-message/package-lock.json +0 -10553
  294. package/template/src/.DS_Store +0 -0
  295. package/template/src/components/participants/context/ParticipantContext.tsx +0 -97
  296. package/template/src/subComponents/.DS_Store +0 -0
  297. package/template/src/subComponents/ScreenshareButton.tsx +0 -257
  298. package/template/src/subComponents/SwitchCamera.tsx +0 -35
  299. package/template/src/utils/hasBrandLogo.tsx +0 -3
  300. package/template/src/utils/mobileWebTest.native.tsx +0 -5
  301. package/template/src/utils/shouldAuthenticate.tsx +0 -7
@@ -0,0 +1,62 @@
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
+ // commented for v1 release
13
+ //export {default as useIsScreenShare} from '../src/utils/isScreenShareUser';
14
+ export {default as useIsHost} from '../src/utils/isHostUser';
15
+ export {default as useIsAttendee} from '../src/utils/IsAttendeeUser';
16
+ export {default as useIsPSTN} from '../src/utils/isPSTNUser';
17
+ export {default as useUserList} from '../src/utils/useUserList';
18
+ // commented for v1 release
19
+ //export {default as useGroupMessages} from '../src/utils/useGroupMessages';
20
+ //export {default as usePrivateMessages} from '../src/utils/usePrivateMessages';
21
+ export {default as useIsAudioEnabled} from '../src/utils/isAudioEnabled';
22
+ export {default as useIsVideoEnabled} from '../src/utils/isVideoEnabled';
23
+ export {default as useSetName} from '../src/utils/useSetName';
24
+ export {default as useGetName} from '../src/utils/useGetName';
25
+ // commented for v1 release
26
+ //export {useSidePanel} from '../src/utils/useSidePanel';
27
+ // commented for v1 release
28
+ // export {
29
+ // default as useUnreadMessageCount,
30
+ // UNREAD_MESSAGE_COUNT_TYPE,
31
+ // } from '../src/utils/useUnreadMessageCount';
32
+ // export {
33
+ // default as useSetUnreadMessageCount,
34
+ // SET_UNREAD_MESSAGE_COUNT_TYPE,
35
+ // } from '../src/utils/useSetUnreadMessageCount';
36
+ export {default as useNavigateTo} from '../src/utils/useNavigateTo';
37
+ export {default as useNavParams} from '../src/utils/useNavParams';
38
+ export {default as useCreateMeeting} from '../src/utils/useCreateMeeting';
39
+ export {default as useJoinMeeting} from '../src/utils/useJoinMeeting';
40
+ // commented for v1 release
41
+ // export {
42
+ // default as useSendMessage,
43
+ // MESSAGE_TYPE,
44
+ // } from '../src/utils/useSendMessage';
45
+ // export {controlMessageEnum} from '../src/components/ChatContext';
46
+ // export {
47
+ // default as useSendControlMessage,
48
+ // CONTROL_MESSAGE_TYPE,
49
+ // } from '../src/utils/useSendControlMessage';
50
+ export {
51
+ MUTE_LOCAL_TYPE,
52
+ default as useMuteToggleLocal,
53
+ } from '../src/utils/useMuteToggleLocal';
54
+ export {default as useRemoteEndcall} from '../src/utils/useRemoteEndCall';
55
+ export {
56
+ default as useRemoteMute,
57
+ MUTE_REMOTE_TYPE,
58
+ } from '../src/utils/useRemoteMute';
59
+ export {ToggleState} from '../agora-rn-uikit/src/Contexts/PropsContext';
60
+
61
+ //export common function
62
+ export * from '../src/utils/common';
@@ -0,0 +1,33 @@
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, { useContext } from 'react';
13
+ /**
14
+ *
15
+ * @param context - any context data which we want to extract the data.
16
+ * @returns useContextWithSelector in which we can pass selector function to extract data from the context that we passed.
17
+ */
18
+ function createHook<T>(context: React.Context<T>) {
19
+
20
+ function useContextWithSelector<U>(contextSelector: (data: T) => U): U;
21
+ function useContextWithSelector(): T;
22
+ /**
23
+ *
24
+ * @param contextSelector is used to pass callback function used to select data from the context data
25
+ * @returns the data selected from the context
26
+ */
27
+ function useContextWithSelector<U>(contextSelector?: (data: T) => U): U | T {
28
+ const data = useContext(context);
29
+ return contextSelector ? contextSelector(data) : data
30
+ }
31
+ return useContextWithSelector;
32
+ }
33
+ export default createHook;
@@ -0,0 +1,17 @@
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 { installFPE } from "fpe-api/install";
13
+ /**
14
+ * Dummy FPE used to load when project doesn't have the FPE.
15
+ */
16
+ const data = installFPE({});
17
+ export default data;
@@ -0,0 +1 @@
1
+ export { default as createHook } from './createHook';
@@ -0,0 +1,14 @@
1
+ 1. test-fpe name should be changed
2
+ - template/_gitignore
3
+ - babel.config.js
4
+ - webpack.config.js
5
+ - fpe.config.js
6
+ - fpe-api index.ts
7
+ - fpe-api useFPE
8
+ 2. What if user called custom context without wrapping provider
9
+ - useContext will return the default vaule. so we can't identify whether is wrapped with the provider or not.
10
+ 3. CustomUserContext
11
+ 4. Add sibling into view without overriding
12
+ 5. Translation labels
13
+ - some of keys
14
+ 6.Layout dropdown implementation
@@ -0,0 +1,29 @@
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
+
13
+ /*
14
+ getFpePath - will return test-fpe if exists otherwise it will return the dummy fpe path
15
+ */
16
+ const fs = require('fs');
17
+ const FpePathTs = './test-fpe/index.ts';
18
+ const FpePathTsx = './test-fpe/index.tsx';
19
+ const FpeDummyPath = './fpe-implementation/dummyFpe.ts';
20
+ const getFpePath = () => {
21
+ if (fs.existsSync(FpePathTs)) {
22
+ return FpePathTs;
23
+ }
24
+ if (fs.existsSync(FpePathTsx)) {
25
+ return FpePathTsx;
26
+ }
27
+ return FpeDummyPath;
28
+ };
29
+ module.exports = getFpePath;
@@ -77,3 +77,7 @@ interface ConfigInterface {
77
77
  LOG_ENABLED: boolean;
78
78
  }
79
79
  declare var $config: ConfigInterface;
80
+ declare module 'test-fpe'{
81
+ const data:{}
82
+ export default data;
83
+ }
@@ -0,0 +1,27 @@
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
+ /**
13
+ * @format
14
+ */
15
+ import SDKAppWrapper,{AppBuilderSdkApi,AppBuilderSdkApiInterface} from './src/SDKAppWrapper';
16
+ import React from 'react';
17
+ export * from 'fpe-api';
18
+
19
+ interface AppBuilderReactSdkInterface extends AppBuilderSdkApiInterface {
20
+ View: React.FC;
21
+ }
22
+
23
+ const AppBuilderReactSdkApi: AppBuilderReactSdkInterface = {
24
+ ...AppBuilderSdkApi,
25
+ View: SDKAppWrapper,
26
+ }
27
+ export default AppBuilderReactSdkApi;
@@ -0,0 +1,27 @@
1
+ import {AppRegistry} from 'react-native';
2
+ import SDKAppWrapper,{AppBuilderSdkApi,AppBuilderSdkApiInterface} from './src/SDKAppWrapper';
3
+ export * from 'fpe-api';
4
+
5
+ interface AppBuilderWebSdkInterface extends AppBuilderSdkApiInterface {
6
+ }
7
+
8
+ const AppBuilderWebSdkApi: AppBuilderWebSdkInterface = AppBuilderSdkApi;
9
+
10
+ // init code
11
+ class AppBuilder extends HTMLElement {
12
+ connectedCallback() {
13
+ this.style.height = '100%';
14
+ this.style.width = '100%';
15
+ this.style.display = 'flex';
16
+ this.style.flex = '1';
17
+ AppRegistry.registerComponent('App', () => SDKAppWrapper);
18
+ AppRegistry.runApplication('App', {
19
+ // initialProps: {passphrase: this.getAttribute('passphrase')},
20
+ rootTag: this,
21
+ });
22
+ }
23
+ }
24
+
25
+ customElements.define('app-builder', AppBuilder);
26
+
27
+ export default AppBuilderWebSdkApi;
@@ -6,15 +6,21 @@
6
6
  "scripts": {
7
7
  "android": "react-native run-android",
8
8
  "android:build": "npm run android:build:unix",
9
- "android:build:unix": "cd android && ./gradlew assembleRelease",
10
- "android:build:windows": "cd android && gradlew.bat assembleRelease",
9
+ "android:build:unix": "cross-env TARGET=android gulp androidUnix",
10
+ "android:build:windows": "cross-env TARGET=android gulp androidWin",
11
11
  "ios": "cd ios && ls | grep .xcworkspace | xargs open",
12
12
  "ios:build": "cd ios && ls | grep .xcworkspace | xargs open",
13
13
  "start": "react-native start",
14
14
  "web": "cross-env TARGET=web NODE_ENV=development webpack-dev-server --hot --open --config webpack.web.config.js",
15
+ "ts": "cross-env TARGET=web NODE_ENV=production webpack --config webpack.ts.config.js",
15
16
  "web:build": "cross-env TARGET=web NODE_ENV=production webpack --config webpack.web.config.js",
16
- "electron:start": "cross-env NODE_ENV=development gulp development",
17
- "electron:build": "cross-env NODE_ENV=production gulp build",
17
+ "web-sdk": "cross-env TARGET=wsdk NODE_ENV=development gulp webSdk",
18
+ "web-sdk:build": "cross-env TARGET=wsdk NODE_ENV=production gulp webSdk",
19
+ "react-sdk": "cross-env TARGET=rsdk NODE_ENV=development gulp reactSdk",
20
+ "react-sdk:build": "cross-env TARGET=rsdk NODE_ENV=production gulp reactSdk",
21
+ "react-sdk-esbuild": "cross-env TARGET=rsdk NODE_ENV=production gulp reactSdkEsbuild",
22
+ "electron:start": "cross-env NODE_ENV=development gulp electron_development",
23
+ "electron:build": "cross-env NODE_ENV=production gulp electron_build",
18
24
  "windows": "cross-env TARGET=windows npm run electron:start",
19
25
  "windows:build": "cross-env TARGET=windows npm run electron:build",
20
26
  "mac": "cross-env TARGET=mac npm run electron:start",
@@ -58,6 +64,7 @@
58
64
  "nosleep.js": "0.12.0",
59
65
  "react": "16.13.1",
60
66
  "react-dom": "16.13.1",
67
+ "react-is": "18.0.0",
61
68
  "react-native": "0.63.3",
62
69
  "react-native-agora": "3.4.2",
63
70
  "react-native-hyperlink": "0.0.19",
@@ -78,20 +85,23 @@
78
85
  "@babel/preset-typescript": "7.13.0",
79
86
  "@babel/runtime": "7.14.0",
80
87
  "@bam.tech/react-native-make": "3.0.3",
81
- "@pmmmwh/react-refresh-webpack-plugin": "0.3.3",
88
+ "@pmmmwh/react-refresh-webpack-plugin": "0.5.5",
82
89
  "@react-native-community/eslint-config": "1.1.0",
83
90
  "@types/jest": "25.2.3",
91
+ "@types/react-is": "17.0.3",
84
92
  "@types/react-native": "0.67.6",
85
93
  "@types/react-native-keep-awake": "2.0.2",
86
94
  "@types/react-router-dom": "5.1.7",
87
95
  "@types/react-router-native": "5.1.0",
88
96
  "@types/react-test-renderer": "16.9.5",
89
97
  "@types/webpack-dev-server": "3.11.4",
98
+ "@types/webpack-env": "^1.16.4",
90
99
  "@typescript-eslint/eslint-plugin": "2.34.0",
91
100
  "@typescript-eslint/parser": "2.34.0",
92
- "babel-jest": "25.5.1",
93
- "babel-loader": "8.2.2",
94
- "babel-plugin-transform-define": "2.0.0",
101
+ "babel-jest": "27.5.1",
102
+ "babel-loader": "8.2.4",
103
+ "babel-plugin-module-resolver": "4.1.0",
104
+ "babel-plugin-transform-define": "2.0.1",
95
105
  "cross-env": "7.0.3",
96
106
  "del": "5.1.0",
97
107
  "electron": "16.0.1",
@@ -100,18 +110,24 @@
100
110
  "eslint": "6.8.0",
101
111
  "file-loader": "6.2.0",
102
112
  "gulp": "4.0.2",
113
+ "gulp-concat": "^2.6.1",
114
+ "gulp-header": "^2.0.9",
115
+ "gulp-replace": "^1.1.3",
103
116
  "html-webpack-plugin": "4.5.2",
117
+ "ignore-loader": "^0.1.2",
104
118
  "jest": "25.5.4",
105
119
  "metro-react-native-babel-preset": "0.59.0",
106
120
  "prettier": "2.3.1",
107
121
  "react-devtools-electron": "4.7.0",
108
- "react-refresh": "0.8.3",
122
+ "react-refresh": "0.12.0",
109
123
  "react-test-renderer": "16.13.1",
124
+ "ts-loader": "^8.3.0",
110
125
  "typescript": "3.9.9",
111
- "webpack": "4.46.0",
112
- "webpack-cli": "3.3.12",
113
- "webpack-dev-server": "3.11.2",
126
+ "webpack": "5.72.0",
127
+ "webpack-cli": "^4.10.0",
128
+ "webpack-dev-server": "4.8.1",
114
129
  "webpack-merge": "5.8.0",
130
+ "webpack-node-externals": "3.0.0",
115
131
  "yargs": "15.4.1"
116
132
  },
117
133
  "jest": {
@@ -343,13 +343,8 @@ class Toast extends Component {
343
343
  }
344
344
 
345
345
  getBaseStyle(position = 'bottom', keyboardHeight) {
346
- const {
347
- topOffset,
348
- bottomOffset,
349
- keyboardOffset,
350
- height,
351
- animation
352
- } = this.state;
346
+ const { topOffset, bottomOffset, keyboardOffset, height, animation } =
347
+ this.state;
353
348
  const offset = position === 'bottom' ? bottomOffset : topOffset;
354
349
 
355
350
  // +5 px to completely hide the toast under StatusBar (on Android)
@@ -358,14 +353,14 @@ class Toast extends Component {
358
353
 
359
354
  const translateY = animation.interpolate({
360
355
  inputRange: [0, 1, 2],
361
- outputRange
356
+ outputRange: [0, 1, 0]
362
357
  });
363
358
 
364
359
  return [
365
360
  styles.base,
366
361
  styles[position],
367
362
  {
368
- transform: [{ translateY }]
363
+ opacity: translateY
369
364
  }
370
365
  ];
371
366
  }
@@ -383,7 +378,11 @@ class Toast extends Component {
383
378
  <Animated.View
384
379
  testID='animatedView'
385
380
  onLayout={this.onLayout}
386
- style={[baseStyle, style, {zIndex: 100}]} //added zindex
381
+ style={[
382
+ baseStyle,
383
+ style,
384
+ { zIndex: 100, display: this.state.isVisible || this.state.inProgress ? 'flex' : 'none' }
385
+ ]} //added zindex
387
386
  {...this.panResponder.panHandlers}>
388
387
  {this.renderContent(this.props)}
389
388
  </Animated.View>