agora-appbuilder-core 3.0.8 → 4.0.0-api.0

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 (341) hide show
  1. package/Readme.md +6 -0
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +32828 -2777
  4. package/template/agora-rn-uikit/src/AgoraUIKit.tsx +6 -6
  5. package/template/agora-rn-uikit/src/Contexts/ContentContext.tsx +10 -0
  6. package/template/agora-rn-uikit/src/Contexts/DispatchContext.tsx +22 -0
  7. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +10 -6
  8. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +28 -8
  9. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +7 -15
  10. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +30 -26
  11. package/template/agora-rn-uikit/src/Controls/Icons.ts +30 -83
  12. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +6 -6
  13. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +4 -2
  14. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +4 -2
  15. package/template/agora-rn-uikit/src/Controls/Local/Recording.tsx +0 -2
  16. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +6 -6
  17. package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +5 -5
  18. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +4 -4
  19. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +4 -4
  20. package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +2 -2
  21. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +6 -6
  22. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +6 -6
  23. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +23 -0
  24. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +6 -6
  25. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +7 -7
  26. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +7 -7
  27. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +10 -10
  28. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +6 -6
  29. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +6 -6
  30. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +5 -5
  31. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +11 -0
  32. package/template/agora-rn-uikit/src/Reducer/index.ts +2 -0
  33. package/template/agora-rn-uikit/src/Rtc/Create.tsx +74 -7
  34. package/template/agora-rn-uikit/src/Rtc/Join.tsx +5 -4
  35. package/template/agora-rn-uikit/src/RtcConfigure.tsx +76 -49
  36. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +17 -7
  37. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +17 -11
  38. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +2 -2
  39. package/template/agora-rn-uikit/src/index.ts +17 -9
  40. package/template/android/app/build.gradle +1 -0
  41. package/template/android/app/src/main/AndroidManifest.xml +22 -15
  42. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  43. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  44. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +50 -0
  45. package/template/android/app/src/main/res/values/colors.xml +7 -0
  46. package/template/android/build.gradle +3 -3
  47. package/template/babel.config.js +1 -0
  48. package/template/bridge/rtc/webNg/RtcEngine.ts +110 -17
  49. package/template/customization-api/action-library.ts +10 -14
  50. package/template/customization-api/app-state.ts +4 -6
  51. package/template/customization-api/customEvents.ts +2 -2
  52. package/template/customization-api/customize.ts +1 -1
  53. package/template/customization-api/sub-components.ts +4 -12
  54. package/template/customization-api/typeDefinition.ts +15 -38
  55. package/template/customization-implementation/createHook.ts +24 -6
  56. package/template/customization-implementation/index.ts +1 -1
  57. package/template/customization-implementation/useCustomization.tsx +5 -7
  58. package/template/electron/index.html +27 -27
  59. package/template/electron/renderer/index.js +1 -0
  60. package/template/global.d.ts +26 -4
  61. package/template/index.rsdk.tsx +1 -0
  62. package/template/index.web.js +2 -1
  63. package/template/index.wsdk.tsx +9 -2
  64. package/template/ios/HelloWorld/Info.plist +14 -1
  65. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +17 -0
  66. package/template/metro.config.js +1 -1
  67. package/template/package.json +18 -7
  68. package/template/react-native-toast-message/index.d.ts +43 -43
  69. package/template/react-native-toast-message/src/colors/index.js +3 -2
  70. package/template/react-native-toast-message/src/components/base/index.js +46 -59
  71. package/template/react-native-toast-message/src/components/base/styles.js +16 -32
  72. package/template/react-native-toast-message/src/components/checkbox.js +178 -0
  73. package/template/react-native-toast-message/src/components/error.js +3 -2
  74. package/template/react-native-toast-message/src/components/info.js +3 -2
  75. package/template/react-native-toast-message/src/components/success.js +3 -2
  76. package/template/react-native-toast-message/src/index.js +122 -31
  77. package/template/react-native-toast-message/src/index.sdk.tsx +125 -35
  78. package/template/react-native-toast-message/src/styles.js +3 -4
  79. package/template/react-native-toast-message/src/styles.sdk.ts +3 -4
  80. package/template/react-native.config.js +7 -0
  81. package/template/src/App.tsx +19 -14
  82. package/template/src/AppWrapper.tsx +74 -29
  83. package/template/src/SDKAppWrapper.tsx +60 -64
  84. package/template/src/app-state/useLocalUserInfo.ts +3 -3
  85. package/template/src/assets/font-styles.css +329 -0
  86. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  87. package/template/src/assets/fonts/icomoon.ttf +0 -0
  88. package/template/src/assets/permission.png +0 -0
  89. package/template/src/assets/selection.json +1 -0
  90. package/template/src/atoms/ActionMenu.tsx +236 -0
  91. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +71 -0
  92. package/template/src/atoms/AnimatedActiveSpeaker.tsx +84 -0
  93. package/template/src/atoms/AnimatedRings.native.tsx +68 -0
  94. package/template/src/atoms/AnimatedRings.tsx +70 -0
  95. package/template/src/atoms/Card.tsx +61 -0
  96. package/template/src/atoms/CircularProgress.native.tsx +121 -0
  97. package/template/src/atoms/CircularProgress.tsx +102 -0
  98. package/template/src/atoms/CustomIcon.tsx +88 -0
  99. package/template/src/atoms/CustomSwitch.tsx +287 -0
  100. package/template/src/atoms/Dropdown.tsx +306 -0
  101. package/template/src/atoms/HorizontalRule.tsx +3 -1
  102. package/template/src/atoms/IconButton.tsx +162 -0
  103. package/template/src/atoms/ImageIcon.tsx +98 -0
  104. package/template/src/atoms/InfoBubble.tsx +291 -0
  105. package/template/src/atoms/Input.tsx +87 -0
  106. package/template/src/atoms/InviteInfo.tsx +166 -0
  107. package/template/src/atoms/LinkButton.tsx +28 -0
  108. package/template/src/atoms/OutlineButton.tsx +61 -0
  109. package/template/src/atoms/ParticipantsCount.tsx +74 -0
  110. package/template/src/atoms/Popup.tsx +147 -0
  111. package/template/src/atoms/PrimaryButton.tsx +51 -26
  112. package/template/src/atoms/RecordingInfo.tsx +52 -0
  113. package/template/src/atoms/SecondaryButton.tsx +8 -5
  114. package/template/src/atoms/Spacer.tsx +22 -0
  115. package/template/src/atoms/TertiaryButton.tsx +78 -0
  116. package/template/src/atoms/TextInput.tsx +12 -14
  117. package/template/src/atoms/Toggle.tsx +47 -0
  118. package/template/src/atoms/Toolbar.tsx +68 -0
  119. package/template/src/atoms/ToolbarItem.tsx +63 -0
  120. package/template/src/atoms/Tooltip.native.tsx +65 -0
  121. package/template/src/atoms/Tooltip.tsx +94 -0
  122. package/template/src/atoms/UserAvatar.tsx +60 -0
  123. package/template/src/components/Chat.tsx +164 -278
  124. package/template/src/components/ChatContext.ts +8 -1
  125. package/template/src/components/ColorConfigure.tsx +1 -1
  126. package/template/src/components/ColorContext.ts +1 -1
  127. package/template/src/components/CommonStyles.ts +44 -0
  128. package/template/src/components/Controls.tsx +331 -73
  129. package/template/src/components/{Controls.native.tsx → Controls1.native.tsx} +8 -6
  130. package/template/src/components/DeviceConfigure.tsx +511 -102
  131. package/template/src/components/DeviceContext.tsx +8 -4
  132. package/template/src/components/EventsConfigure.tsx +192 -10
  133. package/template/src/components/GraphQLProvider.tsx +1 -1
  134. package/template/src/components/GridVideo.tsx +60 -45
  135. package/template/src/components/HostControlView.tsx +114 -35
  136. package/template/src/components/Navbar.tsx +219 -437
  137. package/template/src/components/Navigation.tsx +15 -1
  138. package/template/src/components/NetworkQualityContext.tsx +22 -22
  139. package/template/src/components/ParticipantsView.tsx +178 -156
  140. package/template/src/components/PinnedVideo.tsx +206 -121
  141. package/template/src/components/Precall.native.tsx +358 -119
  142. package/template/src/components/Precall.tsx +272 -138
  143. package/template/src/components/RTMConfigure.tsx +66 -19
  144. package/template/src/components/Router.electron.ts +1 -0
  145. package/template/src/components/Router.native.ts +1 -0
  146. package/template/src/components/Router.sdk.ts +1 -0
  147. package/template/src/components/Router.ts +1 -0
  148. package/template/src/components/SdkApiContext.tsx +161 -0
  149. package/template/src/components/Settings.tsx +26 -95
  150. package/template/src/components/SettingsView.tsx +251 -56
  151. package/template/src/components/Share.tsx +305 -276
  152. package/template/src/components/StorageContext.tsx +30 -3
  153. package/template/src/components/ToastComponent.tsx +8 -0
  154. package/template/src/components/chat-messages/useChatMessages.tsx +97 -50
  155. package/template/src/components/chat-ui/useChatUIControls.tsx +76 -0
  156. package/template/src/components/common/Error.tsx +20 -6
  157. package/template/src/components/common/Logo.tsx +16 -15
  158. package/template/src/components/contexts/LiveStreamDataContext.tsx +16 -11
  159. package/template/src/components/contexts/VideoMeetingDataContext.tsx +41 -11
  160. package/template/src/components/contexts/WhiteboardContext.tsx +3 -3
  161. package/template/src/components/livestream/LiveStreamContext.tsx +284 -50
  162. package/template/src/components/livestream/Types.ts +39 -14
  163. package/template/src/components/livestream/index.ts +1 -0
  164. package/template/src/components/livestream/views/LiveStreamControls.tsx +9 -4
  165. package/template/src/components/participants/AllAudienceParticipants.tsx +102 -31
  166. package/template/src/components/participants/AllHostParticipants.tsx +106 -35
  167. package/template/src/components/participants/Participant.tsx +300 -0
  168. package/template/src/components/participants/ParticipantName.tsx +13 -7
  169. package/template/src/components/participants/ParticipantSectionTitle.tsx +35 -10
  170. package/template/src/components/participants/ScreenshareParticipants.tsx +144 -12
  171. package/template/src/components/participants/UserActionMenuOptions.tsx +396 -0
  172. package/template/src/components/popups/InvitePopup.tsx +115 -0
  173. package/template/src/components/popups/StopRecordingPopup.tsx +114 -0
  174. package/template/src/components/precall/LocalMute.tsx +84 -14
  175. package/template/src/components/precall/{LocalMute.native.tsx → LocalMute1.native.tsx} +21 -5
  176. package/template/src/components/precall/PermissionHelper.native.tsx +5 -0
  177. package/template/src/components/precall/PermissionHelper.tsx +126 -0
  178. package/template/src/components/precall/PreCallSettings.tsx +52 -0
  179. package/template/src/components/precall/VideoPreview.native.tsx +51 -6
  180. package/template/src/components/precall/VideoPreview.tsx +164 -8
  181. package/template/src/components/precall/joinCallBtn.native.tsx +2 -2
  182. package/template/src/components/precall/joinCallBtn.tsx +17 -4
  183. package/template/src/components/precall/meetingTitle.tsx +17 -14
  184. package/template/src/components/precall/selectDevice.tsx +1 -21
  185. package/template/src/components/precall/textInput.tsx +34 -6
  186. package/template/src/components/precall/usePreCall.tsx +39 -1
  187. package/template/src/components/{meeting-info/useMeetingInfo.tsx → room-info/useRoomInfo.tsx} +34 -10
  188. package/template/src/components/{meeting-info/useSetMeetingInfo.tsx → room-info/useSetRoomInfo.tsx} +12 -12
  189. package/template/src/components/styles.ts +42 -21
  190. package/template/src/components/useShareLink.tsx +19 -21
  191. package/template/src/components/useToast.tsx +41 -0
  192. package/template/src/components/useUserPreference.tsx +9 -6
  193. package/template/src/components/useVideoCall.tsx +84 -0
  194. package/template/src/language/default-labels/createScreenLabels.ts +3 -3
  195. package/template/src/language/default-labels/joinScreenLabels.ts +2 -2
  196. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  197. package/template/src/language/default-labels/shareLinkScreenLabels.ts +5 -5
  198. package/template/src/language/default-labels/videoCallScreenLabels.ts +5 -5
  199. package/template/src/pages/Authenticate.tsx +5 -15
  200. package/template/src/pages/Create.tsx +304 -191
  201. package/template/src/pages/Endcall.tsx +148 -0
  202. package/template/src/pages/Join.tsx +96 -70
  203. package/template/src/pages/VideoCall.tsx +179 -69
  204. package/template/src/pages/video-call/ActionSheet.native.tsx +215 -0
  205. package/template/src/pages/video-call/ActionSheet.tsx +226 -0
  206. package/template/src/pages/video-call/ActionSheetContent.tsx +479 -0
  207. package/template/src/pages/video-call/ActionSheetHandle.tsx +38 -0
  208. package/template/src/pages/video-call/ActionSheetStyles.css +138 -0
  209. package/template/src/pages/video-call/DefaultLayouts.ts +6 -6
  210. package/template/src/pages/video-call/NameWithMicIcon.tsx +93 -49
  211. package/template/src/pages/video-call/RenderComponent.tsx +6 -30
  212. package/template/src/pages/video-call/SidePanelHeader.tsx +186 -0
  213. package/template/src/pages/video-call/VideoCallMobileView.tsx +138 -0
  214. package/template/src/pages/video-call/VideoCallScreen.native.tsx +37 -0
  215. package/template/src/pages/video-call/VideoCallScreen.tsx +109 -66
  216. package/template/src/pages/video-call/VideoComponent.tsx +20 -4
  217. package/template/src/pages/video-call/VideoRenderer.tsx +227 -61
  218. package/template/src/pages/video-call/index.ts +35 -7
  219. package/template/src/rtm/RTMEngine.ts +8 -0
  220. package/template/src/rtm-events/constants.ts +3 -1
  221. package/template/src/rtm-events-api/Events.ts +5 -4
  222. package/template/src/rtm-events-api/LocalEvents.ts +6 -0
  223. package/template/src/rtm-events-api/types.ts +5 -5
  224. package/template/src/subComponents/ChatBubble.tsx +125 -84
  225. package/template/src/subComponents/ChatContainer.tsx +280 -93
  226. package/template/src/subComponents/ChatInput.ios.tsx +175 -0
  227. package/template/src/subComponents/ChatInput.tsx +72 -115
  228. package/template/src/subComponents/Checkbox.native.tsx +16 -5
  229. package/template/src/subComponents/Checkbox.tsx +2 -2
  230. package/template/src/subComponents/CopyJoinInfo.tsx +36 -58
  231. package/template/src/subComponents/EndcallPopup.tsx +107 -0
  232. package/template/src/subComponents/FallbackLogo.tsx +122 -40
  233. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  234. package/template/src/subComponents/LayoutIconButton.tsx +201 -0
  235. package/template/src/subComponents/LayoutIconDropdown.tsx +131 -134
  236. package/template/src/subComponents/{LayoutIconDropdown.native.tsx → LayoutIconDropdown1.native.tsx} +4 -18
  237. package/template/src/subComponents/LocalAudioMute.tsx +119 -27
  238. package/template/src/subComponents/LocalEndCall.tsx +73 -35
  239. package/template/src/subComponents/LocalSwitchCamera.tsx +19 -32
  240. package/template/src/subComponents/LocalVideoMute.tsx +117 -27
  241. package/template/src/subComponents/Logo.tsx +3 -4
  242. package/template/src/subComponents/LogoutButton.tsx +1 -1
  243. package/template/src/subComponents/NetworkQualityPill.tsx +66 -68
  244. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  245. package/template/src/subComponents/Recording.tsx +28 -29
  246. package/template/src/subComponents/RemoteAudioMute.tsx +83 -29
  247. package/template/src/subComponents/RemoteEndCall.tsx +8 -5
  248. package/template/src/subComponents/RemoteMutePopup.tsx +193 -0
  249. package/template/src/subComponents/RemoteVideoMute.tsx +74 -21
  250. package/template/src/subComponents/RemoveMeetingPopup.tsx +109 -0
  251. package/template/src/subComponents/RemoveScreensharePopup.tsx +109 -0
  252. package/template/src/subComponents/ScreenShareNotice.tsx +83 -8
  253. package/template/src/subComponents/SelectDevice.tsx +404 -61
  254. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +207 -0
  255. package/template/src/subComponents/SelectOAuth.tsx +9 -8
  256. package/template/src/subComponents/SidePanelButtons.ts +0 -3
  257. package/template/src/subComponents/SidePanelHeader.tsx +112 -0
  258. package/template/src/subComponents/ToastConfig.tsx +150 -10
  259. package/template/src/subComponents/chat/ChatParticipants.tsx +188 -79
  260. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +97 -34
  261. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +29 -33
  262. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +8 -8
  263. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +24 -11
  264. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +17 -10
  265. package/template/src/subComponents/recording/useRecording.tsx +81 -29
  266. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +52 -70
  267. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +23 -12
  268. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +44 -19
  269. package/template/src/theme/index.ts +46 -0
  270. package/template/src/utils/PlatformWrapper.tsx +21 -0
  271. package/template/src/utils/SdkEvents.ts +23 -14
  272. package/template/src/utils/SdkMethodEvents.ts +81 -0
  273. package/template/src/utils/common.tsx +155 -1
  274. package/template/src/utils/hexadecimalTransparency.ts +108 -0
  275. package/template/src/utils/index.tsx +19 -0
  276. package/template/src/utils/isMobileOrTablet.ts +7 -2
  277. package/template/src/utils/pendingStateUpdateHelper.ts +19 -0
  278. package/template/src/utils/useActiveSpeaker.ts +42 -0
  279. package/template/src/utils/{useCreateMeeting.ts → useCreateRoom.ts} +19 -14
  280. package/template/src/utils/{useButtonTemplate.tsx → useFocus.tsx} +19 -16
  281. package/template/src/utils/useGetMeetingPhrase.ts +10 -10
  282. package/template/src/utils/useIsAudioEnabled.ts +3 -3
  283. package/template/src/utils/useIsHandRaised.ts +13 -0
  284. package/template/src/utils/useIsPSTN.ts +3 -3
  285. package/template/src/utils/useIsVideoEnabled.ts +3 -3
  286. package/template/src/utils/{useJoinMeeting.ts → useJoinRoom.ts} +27 -21
  287. package/template/src/utils/useMutePSTN.ts +2 -2
  288. package/template/src/utils/useMuteToggleLocal.ts +58 -5
  289. package/template/src/utils/useRemoteEndCall.ts +4 -4
  290. package/template/src/utils/useRemoteEndScreenshare.ts +26 -0
  291. package/template/src/utils/useRemoteMute.ts +7 -7
  292. package/template/src/utils/useRemoteRequest.ts +84 -0
  293. package/template/src/utils/useSwitchCamera.native.tsx +25 -0
  294. package/template/src/utils/useSwitchCamera.tsx +19 -0
  295. package/template/src/utils/useToolbar.tsx +59 -0
  296. package/template/web/index.html +5 -0
  297. package/template/webpack.commons.js +13 -8
  298. package/template/webpack.rsdk.config.js +1 -2
  299. package/template/webpack.web.config.js +1 -0
  300. package/template/agora-rn-uikit/.git/HEAD +0 -1
  301. package/template/agora-rn-uikit/.git/config +0 -16
  302. package/template/agora-rn-uikit/.git/description +0 -1
  303. package/template/agora-rn-uikit/.git/hooks/applypatch-msg.sample +0 -15
  304. package/template/agora-rn-uikit/.git/hooks/commit-msg.sample +0 -24
  305. package/template/agora-rn-uikit/.git/hooks/fsmonitor-watchman.sample +0 -174
  306. package/template/agora-rn-uikit/.git/hooks/post-update.sample +0 -8
  307. package/template/agora-rn-uikit/.git/hooks/pre-applypatch.sample +0 -14
  308. package/template/agora-rn-uikit/.git/hooks/pre-commit.sample +0 -49
  309. package/template/agora-rn-uikit/.git/hooks/pre-merge-commit.sample +0 -13
  310. package/template/agora-rn-uikit/.git/hooks/pre-push.sample +0 -53
  311. package/template/agora-rn-uikit/.git/hooks/pre-rebase.sample +0 -169
  312. package/template/agora-rn-uikit/.git/hooks/pre-receive.sample +0 -24
  313. package/template/agora-rn-uikit/.git/hooks/prepare-commit-msg.sample +0 -42
  314. package/template/agora-rn-uikit/.git/hooks/push-to-checkout.sample +0 -78
  315. package/template/agora-rn-uikit/.git/hooks/update.sample +0 -128
  316. package/template/agora-rn-uikit/.git/index +0 -0
  317. package/template/agora-rn-uikit/.git/info/exclude +0 -6
  318. package/template/agora-rn-uikit/.git/logs/HEAD +0 -2
  319. package/template/agora-rn-uikit/.git/logs/refs/heads/master +0 -1
  320. package/template/agora-rn-uikit/.git/logs/refs/heads/release/fpe-1.0.1 +0 -1
  321. package/template/agora-rn-uikit/.git/logs/refs/remotes/origin/HEAD +0 -1
  322. package/template/agora-rn-uikit/.git/objects/pack/pack-baa9cf4109c3e8528f39535764621cee252b2b77.idx +0 -0
  323. package/template/agora-rn-uikit/.git/objects/pack/pack-baa9cf4109c3e8528f39535764621cee252b2b77.pack +0 -0
  324. package/template/agora-rn-uikit/.git/packed-refs +0 -49
  325. package/template/agora-rn-uikit/.git/refs/heads/master +0 -1
  326. package/template/agora-rn-uikit/.git/refs/heads/release/fpe-1.0.1 +0 -1
  327. package/template/agora-rn-uikit/.git/refs/remotes/origin/HEAD +0 -1
  328. package/template/agora-rn-uikit/.gitignore +0 -63
  329. package/template/agora-rn-uikit/package-lock.json +0 -7612
  330. package/template/agora-rn-uikit/src/Contexts/RenderContext.tsx +0 -10
  331. package/template/package-lock.json +0 -22543
  332. package/template/react-native-toast-message/.gitignore +0 -5
  333. package/template/react-native-toast-message/.npmignore +0 -5
  334. package/template/react-native-toast-message/package-lock.json +0 -10553
  335. package/template/src/.DS_Store +0 -0
  336. package/template/src/assets/icons.ts +0 -102
  337. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -69
  338. package/template/src/components/participants/MeParticipant.tsx +0 -38
  339. package/template/src/components/participants/RemoteParticipants.tsx +0 -71
  340. package/template/src/pages/video-call/CustomUserContextHolder.tsx +0 -20
  341. package/template/src/subComponents/.DS_Store +0 -0
@@ -1,12 +1,11 @@
1
- import { StyleSheet } from 'react-native';
1
+ import isMobileOrTablet from '../../src/utils/isMobileOrTablet';
2
+ import { Dimensions, StyleSheet } from 'react-native';
2
3
 
3
4
  export default StyleSheet.create({
4
5
  base: {
5
6
  position: 'absolute',
6
7
  alignItems: 'center',
7
- justifyContent: 'center',
8
- left: 0,
9
- right: 0
8
+ justifyContent: 'center'
10
9
  },
11
10
  top: {
12
11
  top: 30
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ project: {
3
+ ios: {},
4
+ android: {},
5
+ },
6
+ assets: ["./src/assets/fonts"]
7
+ }
@@ -9,7 +9,7 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import React, {useState} from 'react';
12
+ import React, {useState, useContext} from 'react';
13
13
  import {Platform} from 'react-native';
14
14
  import Join from './pages/Join';
15
15
  import VideoCall from './pages/VideoCall';
@@ -25,12 +25,13 @@ import KeyboardManager from 'react-native-keyboard-manager';
25
25
  //import {useCustomization} from 'customization-implementation';
26
26
  import AppWrapper from './AppWrapper';
27
27
  import {
28
- MeetingInfoContextInterface,
29
- MeetingInfoDefaultValue,
30
- MeetingInfoProvider,
31
- } from './components/meeting-info/useMeetingInfo';
32
- import {SetMeetingInfoProvider} from './components/meeting-info/useSetMeetingInfo';
28
+ RoomInfoContextInterface,
29
+ RoomInfoDefaultValue,
30
+ RoomInfoProvider,
31
+ } from './components/room-info/useRoomInfo';
32
+ import {SetRoomInfoProvider} from './components/room-info/useSetRoomInfo';
33
33
  import {ShareLinkProvider} from './components/useShareLink';
34
+ import Endcall from './pages/Endcall';
34
35
 
35
36
  //hook can't be used in the outside react function calls. so directly checking the platform.
36
37
  if (Platform.OS === 'ios') {
@@ -42,10 +43,11 @@ if (Platform.OS === 'ios') {
42
43
 
43
44
  //Extending the UI Kit Type defintion to add custom attribute to render interface
44
45
  declare module 'agora-rn-uikit' {
45
- interface DefaultRenderInterface {
46
+ interface DefaultContentInterface {
46
47
  name: string;
47
48
  screenUid: number;
48
49
  offline: boolean;
50
+ lastMessageTimeStamp: number;
49
51
  }
50
52
  interface RtcPropsInterface {
51
53
  screenShareUid: number;
@@ -83,14 +85,13 @@ const App: React.FC = () => {
83
85
  // return null;
84
86
  // }
85
87
  // };
86
- const [meetingInfo, setMeetingInfo] = useState<MeetingInfoContextInterface>(
87
- MeetingInfoDefaultValue,
88
- );
88
+ const [roomInfo, setRoomInfo] =
89
+ useState<RoomInfoContextInterface>(RoomInfoDefaultValue);
89
90
 
90
91
  return (
91
92
  <AppWrapper>
92
- <SetMeetingInfoProvider value={{setMeetingInfo}}>
93
- <MeetingInfoProvider value={{...meetingInfo}}>
93
+ <SetRoomInfoProvider value={{setRoomInfo}}>
94
+ <RoomInfoProvider value={{...roomInfo}}>
94
95
  <ShareLinkProvider>
95
96
  <Switch>
96
97
  {/* commented for v1 release */}
@@ -107,6 +108,10 @@ const App: React.FC = () => {
107
108
  <Route exact path={'/join'}>
108
109
  <Join />
109
110
  </Route>
111
+ {/* Will be used in the future
112
+ <Route exact path={'/leave'}>
113
+ <Endcall />
114
+ </Route> */}
110
115
  {shouldAuthenticate ? (
111
116
  <PrivateRoute
112
117
  path={'/create'}
@@ -123,8 +128,8 @@ const App: React.FC = () => {
123
128
  </Route>
124
129
  </Switch>
125
130
  </ShareLinkProvider>
126
- </MeetingInfoProvider>
127
- </SetMeetingInfoProvider>
131
+ </RoomInfoProvider>
132
+ </SetRoomInfoProvider>
128
133
  </AppWrapper>
129
134
  );
130
135
  };
@@ -9,27 +9,61 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import React from 'react';
12
+ import React, {useContext} from 'react';
13
13
  import {Router} from './components/Router';
14
14
  import Navigation from './components/Navigation';
15
15
  import {StorageProvider} from './components/StorageContext';
16
16
  import GraphQLProvider from './components/GraphQLProvider';
17
17
  import {SessionProvider} from './components/SessionContext';
18
- import {ImageBackground, SafeAreaView, StatusBar, Platform} from 'react-native';
18
+ import {
19
+ ImageBackground,
20
+ SafeAreaView,
21
+ StatusBar,
22
+ Platform,
23
+ View,
24
+ } from 'react-native';
19
25
  import ColorConfigure from './components/ColorConfigure';
20
- import Toast from '../react-native-toast-message';
21
- import ToastConfig from './subComponents/ToastConfig';
22
26
  import {isValidReactComponent} from './utils/common';
23
27
  import DimensionProvider from './components/dimension/DimensionProvider';
24
28
  import Error from './components/common/Error';
25
29
  import {ErrorProvider} from './components/common';
26
30
  import {useCustomization} from 'customization-implementation';
27
31
  import {LanguageProvider} from './language/useLanguage';
32
+ import {PropsConsumer} from 'agora-rn-uikit';
33
+ import ToastComponent from './components/ToastComponent';
34
+ import {ToastContext, ToastProvider} from './components/useToast';
35
+ import {SdkApiContext} from './components/SdkApiContext';
36
+ import isSDK from './utils/isSDK';
28
37
 
29
38
  interface AppWrapperProps {
30
39
  children: React.ReactNode;
31
40
  }
32
41
 
42
+ const ImageBackgroundComp = (props: {
43
+ bg?: string;
44
+ color?: string;
45
+ children?: React.ReactNode;
46
+ }) => {
47
+ if (props?.bg) {
48
+ return (
49
+ <ImageBackground
50
+ source={{uri: props.bg}}
51
+ style={{flex: 1}}
52
+ resizeMode={'cover'}>
53
+ {props.children}
54
+ </ImageBackground>
55
+ );
56
+ } else if (props?.color) {
57
+ return (
58
+ <View style={{flex: 1, backgroundColor: props.color}}>
59
+ {props.children}
60
+ </View>
61
+ );
62
+ } else {
63
+ return <>{props.children}</>;
64
+ }
65
+ };
66
+
33
67
  const AppWrapper = (props: AppWrapperProps) => {
34
68
  const AppRoot = useCustomization((data) => {
35
69
  if (
@@ -41,38 +75,49 @@ const AppWrapper = (props: AppWrapperProps) => {
41
75
  return React.Fragment;
42
76
  });
43
77
 
78
+ const {join: SdkJoinState} = useContext(SdkApiContext);
79
+
44
80
  return (
45
81
  <AppRoot>
46
- <ImageBackground
47
- source={{uri: $config.BG}}
48
- style={{flex: 1}}
49
- resizeMode={'cover'}>
82
+ <ImageBackgroundComp bg={$config.BG} color={$config.BACKGROUND_COLOR}>
50
83
  <SafeAreaView
51
84
  // @ts-ignore textAlign not supported by TS definitions but is applied to web regardless
52
85
  style={[{flex: 1}, Platform.select({web: {textAlign: 'left'}})]}>
53
86
  <StatusBar hidden={true} />
54
- <Toast ref={(ref) => Toast.setRef(ref)} config={ToastConfig} />
55
- <StorageProvider>
56
- <GraphQLProvider>
57
- <Router>
58
- <SessionProvider>
59
- <ColorConfigure>
60
- <DimensionProvider>
61
- <LanguageProvider>
62
- <ErrorProvider>
63
- <Error />
64
- <Navigation />
65
- {props.children}
66
- </ErrorProvider>
67
- </LanguageProvider>
68
- </DimensionProvider>
69
- </ColorConfigure>
70
- </SessionProvider>
71
- </Router>
72
- </GraphQLProvider>
73
- </StorageProvider>
87
+ <ToastProvider>
88
+ <ToastContext.Consumer>
89
+ {({isActionSheetVisible}) => {
90
+ return !isActionSheetVisible ? <ToastComponent /> : null;
91
+ }}
92
+ </ToastContext.Consumer>
93
+ <StorageProvider>
94
+ <GraphQLProvider>
95
+ <Router
96
+ /*@ts-ignore Router will be memory Router in sdk*/
97
+ initialEntries={[
98
+ isSDK && SdkJoinState.phrase
99
+ ? `/${SdkJoinState.phrase}`
100
+ : '',
101
+ ]}>
102
+ <SessionProvider>
103
+ <ColorConfigure>
104
+ <DimensionProvider>
105
+ <LanguageProvider>
106
+ <ErrorProvider>
107
+ <Error />
108
+ <Navigation />
109
+ {props.children}
110
+ </ErrorProvider>
111
+ </LanguageProvider>
112
+ </DimensionProvider>
113
+ </ColorConfigure>
114
+ </SessionProvider>
115
+ </Router>
116
+ </GraphQLProvider>
117
+ </StorageProvider>
118
+ </ToastProvider>
74
119
  </SafeAreaView>
75
- </ImageBackground>
120
+ </ImageBackgroundComp>
76
121
  </AppRoot>
77
122
  );
78
123
  // return <div> hello world</div>; {/* isn't join:phrase redundant now, also can we remove joinStore */}
@@ -1,86 +1,82 @@
1
- import React, {useEffect, useState} from 'react';
2
- import {CustomizationApiInterface, customize} from 'customization-api';
1
+ import React from 'react';
3
2
  import {
4
- customizationConfig,
5
- CustomizationProvider,
6
- } from 'customization-implementation';
7
- import SDKEvents from './utils/SdkEvents';
8
- import {Unsubscribe} from 'nanoevents';
3
+ CustomizationApiInterface,
4
+ customize,
5
+ RoomInfoContextInterface,
6
+ customEvents,
7
+ } from 'customization-api';
8
+ import {CustomizationProvider} from 'customization-implementation';
9
+ import SDKEvents, {userEventsMapInterface} from './utils/SdkEvents';
10
+ import SDKMethodEventsManager from './utils/SdkMethodEvents';
9
11
  import App from './App';
12
+ import SdkApiContextProvider from './components/SdkApiContext';
13
+ import {Unsubscribe} from 'nanoevents';
10
14
 
11
- export interface userEventsMapInterface {
12
- leave: () => void;
13
- create: (
14
- hostPhrase: string,
15
- attendeePhrase?: string,
16
- pstnNumer?: {
17
- number: string;
18
- pin: string;
19
- },
20
- ) => void;
21
- 'ready-to-join': (meetingTitle: string, devices: MediaDeviceInfo[]) => void;
22
- join: (
23
- meetingTitle: string,
24
- devices: MediaDeviceInfo[],
25
- isHost: boolean,
26
- ) => void;
27
- }
15
+ // type makeAsync<T extends (...p: any) => void> = (
16
+ // ...p: Parameters<T>
17
+ // ) => PromiseLike<ReturnType<T>>;
18
+ //
19
+ // type takeOnlyFirstParam<T extends (...p: any) => void> = (
20
+ // p: Parameters<T>[0],
21
+ // ) => ReturnType<T>;
28
22
 
29
- export interface AppBuilderSdkApiInterface {
23
+ export interface SdkMethodEvents {
30
24
  customize: (customization: CustomizationApiInterface) => void;
31
- createCustomization: (
32
- customization: CustomizationApiInterface,
33
- ) => CustomizationApiInterface;
34
- join: (roomid: string) => Promise<void>;
35
- on: <T extends keyof userEventsMapInterface>(
36
- userEventName: T,
37
- callBack: userEventsMapInterface[T],
38
- ) => Unsubscribe;
25
+ join(
26
+ roomid: string | Partial<RoomInfoContextInterface['data']>,
27
+ skipPrecall?: boolean,
28
+ ): RoomInfoContextInterface['data'];
39
29
  }
40
30
 
41
- let joinInit = false;
31
+ // interface AppBuilderSdkApiInterface {
32
+ // customize: makeAsync<SdkMethodEvents['customize']>;
33
+ // joinRoom: makeAsync<takeOnlyFirstParam<SdkMethodEvents['join']>>;
34
+ // joinPrecall: makeAsync<takeOnlyFirstParam<SdkMethodEvents['join']>>;
35
+ // createCustomization: (
36
+ // customization: CustomizationApiInterface,
37
+ // ) => CustomizationApiInterface;
38
+ // on: <T extends keyof userEventsMapInterface>(
39
+ // userEventName: T,
40
+ // callBack: userEventsMapInterface[T],
41
+ // ) => Unsubscribe;
42
+ // }
42
43
 
43
- export const AppBuilderSdkApi: AppBuilderSdkApiInterface = {
44
- customize: (customization: CustomizationApiInterface) => {
45
- SDKEvents.emit('addFpe', customization);
44
+ export const AppBuilderSdkApi = {
45
+ customize: async (customization: CustomizationApiInterface) => {
46
+ return await SDKMethodEventsManager.emit('customize', customization);
47
+ },
48
+ customEvents: customEvents,
49
+ join: async (roomDetails: string) => {
50
+ await SDKMethodEventsManager.emit('join', roomDetails, false);
51
+ },
52
+ joinRoom: async (
53
+ roomDetails: string | Partial<RoomInfoContextInterface['data']>,
54
+ ) => {
55
+ return await SDKMethodEventsManager.emit('join', roomDetails, true);
56
+ },
57
+ joinPrecall: async (
58
+ roomDetails: string | Partial<RoomInfoContextInterface['data']>,
59
+ ) => {
60
+ const t = await SDKMethodEventsManager.emit('join', roomDetails);
61
+ return t as unknown as [RoomInfoContextInterface['data'], () => {}];
46
62
  },
47
- join: (roomid: string) =>
48
- new Promise((resolve, reject) => {
49
- if (joinInit) {
50
- console.log('[SDKEvents] Join listener emitted preemptive');
51
- SDKEvents.emit('joinMeetingWithPhrase', roomid, resolve, reject);
52
- }
53
- SDKEvents.on('joinInit', () => {
54
- if (!joinInit) {
55
- console.log('[SDKEvents] Join listener emitted');
56
- SDKEvents.emit('joinMeetingWithPhrase', roomid, resolve, reject);
57
- joinInit = true;
58
- }
59
- });
60
- }),
61
63
  createCustomization: customize,
62
- on: (userEventName, cb) => {
64
+ on: <T extends keyof userEventsMapInterface>(
65
+ userEventName: T,
66
+ cb: userEventsMapInterface[T],
67
+ ): Unsubscribe => {
63
68
  console.log('SDKEvents: Event Registered', userEventName);
64
69
  return SDKEvents.on(userEventName, cb);
65
70
  },
66
71
  };
67
72
 
68
73
  const SDKAppWrapper = () => {
69
- const [fpe, setFpe] = useState(customizationConfig);
70
- useEffect(() => {
71
- SDKEvents.on('addFpe', (sdkFpeConfig) => {
72
- console.log('SDKEvents: addFpe event called');
73
- setFpe(sdkFpeConfig);
74
- });
75
- SDKEvents.emit('addFpeInit');
76
- // Join event consumed in Create.tsx
77
- }, []);
78
74
  return (
79
- <>
80
- <CustomizationProvider value={fpe}>
75
+ <SdkApiContextProvider>
76
+ <CustomizationProvider>
81
77
  <App />
82
78
  </CustomizationProvider>
83
- </>
79
+ </SdkApiContextProvider>
84
80
  );
85
81
  };
86
82
 
@@ -1,11 +1,11 @@
1
1
  import {useLocalUid} from '../../agora-rn-uikit';
2
- import {useRender} from 'customization-api';
2
+ import {useContent} from 'customization-api';
3
3
 
4
4
  /**
5
5
  * The LocalUserInfo app state contains the local user information like uid, audio and video mute states etc.
6
6
  */
7
7
  export const useLocalUserInfo = () => {
8
8
  const localUid = useLocalUid();
9
- const {renderList} = useRender();
10
- return renderList[localUid];
9
+ const {defaultContent} = useContent();
10
+ return defaultContent[localUid];
11
11
  };