agora-appbuilder-core 3.0.9 → 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 (305) hide show
  1. package/Readme.md +6 -0
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +5871 -4728
  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 -106
  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/src/Contexts/RenderContext.tsx +0 -10
  301. package/template/src/assets/icons.ts +0 -102
  302. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -69
  303. package/template/src/components/participants/MeParticipant.tsx +0 -38
  304. package/template/src/components/participants/RemoteParticipants.tsx +0 -71
  305. package/template/src/pages/video-call/CustomUserContextHolder.tsx +0 -20
@@ -9,19 +9,22 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
+ import hexadecimalTransparency from '../utils/hexadecimalTransparency';
13
+ import ThemeConfig from '../theme';
12
14
  import {isWebInternal} from '../utils/common';
13
15
 
14
16
  const styles = {
15
17
  temp: {
16
18
  width: '100%',
17
19
  height: '100%',
18
- backgroundColor: $config.SECONDARY_FONT_COLOR,
19
- borderRadius: 15,
20
+ borderRadius: 0,
21
+ borderWidth: 0,
20
22
  },
21
23
  bottomBar: {
22
24
  flex: isWebInternal() ? 1.3 : 1.6,
23
25
  paddingHorizontal: isWebInternal() ? '20%' : '1%',
24
- backgroundColor: $config.SECONDARY_FONT_COLOR + 80,
26
+ backgroundColor:
27
+ $config.SECONDARY_ACTION_COLOR + hexadecimalTransparency['80%'],
25
28
  flexDirection: 'row',
26
29
  justifyContent: 'space-evenly',
27
30
  position: 'relative',
@@ -29,21 +32,30 @@ const styles = {
29
32
  bottom: 0,
30
33
  },
31
34
  localButton: {
32
- backgroundColor: $config.SECONDARY_FONT_COLOR, //'#fff',
33
- borderRadius: 23,
34
- borderColor: $config.PRIMARY_COLOR,
35
- borderWidth: 0,
36
- width: 40,
37
- height: 40,
38
- padding: 3,
39
35
  display: 'flex',
40
36
  alignSelf: 'center',
41
37
  alignItems: 'center',
42
38
  justifyContent: 'center',
43
39
  },
40
+ actionSheetButton: {
41
+ width: 25,
42
+ height: 25,
43
+ },
44
+ localButtonSmall: {
45
+ display: 'flex',
46
+ alignSelf: 'center',
47
+ alignItems: 'center',
48
+ justifyContent: 'center',
49
+ },
50
+ localButtonText: {
51
+ fontFamily: 'Source Sans Pro',
52
+ fontSize: 12,
53
+ marginTop: 4,
54
+ fontWeight: '400',
55
+ },
44
56
  localButtonWithoutBG: {
45
57
  borderRadius: 23,
46
- borderColor: $config.PRIMARY_COLOR,
58
+ borderColor: $config.PRIMARY_ACTION_BRAND_COLOR,
47
59
  borderWidth: 0,
48
60
  width: 40,
49
61
  height: 40,
@@ -59,15 +71,24 @@ const styles = {
59
71
  resizeMode: 'contain',
60
72
  },
61
73
  endCall: {
62
- backgroundColor: $config.SECONDARY_FONT_COLOR, //'#fff',
63
- borderRadius: 23,
64
- borderColor: $config.PRIMARY_COLOR,
65
- borderWidth: 0,
66
- width: 40,
67
- height: 40,
68
- alignSelf: 'center',
69
- alignItems: 'center',
74
+ width: 20,
75
+ height: 20,
76
+ },
77
+ endCallContainer: {
78
+ flexDirection: 'row',
70
79
  justifyContent: 'center',
80
+ alignItems: 'center',
81
+ paddingVertical: 8,
82
+ paddingHorizontal: 16,
83
+ backgroundColor: $config.SEMANTIC_ERROR,
84
+ borderRadius: 8,
85
+ },
86
+ endCallText: {
87
+ color: $config.PRIMARY_ACTION_TEXT_COLOR,
88
+ fontFamily: ThemeConfig.FontFamily.sansPro,
89
+ fontSize: 12,
90
+ marginLeft: 8,
91
+ fontWeight: '700',
71
92
  },
72
93
  remoteButton: {
73
94
  width: 25,
@@ -80,7 +101,7 @@ const styles = {
80
101
  borderRightWidth: 0,
81
102
  borderLeftWidth: 0,
82
103
  marginHorizontal: 0,
83
- backgroundColor: $config.SECONDARY_FONT_COLOR, //'#fff',
104
+ backgroundColor: $config.SECONDARY_ACTION_COLOR, //'#fff',
84
105
  },
85
106
  liveStreamHostControlBtns: {
86
107
  width: 20,
@@ -93,7 +114,7 @@ const styles = {
93
114
  borderRightWidth: 0,
94
115
  borderLeftWidth: 0,
95
116
  marginHorizontal: 0,
96
- backgroundColor: $config.SECONDARY_FONT_COLOR,
117
+ backgroundColor: $config.SECONDARY_ACTION_COLOR,
97
118
  },
98
119
  minCloseBtn: {
99
120
  alignItems: 'center',
@@ -14,8 +14,7 @@ import {createHook} from 'customization-implementation';
14
14
  import React from 'react';
15
15
  import {useString} from '../utils/useString';
16
16
  import isSDKCheck from '../utils/isSDK';
17
- import Toast from '../../react-native-toast-message';
18
- import {useMeetingInfo} from './meeting-info/useMeetingInfo';
17
+ import {useRoomInfo} from './room-info/useRoomInfo';
19
18
  import platform from '../subComponents/Platform';
20
19
  import {MeetingInviteInterface} from '../language/default-labels/videoCallScreenLabels';
21
20
  import Clipboard from '../subComponents/Clipboard';
@@ -95,7 +94,7 @@ interface ShareLinkProvideProps {
95
94
  const ShareLinkProvider = (props: ShareLinkProvideProps) => {
96
95
  const {
97
96
  data: {meetingTitle, roomId, pstn, isSeparateHostLink, isHost},
98
- } = useMeetingInfo();
97
+ } = useRoomInfo();
99
98
 
100
99
  //commmented for v1 release
101
100
  // const copiedToClipboardText = useString(
@@ -107,7 +106,7 @@ const ShareLinkProvider = (props: ShareLinkProvideProps) => {
107
106
  // const meetingInviteText =
108
107
  // useString<MeetingInviteInterface>('meetingInviteText');
109
108
  const copiedToClipboardText = 'Copied to Clipboard';
110
- const meetingIdText = 'Meeting ID';
109
+ const meetingIdText = 'Room ID';
111
110
  const PSTNNumberText = 'PSTN Number';
112
111
  const PSTNPinText = 'PSTN Pin';
113
112
  const meetingInviteText = ({
@@ -124,31 +123,31 @@ const ShareLinkProvider = (props: ShareLinkProvideProps) => {
124
123
  if (isHost) {
125
124
  if (isSeparateHostLink) {
126
125
  //seperate link for host and attendee
127
- inviteContent += `Meeting - ${meetingName}\nURL for Attendee: ${url?.attendee}\nURL for Host: ${url?.host}`;
126
+ inviteContent += `Room: ${meetingName}\n\nAttendee Link:\n${url?.attendee}\n\nHost Link:\n${url?.host}`;
128
127
  } else {
129
128
  //single link for everyone
130
- inviteContent += `Meeting - ${meetingName}\nMeeting URL: ${url?.host}`;
129
+ inviteContent += `Room: ${meetingName}\n\nMeeting Link:\n${url?.host}`;
131
130
  }
132
131
  }
133
132
  //for attendee
134
133
  else {
135
- inviteContent += `Meeting - ${meetingName}\nURL for Attendee: ${url?.attendee}`;
134
+ inviteContent += `Room: ${meetingName}\n\nAttendee Link:\n${url?.attendee}`;
136
135
  }
137
136
  } else {
138
137
  if (isHost) {
139
138
  if (isSeparateHostLink) {
140
- inviteContent += `Meeting - ${meetingName}\nAttendee Meeting ID: ${id?.attendee}\nHost Meeting ID: ${id?.host}`;
139
+ inviteContent += `Room: ${meetingName}\n\nAttendee Room ID:\n${id?.attendee}\n\nHost Room ID:\n${id?.host}`;
141
140
  } else {
142
- inviteContent += `Meeting - ${meetingName}\nMeeting ID: ${id?.host}`;
141
+ inviteContent += `Room: ${meetingName}\n\nRoom ID:\n${id?.host}`;
143
142
  }
144
143
  } else {
145
144
  //copy this label on videocall screen
146
- inviteContent += `Meeting - ${meetingName}\nAttendee Meeting ID: ${id?.attendee}`;
145
+ inviteContent += `Room: ${meetingName}\n\nAttendee Room ID:\n${id?.attendee}`;
147
146
  }
148
147
  }
149
148
  // Adding pstn data into meeting data if present
150
149
  if (pstn?.number && pstn?.pin) {
151
- inviteContent += `\nPSTN Number: ${pstn.number}\nPSTN Pin: ${pstn.pin}`;
150
+ inviteContent += `\n\nPSTN Number:\n${pstn.number}\n\nPSTN Pin:\n${pstn.pin}`;
152
151
  }
153
152
  return inviteContent;
154
153
  };
@@ -178,10 +177,10 @@ const ShareLinkProvider = (props: ShareLinkProvideProps) => {
178
177
  };
179
178
 
180
179
  const getBaseURL = () => {
181
- let baseURL =
182
- platform === 'web' && !isSDK
183
- ? $config.FRONTEND_ENDPOINT || window.location.origin
184
- : undefined;
180
+ let baseURL = !isSDK
181
+ ? $config.FRONTEND_ENDPOINT ||
182
+ (platform === 'web' && window.location.origin)
183
+ : undefined;
185
184
  return baseURL;
186
185
  };
187
186
 
@@ -240,7 +239,10 @@ const ShareLinkProvider = (props: ShareLinkProvideProps) => {
240
239
  return stringToCopy;
241
240
  };
242
241
 
243
- const copyShareLinkToClipboard = (input: SHARE_LINK_CONTENT_TYPE) => {
242
+ const copyShareLinkToClipboard = (
243
+ input: SHARE_LINK_CONTENT_TYPE,
244
+ callbackFn?: () => void,
245
+ ) => {
244
246
  let stringToCopy = '';
245
247
  switch (input) {
246
248
  case SHARE_LINK_CONTENT_TYPE.MEETING_INVITE:
@@ -258,11 +260,7 @@ const ShareLinkProvider = (props: ShareLinkProvideProps) => {
258
260
  break;
259
261
  }
260
262
  Clipboard.setString(stringToCopy);
261
- Toast.show({
262
- type: 'success',
263
- text1: copiedToClipboardText,
264
- visibilityTime: 1000,
265
- });
263
+ callbackFn && callbackFn();
266
264
  };
267
265
 
268
266
  return (
@@ -0,0 +1,41 @@
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, {useState} from 'react';
13
+ import {createHook} from 'customization-implementation';
14
+
15
+ interface ToastContextInterface {
16
+ isActionSheetVisible: boolean;
17
+ setActionSheetVisible: React.Dispatch<React.SetStateAction<boolean>>;
18
+ }
19
+
20
+ const ToastContext = React.createContext<ToastContextInterface>({
21
+ isActionSheetVisible: false,
22
+ setActionSheetVisible: () => {},
23
+ });
24
+
25
+ const ToastProvider = (props: {children: React.ReactNode}) => {
26
+ const [isActionSheetVisible, setActionSheetVisible] = useState(false);
27
+
28
+ return (
29
+ <ToastContext.Provider
30
+ value={{
31
+ isActionSheetVisible,
32
+ setActionSheetVisible,
33
+ }}>
34
+ {props.children}
35
+ </ToastContext.Provider>
36
+ );
37
+ };
38
+
39
+ const useToast = createHook(ToastContext);
40
+
41
+ export {useToast, ToastContext, ToastProvider};
@@ -10,15 +10,18 @@
10
10
  *********************************************
11
11
  */
12
12
  import React, {useState, useContext, useEffect} from 'react';
13
- import {RenderInterface, useLocalUid} from '../../agora-rn-uikit';
13
+ import {
14
+ DispatchContext,
15
+ ContentInterface,
16
+ useLocalUid,
17
+ } from '../../agora-rn-uikit';
14
18
  import {useString} from '../utils/useString';
15
19
  import StorageContext from './StorageContext';
16
- import events, {EventPersistLevel} from '../rtm-events-api';
20
+ import events, {PersistanceLevel} from '../rtm-events-api';
17
21
  import {EventNames} from '../rtm-events';
18
22
  import useLocalScreenShareUid from '../utils/useLocalShareScreenUid';
19
23
  import {createHook} from 'customization-implementation';
20
24
  import ChatContext from './ChatContext';
21
- import {useRtc} from 'customization-api';
22
25
 
23
26
  interface UserPreferenceContextInterface {
24
27
  displayName: string;
@@ -34,7 +37,7 @@ const UserPreferenceContext =
34
37
  const UserPreferenceProvider = (props: {children: React.ReactNode}) => {
35
38
  const localUid = useLocalUid();
36
39
  const screenShareUid = useLocalScreenShareUid();
37
- const {dispatch} = useRtc();
40
+ const {dispatch} = useContext(DispatchContext);
38
41
 
39
42
  const {store, setStore} = useContext(StorageContext);
40
43
  const {hasUserJoinedRTM} = useContext(ChatContext);
@@ -98,14 +101,14 @@ const UserPreferenceProvider = (props: {children: React.ReactNode}) => {
98
101
  screenShareUid: screenShareUid,
99
102
  name: displayName || userText,
100
103
  }),
101
- EventPersistLevel.LEVEL2,
104
+ PersistanceLevel.Sender,
102
105
  );
103
106
  }
104
107
  }, [displayName, hasUserJoinedRTM]);
105
108
 
106
109
  const updateRenderListState = (
107
110
  uid: number,
108
- data: Partial<RenderInterface>,
111
+ data: Partial<ContentInterface>,
109
112
  ) => {
110
113
  dispatch({type: 'UpdateRenderList', value: [uid, data]});
111
114
  };
@@ -0,0 +1,84 @@
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
+ import React, {SetStateAction, useState, useContext, useEffect} from 'react';
14
+ import {createHook} from 'customization-implementation';
15
+ import InvitePopup from './popups/InvitePopup';
16
+ import StopRecordingPopup from './popups/StopRecordingPopup';
17
+ import {SdkApiContext} from './SdkApiContext';
18
+ import {useRoomInfo} from 'customization-api';
19
+ import SDKEvents from '../utils/SdkEvents';
20
+ import DeviceContext from './DeviceContext';
21
+
22
+ export interface VideoCallContextInterface {
23
+ showInvitePopup: boolean;
24
+ setShowInvitePopup: React.Dispatch<SetStateAction<boolean>>;
25
+ showStopRecordingPopup: boolean;
26
+ setShowStopRecordingPopup: React.Dispatch<SetStateAction<boolean>>;
27
+ showLayoutOption: boolean;
28
+ setShowLayoutOption: React.Dispatch<SetStateAction<boolean>>;
29
+ }
30
+
31
+ const VideoCallContext = React.createContext<VideoCallContextInterface>({
32
+ showInvitePopup: false,
33
+ setShowInvitePopup: () => {},
34
+ showStopRecordingPopup: false,
35
+ setShowStopRecordingPopup: () => {},
36
+ showLayoutOption: false,
37
+ setShowLayoutOption: () => {},
38
+ });
39
+
40
+ interface VideoCallProviderProps {
41
+ children: React.ReactNode;
42
+ }
43
+ const VideoCallProvider = (props: VideoCallProviderProps) => {
44
+ const [showLayoutOption, setShowLayoutOption] = useState(false);
45
+ const [showInvitePopup, setShowInvitePopup] = useState(false);
46
+ const [showStopRecordingPopup, setShowStopRecordingPopup] = useState(false);
47
+ const {join} = useContext(SdkApiContext);
48
+ const roomInfo = useRoomInfo();
49
+ const {deviceList} = useContext(DeviceContext);
50
+
51
+ useEffect(() => {
52
+ if (join.initialized && join.phrase) {
53
+ join.promise.res(roomInfo.data);
54
+ }
55
+ SDKEvents.emit(
56
+ 'join',
57
+ roomInfo.data.meetingTitle,
58
+ deviceList,
59
+ roomInfo.data.isHost,
60
+ );
61
+ }, []);
62
+ return (
63
+ <VideoCallContext.Provider
64
+ value={{
65
+ showInvitePopup,
66
+ setShowInvitePopup,
67
+ showStopRecordingPopup,
68
+ setShowStopRecordingPopup,
69
+ showLayoutOption,
70
+ setShowLayoutOption,
71
+ }}>
72
+ <StopRecordingPopup />
73
+ <InvitePopup />
74
+ {props.children}
75
+ </VideoCallContext.Provider>
76
+ );
77
+ };
78
+
79
+ /**
80
+ *
81
+ */
82
+ const useVideoCall = createHook(VideoCallContext);
83
+
84
+ export {VideoCallProvider, useVideoCall};
@@ -10,10 +10,10 @@ export interface I18nCreateScreenLabelsInterface {
10
10
  }
11
11
 
12
12
  export const CreateScreenLabels: I18nCreateScreenLabelsInterface = {
13
- meetingNameInputPlaceholder: 'Name your Meeting',
13
+ meetingNameInputPlaceholder: 'Name your Room',
14
14
  //commented for v1 release
15
- // createMeetingButton: 'Create Meeting',
16
- // haveMeetingID: 'Have a Meeting ID?',
15
+ // createMeetingButton: 'Create Room',
16
+ // haveMeetingID: 'Have a Room ID?',
17
17
  // pstnToggle: 'Use PSTN (Join by dialing a number)',
18
18
  // hostControlsToggle: (toggle) =>
19
19
  // toggle
@@ -8,6 +8,6 @@ export interface I18nJoinScreenLabelsInterface {
8
8
 
9
9
  export const JoinScreenLabels: I18nJoinScreenLabelsInterface = {
10
10
  //commented for v1 release
11
- // meetingIdInputPlaceholder: 'Enter Meeting ID',
12
- // enterMeetingButton: 'Enter Meeting',
11
+ // meetingIdInputPlaceholder: 'Enter Room ID',
12
+ // enterMeetingButton: 'Enter Room',
13
13
  };
@@ -25,9 +25,9 @@ export const PrecallScreenLabels: I18nPrecallScreenLabelsInterface = {
25
25
  joinRoomButton: ({ready, role}) =>
26
26
  ready
27
27
  ? !role
28
- ? 'Join Room'
29
- : `Join Room as ${
30
- role === ClientRole.Broadcaster ? 'Host' : 'Audience'
28
+ ? 'JOIN ROOM'
29
+ : `JOIN ROOM AS ${
30
+ role === ClientRole.Broadcaster ? 'HOST' : 'AUDIENCE'
31
31
  }`
32
32
  : `Loading...`,
33
33
  };
@@ -26,19 +26,19 @@ export const ShareLinkScreenLabels: I18nShareLinkScreenLabelsInterface = {
26
26
  //commented for v1 release
27
27
  // attendeeUrlLabel: 'Attendee URL',
28
28
  // hostUrlLabel: 'Host URL',
29
- // enterMeetingAfterCreateButton: 'Start Meeting (as host)',
29
+ // enterMeetingAfterCreateButton: 'Start Room (as host)',
30
30
  // copyInviteButton: 'Copy invite to clipboard',
31
31
  // pstnLabel: 'PSTN',
32
32
  // pstnNumberLabel: 'Number',
33
- // meetingUrlLabel: 'Meeting URL',
33
+ // meetingUrlLabel: 'Room URL',
34
34
  // hostIdLabel: 'Host ID',
35
- // meetingIdLabel: 'Meeting ID',
35
+ // meetingIdLabel: 'Room ID',
36
36
  // attendeeIdLabel: 'Attendee ID',
37
37
  // copiedToClipboardNotificationLabel: 'Copied to Clipboard',
38
38
  // PSTNNumber: 'PSTN Number',
39
39
  // PSTNPin: 'PSTN Pin',
40
40
  // URLForAttendee: 'URL for Attendee',
41
41
  // URLForHost: 'URL for Host',
42
- // attendeeMeetingID: 'Attendee Meeting ID',
43
- // hostMeetingID: 'Host Meeting ID',
42
+ // attendeeMeetingID: 'Attendee Room ID',
43
+ // hostMeetingID: 'Host Room ID',
44
44
  };
@@ -108,7 +108,7 @@ export const VideoCallScreenLabels: I18nVideoCallScreenLabelsInterface = {
108
108
  // joiningLoaderLabel: 'Starting Call. Just a second.',
109
109
  // oauthLoginLabel: 'Login using OAuth',
110
110
  // oauthProviderLabel: 'Please select an OAuth provider to login.',
111
- // copyMeetingInviteButton: 'Copy Meeting Invite',
111
+ // copyMeetingInviteButton: 'Copy Room Invite',
112
112
  // pin: 'Pin',
113
113
  // language: 'Language',
114
114
  // hostControlsLabel: 'Host Controls',
@@ -166,20 +166,20 @@ export const VideoCallScreenLabels: I18nVideoCallScreenLabelsInterface = {
166
166
  // if (url) {
167
167
  // // if host data is present generate links for both host and attendee
168
168
  // if (url?.host) {
169
- // inviteContent += `Meeting - ${meetingName}\nURL for Attendee: ${url?.attendee}\nURL for Host: ${url?.host}`;
169
+ // inviteContent += `Room - ${meetingName}\nURL for Attendee: ${url?.attendee}\nURL for Host: ${url?.host}`;
170
170
  // }
171
171
  // // if host data is not present then generate link for attendee alone
172
172
  // else {
173
- // inviteContent += `Meeting - ${meetingName}\nMeeting URL: ${url?.attendee}`;
173
+ // inviteContent += `Room - ${meetingName}\nMeeting URL: ${url?.attendee}`;
174
174
  // }
175
175
  // } else {
176
176
  // // if host data is present generate meeting ID for both host and attendee
177
177
  // if (id?.host) {
178
- // inviteContent += `Meeting - ${meetingName}\nAttendee Meeting ID: ${id?.attendee}\nHost Meeting ID: ${id?.host}`;
178
+ // inviteContent += `Room - ${meetingName}\nAttendee Room ID: ${id?.attendee}\nHost Room ID: ${id?.host}`;
179
179
  // }
180
180
  // // if host data is not present then generate meeting ID for attendee alone
181
181
  // else {
182
- // inviteContent += `Meeting - ${meetingName}\nMeeting ID: ${id?.attendee}`;
182
+ // inviteContent += `Room - ${meetingName}\nMeeting ID: ${id?.attendee}`;
183
183
  // }
184
184
  // }
185
185
  // // Adding pstn data into meeting data if present
@@ -20,21 +20,12 @@ import {
20
20
  import Logo from '../subComponents/Logo';
21
21
  import OAuth from '../components/OAuth';
22
22
  import Illustration from '../subComponents/Illustration';
23
- import {useHasBrandLogo} from '../utils/common';
24
- import DimensionContext from '../components/dimension/DimensionContext';
23
+ import {useHasBrandLogo, useIsDesktop} from '../utils/common';
25
24
  import {useString} from '../utils/useString';
26
25
 
27
26
  const Authenticate = () => {
28
27
  const hasBrandLogo = useHasBrandLogo();
29
- const {getDimensionData} = useContext(DimensionContext);
30
- const [isDesktop, setIsDesktop] = useState(false);
31
- let onLayout = (e: LayoutChangeEvent) => {
32
- const {isDesktop} = getDimensionData(
33
- e.nativeEvent.layout.width,
34
- e.nativeEvent.layout.height,
35
- );
36
- setIsDesktop(isDesktop);
37
- };
28
+ const isDesktop = useIsDesktop();
38
29
  //commented for v1 release
39
30
  // const oauthLoginLabel = useString('oauthLoginLabel')();
40
31
  // const oauthProviderLabel = useString('oauthProviderLabel')();
@@ -42,7 +33,6 @@ const Authenticate = () => {
42
33
  const oauthProviderLabel = 'Please select an OAuth provider to login.';
43
34
  return (
44
35
  <ImageBackground
45
- onLayout={onLayout}
46
36
  source={{uri: $config.BG}}
47
37
  style={style.full}
48
38
  resizeMode={'cover'}>
@@ -54,7 +44,7 @@ const Authenticate = () => {
54
44
  <Text style={style.headline}>{oauthProviderLabel}</Text>
55
45
  <OAuth />
56
46
  </View>
57
- {isDesktop ? (
47
+ {isDesktop() ? (
58
48
  <View style={style.full}>
59
49
  <Illustration />
60
50
  </View>
@@ -93,14 +83,14 @@ const style = StyleSheet.create({
93
83
  heading: {
94
84
  fontSize: 40,
95
85
  fontWeight: '700',
96
- color: $config.PRIMARY_FONT_COLOR,
86
+ color: $config.FONT_COLOR,
97
87
  marginBottom: 20,
98
88
  },
99
89
  headline: {
100
90
  fontSize: 20,
101
91
  letterSpacing: 2,
102
92
  fontWeight: '400',
103
- color: $config.PRIMARY_FONT_COLOR,
93
+ color: $config.FONT_COLOR,
104
94
  marginTop: -50,
105
95
  marginBottom: 20,
106
96
  },