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
@@ -10,26 +10,37 @@
10
10
  *********************************************
11
11
  */
12
12
  import React, {useEffect, useState, useContext} from 'react';
13
- import {View, Text, StyleSheet, ScrollView} from 'react-native';
13
+ import {View, Text, StyleSheet, ScrollView, Pressable} from 'react-native';
14
14
  import {useHistory} from '../components/Router';
15
- import Checkbox from '../subComponents/Checkbox';
16
15
  import PrimaryButton from '../atoms/PrimaryButton';
17
- import SecondaryButton from '../atoms/SecondaryButton';
18
- import HorizontalRule from '../atoms/HorizontalRule';
19
- import TextInput from '../atoms/TextInput';
20
16
  import Toast from '../../react-native-toast-message';
21
17
  import {ErrorContext} from '../components/common';
22
18
  import ShareLink from '../components/Share';
23
19
  import Logo from '../components/common/Logo';
24
- import {isWebInternal, isValidReactComponent} from '../utils/common';
20
+ import {
21
+ isWebInternal,
22
+ maxInputLimit,
23
+ isMobileUA,
24
+ trimText,
25
+ } from '../utils/common';
25
26
  import {useCustomization} from 'customization-implementation';
26
27
  import {useString} from '../utils/useString';
27
- import useCreateMeeting from '../utils/useCreateMeeting';
28
+ import useCreateRoom from '../utils/useCreateRoom';
28
29
  import {CreateProvider} from './create/useCreate';
29
- import useJoinMeeting from '../utils/useJoinMeeting';
30
- import SDKEvents from '../utils/SdkEvents';
31
- import {MeetingInfoDefaultValue} from '../components/meeting-info/useMeetingInfo';
32
- import {useSetMeetingInfo} from '../components/meeting-info/useSetMeetingInfo';
30
+ import useJoinRoom from '../utils/useJoinRoom';
31
+ import {RoomInfoDefaultValue} from '../components/room-info/useRoomInfo';
32
+ import Input from '../atoms/Input';
33
+ import Toggle from '../atoms/Toggle';
34
+ import Card from '../atoms/Card';
35
+ import Spacer from '../atoms/Spacer';
36
+ import LinkButton from '../atoms/LinkButton';
37
+ import StorageContext from '../components/StorageContext';
38
+ import ThemeConfig from '../theme';
39
+ import Tooltip from '../atoms/Tooltip';
40
+ import ImageIcon from '../atoms/ImageIcon';
41
+ import hexadecimalTransparency from '../utils/hexadecimalTransparency';
42
+ import {randomNameGenerator} from '../utils';
43
+ import {useSetRoomInfo} from '../components/room-info/useSetRoomInfo';
33
44
 
34
45
  const Create = () => {
35
46
  const {CreateComponent} = useCustomization((data) => {
@@ -50,17 +61,18 @@ const Create = () => {
50
61
  return components;
51
62
  });
52
63
 
53
- const useJoin = useJoinMeeting();
54
-
64
+ const useJoin = useJoinRoom();
65
+ const {setStore} = useContext(StorageContext);
55
66
  const {setGlobalErrorMessage} = useContext(ErrorContext);
56
67
  const history = useHistory();
57
68
  const [loading, setLoading] = useState(false);
58
69
  const [roomTitle, onChangeRoomTitle] = useState('');
59
- const [pstnCheckbox, setPstnCheckbox] = useState(false);
60
- const [hostControlCheckbox, setHostControlCheckbox] = useState(true);
70
+ // const [randomRoomTitle, setRandomRoomTitle] = useState('');
71
+ const [pstnToggle, setPstnToggle] = useState(false);
72
+ const [coHostToggle, setCoHostToggle] = useState(false);
61
73
  const [roomCreated, setRoomCreated] = useState(false);
62
- const createRoomFun = useCreateMeeting();
63
- const {setMeetingInfo} = useSetMeetingInfo();
74
+ const createRoomFun = useCreateRoom();
75
+ const {setRoomInfo} = useSetRoomInfo();
64
76
  //commented for v1 release
65
77
  // const createdText = useString('meetingCreatedNotificationLabel')();
66
78
  // const hostControlsToggle = useString<boolean>('hostControlsToggle');
@@ -69,41 +81,46 @@ const Create = () => {
69
81
  // const createMeetingButton = useString('createMeetingButton')();
70
82
  // const haveMeetingID = useString('haveMeetingID')();
71
83
 
72
- const createdText = 'Created';
73
- const hostControlsToggle = (toggle: boolean) =>
74
- toggle
75
- ? 'Restrict Host Controls (Separate host link)'
76
- : 'Restrict Host Controls (Everyone is a Host)';
77
- const pstnToggle = (value: boolean) => 'Use PSTN (Join by dialing a number)';
78
- const meetingNameInputPlaceholder = useString(
79
- 'meetingNameInputPlaceholder',
80
- )();
84
+ const createdText = ' has been created';
85
+ // const meetingNameInputPlaceholder = useString(
86
+ // 'meetingNameInputPlaceholder',
87
+ // )();
88
+ const meetingNameInputPlaceholder = 'The Annual Galactic Meet';
81
89
  const loadingWithDots = 'Loading...';
82
- const createMeetingButton = 'Create Meeting';
83
- const haveMeetingID = 'Have a Meeting ID?';
84
90
 
91
+ const btnLabel = () => {
92
+ if ($config.AUDIO_ROOM) {
93
+ if ($config.EVENT_MODE) {
94
+ return 'CREATE A AUDIO LIVECAST';
95
+ } else {
96
+ return 'CREATE A VOICE CHAT';
97
+ }
98
+ } else {
99
+ if ($config.EVENT_MODE) {
100
+ return 'CREATE A STREAM';
101
+ } else {
102
+ return 'CREATE A ROOM';
103
+ }
104
+ }
105
+ };
106
+
107
+ const createMeetingButton = btnLabel();
108
+ const haveMeetingID = 'Join with a room ID';
109
+
110
+ const isDesktop = !isMobileUA();
85
111
  useEffect(() => {
112
+ //Generating the random room title for placeholder
113
+ // setRandomRoomTitle(
114
+ // `${randomNameGenerator(3)}-${randomNameGenerator(
115
+ // 3,
116
+ // )}-${randomNameGenerator(3)}`,
117
+ // );
118
+
86
119
  if (isWebInternal()) {
87
120
  document.title = $config.APP_NAME;
88
121
  }
89
122
  console.log('[SDKEvents] Join listener registered');
90
- const unbind = SDKEvents.on(
91
- 'joinMeetingWithPhrase',
92
- (phrase, resolve, reject) => {
93
- console.log('SDKEvents: joinMeetingWithPhrase event called', phrase);
94
- try {
95
- setMeetingInfo(MeetingInfoDefaultValue);
96
- history.push(phrase);
97
- resolve();
98
- } catch (error) {
99
- reject(error);
100
- }
101
- },
102
- );
103
- SDKEvents.emit('joinInit');
104
- return () => {
105
- unbind();
106
- };
123
+ return () => {};
107
124
  }, []);
108
125
 
109
126
  const showShareScreen = () => {
@@ -118,13 +135,18 @@ const Create = () => {
118
135
  if (roomTitle !== '') {
119
136
  setLoading(true);
120
137
  try {
121
- setMeetingInfo(MeetingInfoDefaultValue);
138
+ setRoomInfo(RoomInfoDefaultValue);
139
+ //@ts-ignore
140
+ //isSeparateHostLink will be for internal usage since backend integration is not there
122
141
  await createRoomFun(roomTitle, enablePSTN, isSeparateHostLink);
123
142
  setLoading(false);
124
143
  Toast.show({
125
144
  type: 'success',
126
- text1: createdText + ': ' + roomTitle,
127
- visibilityTime: 1000,
145
+ text1: trimText(roomTitle) + createdText,
146
+ text2: 'Your New room is now live',
147
+ visibilityTime: 3000,
148
+ primaryBtn: null,
149
+ secondaryBtn: null,
128
150
  });
129
151
  showShareScreen();
130
152
  } catch (error) {
@@ -134,6 +156,66 @@ const Create = () => {
134
156
  }
135
157
  };
136
158
 
159
+ const renderInfoIcon = (isToolTipVisible, setToolTipVisible) => {
160
+ return (
161
+ <Pressable onPress={() => setToolTipVisible(true)}>
162
+ <ImageIcon
163
+ iconType="plain"
164
+ name="info"
165
+ iconSize={20}
166
+ tintColor={
167
+ isToolTipVisible
168
+ ? $config.SECONDARY_ACTION_COLOR
169
+ : $config.SEMANTIC_NEUTRAL
170
+ }
171
+ />
172
+ </Pressable>
173
+ );
174
+ };
175
+
176
+ const getHeading = () => {
177
+ if ($config.AUDIO_ROOM) {
178
+ if ($config.EVENT_MODE) {
179
+ return 'Create a Audio Livecast';
180
+ } else {
181
+ return 'Create a Voice Chat';
182
+ }
183
+ } else {
184
+ if ($config.EVENT_MODE) {
185
+ return 'Create a Livestream';
186
+ } else {
187
+ return 'Create a Room';
188
+ }
189
+ }
190
+ };
191
+
192
+ const getInputLabel = () => {
193
+ if ($config.AUDIO_ROOM) {
194
+ if ($config.EVENT_MODE) {
195
+ return 'Audio Livecast Name';
196
+ } else {
197
+ return 'Voice Chat Name';
198
+ }
199
+ } else {
200
+ if ($config.EVENT_MODE) {
201
+ return 'Stream Name';
202
+ } else {
203
+ return 'Room Name';
204
+ }
205
+ }
206
+ };
207
+
208
+ const showError = () => {
209
+ Toast.show({
210
+ type: 'error',
211
+ text1: 'Backend endpoint not configured',
212
+ text2: 'Please configure backend endpoint config.json',
213
+ visibilityTime: 1000 * 10,
214
+ primaryBtn: null,
215
+ secondaryBtn: null,
216
+ });
217
+ };
218
+
137
219
  return (
138
220
  <CreateProvider
139
221
  value={{
@@ -143,81 +225,142 @@ const Create = () => {
143
225
  CreateComponent ? (
144
226
  <CreateComponent />
145
227
  ) : (
146
- <ScrollView contentContainerStyle={style.main}>
147
- <Logo />
148
- <View style={style.content}>
149
- <View style={style.leftContent}>
150
- <Text style={style.heading}>{$config.APP_NAME}</Text>
151
- <Text style={style.headline}>
152
- {$config.LANDING_SUB_HEADING}
153
- </Text>
154
- <View style={style.inputs}>
155
- <TextInput
228
+ <View style={style.root}>
229
+ <ScrollView contentContainerStyle={style.main}>
230
+ <Card>
231
+ <View>
232
+ <Logo />
233
+ <Spacer size={isDesktop ? 20 : 16} />
234
+ <Text style={style.heading}>{getHeading()}</Text>
235
+ <Spacer size={40} />
236
+ <Input
237
+ maxLength={maxInputLimit}
238
+ labelStyle={style.inputLabelStyle}
239
+ label={getInputLabel()}
156
240
  value={roomTitle}
157
- onChangeText={(text) => onChangeRoomTitle(text)}
158
- onSubmitEditing={() =>
159
- createRoomAndNavigateToShare(
160
- roomTitle,
161
- pstnCheckbox,
162
- hostControlCheckbox,
163
- )
164
- }
165
241
  placeholder={meetingNameInputPlaceholder}
242
+ onChangeText={(text) => onChangeRoomTitle(text)}
243
+ onSubmitEditing={() => {
244
+ if (!roomTitle?.trim()) {
245
+ return;
246
+ } else {
247
+ if (!$config.BACKEND_ENDPOINT) {
248
+ showError();
249
+ } else {
250
+ // !roomTitle?.trim() &&
251
+ // onChangeRoomTitle(randomRoomTitle);
252
+ createRoomAndNavigateToShare(
253
+ roomTitle?.trim(),
254
+ pstnToggle,
255
+ !coHostToggle,
256
+ );
257
+ }
258
+ }
259
+ }}
166
260
  />
167
- <View style={{paddingVertical: 10}}>
168
- <View style={style.checkboxHolder}>
169
- {$config.EVENT_MODE ? (
170
- <></>
171
- ) : (
172
- <>
173
- <Checkbox
174
- disabled={$config.EVENT_MODE}
175
- value={hostControlCheckbox}
176
- onValueChange={setHostControlCheckbox}
177
- />
178
- <Text style={style.checkboxTitle}>
179
- {/* Restrict Host Controls (Separate host link) */}
180
- {hostControlsToggle(hostControlCheckbox)}
181
- </Text>
182
- </>
183
- )}
184
- </View>
185
- {$config.PSTN ? (
186
- <View style={style.checkboxHolder}>
187
- <Checkbox
188
- value={pstnCheckbox}
189
- onValueChange={setPstnCheckbox}
190
- />
191
- <Text style={style.checkboxTitle}>
192
- {pstnToggle(pstnCheckbox)}
261
+ <Spacer size={40} />
262
+ {$config.EVENT_MODE ? (
263
+ <></>
264
+ ) : (
265
+ <View
266
+ style={[
267
+ style.toggleContainer,
268
+ style.upper,
269
+ !$config.PSTN ? style.lower : {},
270
+ ]}>
271
+ <View style={style.infoContainer}>
272
+ <Text numberOfLines={1} style={style.toggleLabel}>
273
+ Make everyone a Co-Host
193
274
  </Text>
275
+ <Tooltip
276
+ activeBgStyle={style.tooltipActiveBgStyle}
277
+ defaultBgStyle={style.tooltipDefaultBgStyle}
278
+ toolTipMessage="Turning on will give everyone the control of this room"
279
+ renderContent={(
280
+ isToolTipVisible,
281
+ setToolTipVisible,
282
+ ) =>
283
+ renderInfoIcon(isToolTipVisible, setToolTipVisible)
284
+ }></Tooltip>
285
+ </View>
286
+ <View style={style.infoToggleContainer}>
287
+ <Toggle
288
+ disabled={$config.EVENT_MODE}
289
+ isEnabled={coHostToggle}
290
+ toggleSwitch={setCoHostToggle}
291
+ />
292
+ </View>
293
+ </View>
294
+ )}
295
+ {$config.PSTN ? (
296
+ <>
297
+ <View style={style.separator} />
298
+ <View
299
+ style={[
300
+ style.toggleContainer,
301
+ style.lower,
302
+ $config.EVENT_MODE ? style.upper : {},
303
+ ]}>
304
+ <View style={style.infoContainer}>
305
+ <Text numberOfLines={1} style={style.toggleLabel}>
306
+ Allow joining via a phone number
307
+ </Text>
308
+ <Tooltip
309
+ activeBgStyle={style.tooltipActiveBgStyle}
310
+ defaultBgStyle={style.tooltipDefaultBgStyle}
311
+ toolTipMessage="Attendees can dial a number and join via PSTN"
312
+ renderContent={(
313
+ isToolTipVisible,
314
+ setToolTipVisible,
315
+ ) =>
316
+ renderInfoIcon(
317
+ isToolTipVisible,
318
+ setToolTipVisible,
319
+ )
320
+ }></Tooltip>
321
+ </View>
322
+ <View style={style.infoToggleContainer}>
323
+ <Toggle
324
+ isEnabled={pstnToggle}
325
+ toggleSwitch={setPstnToggle}
326
+ />
327
+ </View>
194
328
  </View>
195
- ) : (
196
- <></>
197
- )}
198
- </View>
199
- <View style={style.btnContainer}>
200
- <PrimaryButton
201
- disabled={roomTitle === '' || loading}
202
- onPress={() =>
329
+ </>
330
+ ) : (
331
+ <></>
332
+ )}
333
+ <Spacer size={isDesktop ? 60 : 125} />
334
+ </View>
335
+ <View style={[style.btnContainer]}>
336
+ <PrimaryButton
337
+ iconName={'video-plus'}
338
+ disabled={loading || !roomTitle?.trim()}
339
+ containerStyle={!isDesktop && {width: '100%'}}
340
+ onPress={() => {
341
+ if (!$config.BACKEND_ENDPOINT) {
342
+ showError();
343
+ } else {
344
+ // !roomTitle?.trim() &&
345
+ // onChangeRoomTitle(randomRoomTitle);
203
346
  createRoomAndNavigateToShare(
204
- roomTitle,
205
- pstnCheckbox,
206
- hostControlCheckbox,
207
- )
347
+ roomTitle?.trim(),
348
+ pstnToggle,
349
+ !coHostToggle,
350
+ );
208
351
  }
209
- text={loading ? loadingWithDots : createMeetingButton}
210
- />
211
- <HorizontalRule />
212
- <SecondaryButton
213
- onPress={() => history.push('/join')}
214
- text={haveMeetingID}
215
- />
216
- </View>
352
+ }}
353
+ text={loading ? loadingWithDots : createMeetingButton}
354
+ />
355
+ <Spacer size={16} />
356
+ <LinkButton
357
+ text={haveMeetingID}
358
+ onPress={() => history.push('/join')}
359
+ />
217
360
  </View>
218
- </View>
219
- </View>
220
- </ScrollView>
361
+ </Card>
362
+ </ScrollView>
363
+ </View>
221
364
  )
222
365
  ) : (
223
366
  <></>
@@ -228,108 +371,78 @@ const Create = () => {
228
371
  };
229
372
 
230
373
  const style = StyleSheet.create({
374
+ root: {
375
+ flex: 1,
376
+ },
377
+ inputLabelStyle: {
378
+ paddingLeft: 8,
379
+ },
231
380
  main: {
232
- paddingVertical: '8%',
233
- marginHorizontal: '8%',
234
- display: 'flex',
235
- justifyContent: 'space-evenly',
236
381
  flexGrow: 1,
237
- },
238
- nav: {
239
- flex: 1,
240
- width: '100%',
241
382
  flexDirection: 'row',
242
- alignItems: 'center',
243
- alignSelf: 'center',
244
383
  justifyContent: 'center',
245
384
  },
246
- content: {flex: 6, flexDirection: 'row'},
247
- leftContent: {
248
- width: '100%',
249
- flex: 1,
250
- justifyContent: 'space-evenly',
251
- minHeight: 350,
252
- // marginRight: '5%',
253
- marginHorizontal: 'auto',
254
- },
255
385
  heading: {
256
- fontSize: 32,
386
+ fontSize: ThemeConfig.FontSize.extraLarge,
257
387
  fontWeight: '700',
258
- textAlign: 'center',
259
- color: $config.PRIMARY_FONT_COLOR,
260
- marginBottom: 20,
388
+ lineHeight: ThemeConfig.FontSize.extraLarge,
389
+ color: $config.FONT_COLOR,
390
+ fontFamily: ThemeConfig.FontFamily.sansPro,
391
+ opacity: ThemeConfig.EmphasisOpacity.high,
261
392
  },
262
393
  headline: {
263
394
  fontSize: 18,
264
395
  fontWeight: '400',
265
396
  textAlign: 'center',
266
- color: $config.PRIMARY_FONT_COLOR,
397
+ color: $config.FONT_COLOR,
267
398
  marginBottom: 40,
268
399
  },
269
- inputs: {
270
- flex: 1,
271
- // marginVertical: '2%',
400
+ btnContainer: {
272
401
  width: '100%',
273
- alignSelf: 'flex-start',
274
402
  alignItems: 'center',
275
- justifyContent: 'space-evenly',
276
403
  },
277
- // textInput: textInput,
278
- checkboxHolder: {
279
- marginVertical: 0,
404
+ toggleContainer: {
280
405
  flexDirection: 'row',
281
- marginTop: 0,
282
- marginBottom: 20,
283
- // flex: .2,
284
- // height: 10,
285
- // justifyContent: 'center',
286
- // alignContent: 'center',
287
- justifyContent: 'flex-start',
288
- // alignItems: 'flex-start',
406
+ backgroundColor: $config.CARD_LAYER_2_COLOR,
407
+ paddingVertical: 22,
408
+ paddingHorizontal: 20,
289
409
  },
290
- checkboxTitle: {
291
- color: $config.PRIMARY_FONT_COLOR + '60',
292
- paddingHorizontal: 5,
293
- alignSelf: 'center',
294
- // marginVertical: 'auto',
295
- // fontWeight: '700',
410
+ upper: {
411
+ borderTopLeftRadius: ThemeConfig.BorderRadius.medium,
412
+ borderTopRightRadius: ThemeConfig.BorderRadius.medium,
296
413
  },
297
- checkboxCaption: {
298
- color: $config.PRIMARY_FONT_COLOR + '60',
299
- paddingHorizontal: 5,
414
+ lower: {
415
+ borderBottomLeftRadius: ThemeConfig.BorderRadius.medium,
416
+ borderBottomRightRadius: ThemeConfig.BorderRadius.medium,
300
417
  },
301
- checkboxTextHolder: {
302
- marginVertical: 0, //check if 5
303
- flexDirection: 'column',
418
+ toggleLabel: {
419
+ color: $config.FONT_COLOR,
420
+ fontSize: ThemeConfig.FontSize.normal,
421
+ marginRight: 4,
422
+ fontFamily: ThemeConfig.FontFamily.sansPro,
423
+ fontWeight: '400',
424
+ alignSelf: 'center',
304
425
  },
305
- // urlTitle: {
306
- // color: '#fff',
307
- // fontSize: 14,
308
- // },
309
- urlHolder: {
310
- width: '100%',
311
- paddingHorizontal: 10,
312
- marginBottom: 15,
313
- justifyContent: 'center',
314
- maxWidth: 400,
315
- minHeight: 45,
426
+ separator: {
427
+ height: 1,
316
428
  },
317
- // url: {
318
- // color: '#fff',
319
- // fontSize: 18,
320
- // fontWeight: '700',
321
- // textDecorationLine: 'underline',
322
- // },
323
- pstnHolder: {
429
+ infoContainer: {
324
430
  flexDirection: 'row',
325
- width: '80%',
431
+ flex: 0.8,
432
+ },
433
+ infoToggleContainer: {
434
+ flex: 0.2,
435
+ alignItems: 'flex-end',
436
+ alignSelf: 'center',
326
437
  },
327
- pstnMargin: {
328
- marginRight: '10%',
438
+ tooltipActiveBgStyle: {
439
+ backgroundColor:
440
+ $config.CARD_LAYER_5_COLOR + hexadecimalTransparency['20%'],
441
+ borderRadius: 14,
442
+ padding: 5,
329
443
  },
330
- btnContainer: {
331
- width: '100%',
332
- alignItems: 'center',
444
+ tooltipDefaultBgStyle: {
445
+ padding: 5,
333
446
  },
334
447
  });
335
448