agora-appbuilder-core 2.2.0 → 2.3.0-beta.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 (280) hide show
  1. package/Readme.md +7 -1
  2. package/package.json +4 -3
  3. package/template/Gulpfile.js +306 -87
  4. package/template/_gitignore +4 -1
  5. package/template/_package-lock.json +2297 -2533
  6. package/template/agora-rn-uikit/.git/HEAD +1 -1
  7. package/template/agora-rn-uikit/.git/config +3 -3
  8. package/template/agora-rn-uikit/.git/index +0 -0
  9. package/template/agora-rn-uikit/.git/logs/HEAD +2 -2
  10. package/template/agora-rn-uikit/.git/logs/refs/heads/master +1 -1
  11. package/template/agora-rn-uikit/.git/logs/refs/heads/release/fpe-1.0.0 +1 -0
  12. package/template/agora-rn-uikit/.git/logs/refs/remotes/origin/HEAD +1 -1
  13. package/template/agora-rn-uikit/.git/objects/pack/pack-f274a85fccfc9b5112d154bb3b6d34cb4b8dedde.idx +0 -0
  14. package/template/agora-rn-uikit/.git/objects/pack/{pack-0061d00cd98162a329a32b537488a35d0abeb069.pack → pack-f274a85fccfc9b5112d154bb3b6d34cb4b8dedde.pack} +0 -0
  15. package/template/agora-rn-uikit/.git/packed-refs +5 -1
  16. package/template/agora-rn-uikit/.git/refs/heads/release/fpe-1.0.0 +1 -0
  17. package/template/agora-rn-uikit/src/AgoraUIKit.tsx +23 -20
  18. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +13 -8
  19. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +25 -9
  20. package/template/agora-rn-uikit/src/Contexts/RenderContext.tsx +10 -0
  21. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +11 -5
  22. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +6 -2
  23. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +1 -1
  24. package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -2
  25. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +2 -2
  26. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +2 -2
  27. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +6 -2
  28. package/template/agora-rn-uikit/src/Controls/LocalControls.tsx +11 -6
  29. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +10 -6
  30. package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +7 -6
  31. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +6 -5
  32. package/template/agora-rn-uikit/src/Controls/RemoteControls.tsx +3 -3
  33. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +16 -13
  34. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +16 -13
  35. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +13 -13
  36. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +16 -13
  37. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +28 -31
  38. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +48 -35
  39. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +11 -13
  40. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +11 -13
  41. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +18 -15
  42. package/template/agora-rn-uikit/src/Rtc/Create.tsx +14 -2
  43. package/template/agora-rn-uikit/src/Rtc/Join.tsx +19 -3
  44. package/template/agora-rn-uikit/src/RtcConfigure.tsx +161 -44
  45. package/template/agora-rn-uikit/src/Utils/useLocalUid.ts +8 -0
  46. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +8 -6
  47. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +8 -6
  48. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +18 -9
  49. package/template/agora-rn-uikit/src/index.ts +12 -12
  50. package/template/babel.config.js +17 -1
  51. package/template/bridge/rtc/webNg/RtcEngine.ts +34 -28
  52. package/template/bridge/rtc/webNg/SurfaceView.tsx +3 -2
  53. package/template/bridge/rtc/webNg/Types.ts +14 -0
  54. package/template/bridge/rtc/webNg/index.ts +5 -2
  55. package/template/bridge/rtm/web/index.ts +13 -7
  56. package/template/electron-builder.js +3 -2
  57. package/template/esbuild.rsdk.go +226 -0
  58. package/template/{src/subComponents/LayoutEnum.tsx → esbuildConfigTransform.js} +1 -5
  59. package/template/fpe-api/components.ts +42 -0
  60. package/template/fpe-api/context.ts +45 -0
  61. package/template/fpe-api/fpeEvents.ts +9 -0
  62. package/template/fpe-api/index.ts +21 -0
  63. package/template/fpe-api/install.ts +128 -0
  64. package/template/fpe-api/typeDefinition.ts +143 -0
  65. package/template/fpe-api/useFpe.tsx +35 -0
  66. package/template/fpe-api/utils.ts +62 -0
  67. package/template/fpe-implementation/createHook.ts +33 -0
  68. package/template/fpe-implementation/dummyFpe.ts +17 -0
  69. package/template/fpe-implementation/index.ts +1 -0
  70. package/template/fpe-todo.txt +14 -0
  71. package/template/fpe.config.js +25 -0
  72. package/template/global.d.ts +4 -0
  73. package/template/index.rsdk.tsx +27 -0
  74. package/template/index.wsdk.tsx +27 -0
  75. package/template/package-lock.json +2297 -2533
  76. package/template/package.json +28 -12
  77. package/template/react-native-toast-message/src/index.js +9 -10
  78. package/template/react-native-toast-message/src/index.wsdk.js +419 -0
  79. package/template/src/App.tsx +97 -65
  80. package/template/src/AppWrapper.tsx +79 -0
  81. package/template/src/SDKAppWrapper.tsx +67 -0
  82. package/template/src/atoms/PrimaryButton.tsx +14 -8
  83. package/template/src/atoms/TextInput.tsx +13 -5
  84. package/template/src/components/Chat.tsx +171 -139
  85. package/template/src/components/ChatContext.ts +14 -22
  86. package/template/src/components/ColorConfigure.tsx +2 -2
  87. package/template/src/components/Controls.native.tsx +72 -62
  88. package/template/src/components/Controls.tsx +90 -69
  89. package/template/src/components/DeviceConfigure.tsx +1 -1
  90. package/template/src/components/DeviceContext.tsx +14 -7
  91. package/template/src/components/GraphQLProvider.tsx +9 -2
  92. package/template/src/components/GridVideo.tsx +20 -159
  93. package/template/src/components/HostControlView.tsx +54 -15
  94. package/template/src/components/Navbar.tsx +408 -157
  95. package/template/src/components/NetworkQualityContext.tsx +29 -22
  96. package/template/src/components/ParticipantsView.tsx +97 -119
  97. package/template/src/components/PinnedVideo.tsx +41 -188
  98. package/template/src/components/Precall.native.tsx +131 -97
  99. package/template/src/components/Precall.tsx +193 -158
  100. package/template/src/components/RTMConfigure.tsx +320 -398
  101. package/template/src/components/Router.sdk.ts +20 -0
  102. package/template/src/components/SessionContext.tsx +6 -3
  103. package/template/src/components/Settings.native.tsx +3 -0
  104. package/template/src/components/Settings.tsx +65 -31
  105. package/template/src/components/SettingsView.tsx +14 -8
  106. package/template/src/components/Share.tsx +188 -220
  107. package/template/src/components/StorageContext.tsx +5 -5
  108. package/template/src/components/StoreToken.tsx +5 -1
  109. package/template/src/components/chat-messages/useChatMessages.tsx +202 -0
  110. package/template/src/components/chat-notification/useChatNotification.tsx +78 -0
  111. package/template/src/components/chat-ui/useChatUIControl.tsx +66 -0
  112. package/template/src/components/common/Error.tsx +54 -0
  113. package/template/src/components/common/Logo.tsx +35 -0
  114. package/template/src/components/common/index.tsx +8 -0
  115. package/template/src/components/contexts/LiveStreamDataContext.tsx +79 -0
  116. package/template/src/components/contexts/ScreenShareContext.tsx +47 -0
  117. package/template/src/components/contexts/WhiteboardContext.tsx +59 -0
  118. package/template/src/components/dimension/DimensionContext.ts +27 -0
  119. package/template/src/components/dimension/DimensionProvider.tsx +34 -0
  120. package/template/src/components/livestream/LiveStreamContext.tsx +293 -272
  121. package/template/src/components/livestream/Types.ts +26 -7
  122. package/template/src/components/livestream/index.ts +13 -2
  123. package/template/src/components/livestream/views/LiveStreamControls.tsx +5 -1
  124. package/template/src/components/meeting-info/useMeetingInfo.tsx +63 -0
  125. package/template/src/components/meeting-info/useSetMeetingInfo.tsx +38 -0
  126. package/template/src/components/participants/AllAudienceParticipants.tsx +26 -21
  127. package/template/src/components/participants/AllHostParticipants.tsx +36 -53
  128. package/template/src/components/participants/MeParticipant.tsx +9 -10
  129. package/template/src/components/participants/ParticipantName.tsx +2 -1
  130. package/template/src/components/participants/RemoteParticipants.tsx +3 -3
  131. package/template/src/components/precall/LocalMute.native.tsx +91 -0
  132. package/template/src/components/precall/LocalMute.tsx +90 -0
  133. package/template/src/components/precall/VideoPreview.native.tsx +35 -0
  134. package/template/src/components/precall/VideoPreview.tsx +33 -0
  135. package/template/src/components/precall/index.tsx +28 -0
  136. package/template/src/components/precall/joinCallBtn.native.tsx +69 -0
  137. package/template/src/components/precall/joinCallBtn.tsx +91 -0
  138. package/template/src/components/precall/meetingTitle.tsx +26 -0
  139. package/template/src/components/precall/selectDevice.tsx +46 -0
  140. package/template/src/components/precall/textInput.tsx +43 -0
  141. package/template/src/components/precall/usePreCall.tsx +41 -0
  142. package/template/src/components/styles.ts +20 -3
  143. package/template/src/components/useShareLink.tsx +222 -0
  144. package/template/src/components/useWakeLock.tsx +3 -3
  145. package/template/src/custom-events/CustomEvents.ts +197 -0
  146. package/template/src/custom-events/index.tsx +4 -0
  147. package/template/src/custom-events/types.ts +51 -0
  148. package/template/src/language/default-labels/commonLabels.ts +21 -0
  149. package/template/src/language/default-labels/createScreenLabels.ts +22 -0
  150. package/template/src/language/default-labels/index.ts +38 -0
  151. package/template/src/language/default-labels/joinScreenLabels.ts +13 -0
  152. package/template/src/language/default-labels/precallScreenLabels.ts +33 -0
  153. package/template/src/language/default-labels/shareLinkScreenLabels.ts +44 -0
  154. package/template/src/language/default-labels/videoCallScreenLabels.ts +189 -0
  155. package/template/src/language/i18nTypes.ts +10 -0
  156. package/template/src/language/index.ts +18 -0
  157. package/template/src/language/useLanguage.tsx +92 -0
  158. package/template/src/pages/Authenticate.tsx +21 -15
  159. package/template/src/pages/Create.tsx +176 -159
  160. package/template/src/pages/Join.tsx +44 -32
  161. package/template/src/pages/VideoCall.tsx +134 -406
  162. package/template/src/pages/create/useCreate.tsx +37 -0
  163. package/template/src/pages/video-call/CustomLayout.ts +17 -0
  164. package/template/src/pages/video-call/CustomUserContextHolder.tsx +12 -0
  165. package/template/src/pages/video-call/DefaultLayouts.ts +65 -0
  166. package/template/src/pages/video-call/NameWithMicStatus.tsx +62 -0
  167. package/template/src/pages/video-call/RenderComponent.tsx +52 -0
  168. package/template/src/pages/video-call/VideoCallScreen.tsx +191 -0
  169. package/template/src/pages/video-call/VideoComponent.tsx +34 -0
  170. package/template/src/pages/video-call/VideoRenderer.tsx +86 -0
  171. package/template/src/pages/video-call/index.ts +20 -0
  172. package/template/src/rtm/RTMEngine.ts +58 -0
  173. package/template/src/rtm/utils.ts +28 -0
  174. package/template/src/rtm-events/EventUtils.ts +268 -0
  175. package/template/src/rtm-events/EventsQueue.ts +38 -0
  176. package/template/src/rtm-events/constants.ts +40 -0
  177. package/template/src/rtm-events/index.tsx +8 -0
  178. package/template/src/rtm-events/types.ts +7 -0
  179. package/template/src/subComponents/ChatBubble.tsx +18 -11
  180. package/template/src/subComponents/ChatContainer.tsx +78 -29
  181. package/template/src/subComponents/ChatInput.tsx +146 -70
  182. package/template/src/subComponents/CopyJoinInfo.tsx +52 -67
  183. package/template/src/subComponents/Error.tsx +35 -24
  184. package/template/src/subComponents/LanguageSelector.tsx +85 -0
  185. package/template/src/subComponents/LayoutIconDropdown.native.tsx +163 -0
  186. package/template/src/subComponents/LayoutIconDropdown.tsx +198 -0
  187. package/template/src/subComponents/LocalAudioMute.tsx +52 -30
  188. package/template/src/subComponents/LocalEndCall.tsx +52 -0
  189. package/template/src/subComponents/LocalSwitchCamera.tsx +61 -0
  190. package/template/src/subComponents/LocalVideoMute.tsx +48 -30
  191. package/template/src/subComponents/LogoutButton.tsx +20 -5
  192. package/template/src/subComponents/NetworkQualityPill.tsx +43 -13
  193. package/template/src/subComponents/OpenInNativeButton.tsx +3 -2
  194. package/template/src/subComponents/Recording.tsx +46 -138
  195. package/template/src/subComponents/RemoteAudioMute.tsx +30 -34
  196. package/template/src/subComponents/RemoteEndCall.tsx +18 -7
  197. package/template/src/subComponents/RemoteVideoMute.tsx +17 -9
  198. package/template/src/subComponents/ScreenShareNotice.tsx +40 -40
  199. package/template/src/subComponents/SelectDevice.tsx +88 -45
  200. package/template/src/subComponents/SelectOAuth.tsx +30 -6
  201. package/template/src/subComponents/SidePanelButtons.ts +39 -0
  202. package/template/src/subComponents/TextWithTooltip.native.tsx +2 -1
  203. package/template/src/subComponents/TextWithTooltip.tsx +15 -20
  204. package/template/src/subComponents/chat/ChatParticipants.tsx +31 -32
  205. package/template/src/subComponents/livestream/ApprovedLiveStreamControlsView.tsx +7 -3
  206. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -18
  207. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +22 -8
  208. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +12 -7
  209. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +24 -27
  210. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +23 -26
  211. package/template/src/subComponents/livestream/index.ts +10 -2
  212. package/template/src/subComponents/recording/useRecording.tsx +209 -0
  213. package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +64 -0
  214. package/template/src/subComponents/screenshare/ScreenshareButton.native.tsx +18 -0
  215. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +59 -31
  216. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +57 -52
  217. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +97 -138
  218. package/template/src/subComponents/screenshare/useScreenshare.tsx +29 -0
  219. package/template/src/subComponents/toastConfig.tsx +25 -20
  220. package/template/src/utils/IsAttendeeUser.ts +34 -0
  221. package/template/src/utils/SdkEvents.ts +68 -0
  222. package/template/src/utils/common.tsx +40 -0
  223. package/template/src/utils/eventEmitter.ts +29 -0
  224. package/template/src/utils/getMeetingInvite.ts +30 -0
  225. package/template/src/utils/index.tsx +11 -2
  226. package/template/src/utils/isAudioEnabled.ts +29 -0
  227. package/template/src/utils/isHostUser.ts +33 -0
  228. package/template/src/utils/isMobileOrTablet.native.ts +5 -0
  229. package/template/src/utils/{mobileWebTest.tsx → isMobileOrTablet.ts} +5 -2
  230. package/template/src/utils/isPSTNUser.ts +30 -0
  231. package/template/src/utils/isSDK.sdk.ts +5 -0
  232. package/template/src/utils/isSDK.ts +5 -0
  233. package/template/src/utils/isScreenShareUser.ts +31 -0
  234. package/template/src/utils/isVideoEnabled.ts +29 -0
  235. package/template/src/utils/useButtonTemplate.tsx +43 -0
  236. package/template/src/utils/useCreateMeeting.ts +74 -0
  237. package/template/src/utils/useGetLiveStreamingRequests.ts +24 -0
  238. package/template/src/utils/useGetMeetingPhrase.ts +68 -0
  239. package/template/src/utils/useGetName.ts +20 -0
  240. package/template/src/{subComponents/screenshare/ScreenshareContext.tsx → utils/useGroupMessages.ts} +10 -7
  241. package/template/src/utils/useJoinMeeting.ts +120 -0
  242. package/template/src/utils/useLayout.tsx +40 -0
  243. package/template/src/utils/useLiveStreamingUids.ts +26 -0
  244. package/template/src/utils/useMutePSTN.ts +43 -0
  245. package/template/src/utils/useMuteToggleLocal.ts +109 -0
  246. package/template/src/utils/useNavParams.ts +6 -0
  247. package/template/src/utils/useNavigateTo.ts +8 -0
  248. package/template/src/utils/usePrivateMessages.ts +33 -0
  249. package/template/src/utils/useRemoteEndCall.ts +27 -0
  250. package/template/src/utils/useRemoteMute.ts +64 -0
  251. package/template/src/utils/useSendControlMessage.ts +51 -0
  252. package/template/src/utils/useSendMessage.ts +40 -0
  253. package/template/src/utils/useSetName.ts +20 -0
  254. package/template/src/utils/useSetUnreadMessageCount.ts +43 -0
  255. package/template/src/utils/useSidePanel.tsx +41 -0
  256. package/template/src/utils/useString.ts +61 -0
  257. package/template/src/utils/useUnreadMessageCount.ts +50 -0
  258. package/template/src/utils/useUserList.ts +26 -0
  259. package/template/tsconfig.json +4 -4
  260. package/template/tsconfig_fpeApi.json +103 -0
  261. package/template/tsconfig_rsdk_index.json +105 -0
  262. package/template/tsconfig_wsdk_index.json +104 -0
  263. package/template/webpack.commons.js +40 -16
  264. package/template/webpack.main.config.js +2 -1
  265. package/template/webpack.renderer.config.js +1 -1
  266. package/template/webpack.rsdk.config.js +33 -0
  267. package/template/webpack.ts.config.js +89 -0
  268. package/template/webpack.web.config.js +8 -1
  269. package/template/webpack.wsdk.config.js +34 -0
  270. package/template/agora-rn-uikit/.git/logs/refs/heads/ab-dev-auto +0 -1
  271. package/template/agora-rn-uikit/.git/objects/pack/pack-0061d00cd98162a329a32b537488a35d0abeb069.idx +0 -0
  272. package/template/agora-rn-uikit/.git/refs/heads/ab-dev-auto +0 -1
  273. package/template/agora-rn-uikit/src/Contexts/MaxUidContext.tsx +0 -7
  274. package/template/agora-rn-uikit/src/Contexts/MinUidContext.tsx +0 -8
  275. package/template/src/components/participants/context/ParticipantContext.tsx +0 -97
  276. package/template/src/subComponents/ScreenshareButton.tsx +0 -257
  277. package/template/src/subComponents/SwitchCamera.tsx +0 -35
  278. package/template/src/utils/hasBrandLogo.tsx +0 -3
  279. package/template/src/utils/mobileWebTest.native.tsx +0 -5
  280. package/template/src/utils/shouldAuthenticate.tsx +0 -7
@@ -9,100 +9,75 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import React, {useState, useContext} from 'react';
13
- import {
14
- View,
15
- TouchableOpacity,
16
- Text,
17
- StyleSheet,
18
- Dimensions,
19
- Image,
20
- Platform,
21
- } from 'react-native';
22
- // import ColorContext from './ColorContext';
23
- import {useHistory} from './Router';
24
- import Clipboard from '../subComponents/Clipboard';
25
- // import Illustration from '../subComponents/Illustration';
12
+ // @ts-nocheck
13
+ import React, {useState} from 'react';
14
+ import {View, Text, StyleSheet, Dimensions, ScrollView} from 'react-native';
26
15
  import platform from '../subComponents/Platform';
27
16
  import PrimaryButton from '../atoms/PrimaryButton';
28
17
  import SecondaryButton from '../atoms/SecondaryButton';
29
- import icons from '../assets/icons';
30
- import Toast from '../../react-native-toast-message';
31
18
  import {BtnTemplate} from '../../agora-rn-uikit';
32
- import styles from './styles';
19
+ import {SHARE_LINK_CONTENT_TYPE, useShareLink} from './useShareLink';
20
+ import {useString} from '../utils/useString';
21
+ import isSDKCheck from '../utils/isSDK';
22
+ import Logo from '../components/common/Logo';
23
+ import {useMeetingInfo} from './meeting-info/useMeetingInfo';
24
+ import useNavigateTo from '../utils/useNavigateTo';
25
+ import {useFpe} from 'fpe-api';
26
+ import {isValidReactComponent} from '../utils/common';
33
27
 
34
- const Share = (props: any) => {
35
- const history = useHistory();
36
- const {urlView, urlHost, pstn, joinPhrase, roomTitle, hostControlCheckbox} =
37
- props;
38
- // const {primaryColor} = useContext(ColorContext);
39
- // const pstn = {number: '+1 206 656 1157', dtmf: '2342'}
28
+ const Share = () => {
29
+ const {FpeShareComponent} = useFpe((data) => {
30
+ let components: {
31
+ FpeShareComponent?: React.ElementType;
32
+ } = {};
33
+ // commented for v1 release
34
+ // if (
35
+ // data?.components?.share &&
36
+ // typeof data?.components?.share !== 'object'
37
+ // ) {
38
+ // if (
39
+ // data?.components?.share &&
40
+ // isValidReactComponent(data?.components?.share)
41
+ // ) {
42
+ // components.FpeShareComponent = data?.components?.share;
43
+ // }
44
+ // }
45
+ return components;
46
+ });
47
+ const {copyShareLinkToClipboard, getShareLink} = useShareLink();
48
+ const {meetingPassphrase, isSeparateHostLink} = useMeetingInfo();
49
+ //commented for v1 release
50
+ // const meetingUrlText = useString('meetingUrlLabel')();
51
+ // const meetingIdText = useString('meetingIdLabel')();
52
+ // const hostIdText = useString('hostIdLabel')();
53
+ // const attendeeUrlLabel = useString('attendeeUrlLabel')();
54
+ // const attendeeIdLabel = useString('attendeeIdLabel')();
55
+ // const hostUrlLabel = useString('hostUrlLabel')();
56
+ // const pstnLabel = useString('pstnLabel')();
57
+ // const pstnNumberLabel = useString('pstnNumberLabel')();
58
+ // const pinLabel = useString('pin')();
59
+ // const enterMeetingAfterCreateButton = useString(
60
+ // 'enterMeetingAfterCreateButton',
61
+ // )();
62
+ // const copyInviteButton = useString('copyInviteButton')();
63
+ const meetingUrlText = 'Meeting URL';
64
+ const meetingIdText = 'Meeting ID';
65
+ const hostIdText = 'Host ID';
66
+ const attendeeUrlLabel = 'Attendee URL';
67
+ const attendeeIdLabel = 'Attendee ID';
68
+ const hostUrlLabel = 'Host URL';
69
+ const pstnLabel = 'PSTN';
70
+ const pstnNumberLabel = 'Number';
71
+ const pinLabel = 'Pin';
72
+ const enterMeetingAfterCreateButton = 'Start Meeting (as host)';
73
+ const copyInviteButton = 'Copy invite to clipboard';
74
+ const navigateTo = useNavigateTo();
40
75
  const enterMeeting = () => {
41
- if (urlHost) {
42
- history.push(`/${joinPhrase}`);
76
+ if (meetingPassphrase?.host) {
77
+ navigateTo(meetingPassphrase.host);
43
78
  }
44
79
  };
45
80
 
46
- const copyToClipboard = () => {
47
- Toast.show({text1: 'Copied to Clipboard', visibilityTime: 1000});
48
- let stringToCopy = '';
49
-
50
- $config.FRONTEND_ENDPOINT
51
- ? hostControlCheckbox
52
- ? (stringToCopy += `Meeting - ${roomTitle}
53
- URL for Attendee: ${$config.FRONTEND_ENDPOINT}/${urlView}
54
- URL for Host: ${$config.FRONTEND_ENDPOINT}/${urlHost}`)
55
- : (stringToCopy += `Meeting - ${roomTitle}
56
- Meeting URL: ${$config.FRONTEND_ENDPOINT}/${urlHost}`)
57
- : platform === 'web'
58
- ? hostControlCheckbox
59
- ? (stringToCopy += `Meeting - ${roomTitle}
60
- URL for Attendee: ${window.location.origin}/${urlView}
61
- URL for Host: ${window.location.origin}/${urlHost}`)
62
- : (stringToCopy += `Meeting - ${roomTitle}
63
- Meeting URL: ${window.location.origin}/${urlHost}`)
64
- : hostControlCheckbox
65
- ? (stringToCopy += `Meeting - ${roomTitle}
66
- Attendee Meeting ID: ${urlView}
67
- Host Meeting ID: ${urlHost}`)
68
- : (stringToCopy += `Meeting - ${roomTitle}
69
- Meeting URL: ${urlHost}`);
70
-
71
- pstn
72
- ? (stringToCopy += `PSTN Number: ${pstn.number}
73
- PSTN Pin: ${pstn.dtmf}`)
74
- : '';
75
- Clipboard.setString(stringToCopy);
76
- };
77
-
78
- const copyHostUrl = () => {
79
- Toast.show({text1: 'Copied to Clipboard', visibilityTime: 1000});
80
- let stringToCopy = '';
81
- $config.FRONTEND_ENDPOINT
82
- ? (stringToCopy += `${$config.FRONTEND_ENDPOINT}/${urlHost}`)
83
- : platform === 'web'
84
- ? (stringToCopy += `${window.location.origin}/${urlHost}`)
85
- : (stringToCopy += `Meeting ID: ${urlHost}`);
86
- Clipboard.setString(stringToCopy);
87
- };
88
-
89
- const copyAttendeeURL = () => {
90
- Toast.show({text1: 'Copied to Clipboard', visibilityTime: 1000});
91
- let stringToCopy = '';
92
- $config.FRONTEND_ENDPOINT
93
- ? (stringToCopy += `${$config.FRONTEND_ENDPOINT}/${urlView}`)
94
- : platform === 'web'
95
- ? (stringToCopy += `${window.location.origin}/${urlView}`)
96
- : (stringToCopy += `Meeting ID: ${urlView}`);
97
- Clipboard.setString(stringToCopy);
98
- };
99
-
100
- const copyPstn = () => {
101
- Toast.show({text1: 'Copied to Clipboard', visibilityTime: 1000});
102
- let stringToCopy = `PSTN Number: ${pstn?.number} PSTN Pin: ${pstn?.dtmf}`;
103
- Clipboard.setString(stringToCopy);
104
- };
105
-
106
81
  const [dim, setDim] = useState([
107
82
  Dimensions.get('window').width,
108
83
  Dimensions.get('window').height,
@@ -111,33 +86,78 @@ PSTN Pin: ${pstn.dtmf}`)
111
86
  let onLayout = (e: any) => {
112
87
  setDim([e.nativeEvent.layout.width, e.nativeEvent.layout.height]);
113
88
  };
89
+ const isSDK = isSDKCheck();
90
+ const isWeb = $config.FRONTEND_ENDPOINT || (platform === 'web' && !isSDK);
114
91
 
115
- return (
116
- <View style={style.content} onLayout={onLayout}>
117
- <View style={style.leftContent}>
118
- <View>
92
+ const getAttendeeLabel = () => (isWeb ? attendeeUrlLabel : attendeeIdLabel);
93
+
94
+ const getHostLabel = () => {
95
+ if (isSeparateHostLink) {
96
+ if (isWeb) {
97
+ return hostUrlLabel;
98
+ }
99
+ return hostIdText;
100
+ } else {
101
+ if (isWeb) {
102
+ return meetingUrlText;
103
+ }
104
+ return meetingIdText;
105
+ }
106
+ };
107
+ return FpeShareComponent ? (
108
+ <FpeShareComponent />
109
+ ) : (
110
+ <ScrollView contentContainerStyle={style.scrollMain}>
111
+ <Logo />
112
+ <View style={style.content} onLayout={onLayout}>
113
+ <View style={style.leftContent}>
119
114
  <Text style={style.heading}>{$config.APP_NAME}</Text>
120
115
  <Text style={style.headline}>{$config.LANDING_SUB_HEADING}</Text>
121
- </View>
122
- {hostControlCheckbox ? (
116
+ {isSeparateHostLink ? (
117
+ <View style={style.urlContainer}>
118
+ <View style={{width: '80%'}}>
119
+ <Text style={style.urlTitle}>{getAttendeeLabel()}</Text>
120
+ <View style={style.urlHolder}>
121
+ <Text style={[style.url, isWeb ? urlWeb : {opacity: 1}]}>
122
+ {getShareLink(SHARE_LINK_CONTENT_TYPE.ATTENDEE)}
123
+ </Text>
124
+ </View>
125
+ </View>
126
+ <View
127
+ style={{
128
+ marginLeft: 'auto',
129
+ flexDirection: 'row',
130
+ alignSelf: 'center',
131
+ }}>
132
+ <View
133
+ style={{
134
+ backgroundColor: $config.PRIMARY_COLOR + '80',
135
+ width: 1,
136
+ height: 'auto',
137
+ marginRight: 15,
138
+ }}
139
+ />
140
+ <View style={style.clipboardIconHolder}>
141
+ <BtnTemplate
142
+ style={style.clipboardIcon}
143
+ color={$config.PRIMARY_COLOR}
144
+ name={'clipboard'}
145
+ onPress={() =>
146
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.ATTENDEE)
147
+ }
148
+ />
149
+ </View>
150
+ </View>
151
+ </View>
152
+ ) : (
153
+ <></>
154
+ )}
123
155
  <View style={style.urlContainer}>
124
156
  <View style={{width: '80%'}}>
125
- <Text style={style.urlTitle}>
126
- {$config.FRONTEND_ENDPOINT || platform === 'web'
127
- ? 'Attendee URL'
128
- : 'Attendee ID'}
129
- </Text>
157
+ <Text style={style.urlTitle}>{getHostLabel()}</Text>
130
158
  <View style={style.urlHolder}>
131
- <Text
132
- style={[
133
- style.url,
134
- Platform.OS === 'web' ? urlWeb : {opacity: 1},
135
- ]}>
136
- {$config.FRONTEND_ENDPOINT
137
- ? `${$config.FRONTEND_ENDPOINT}/${urlView}`
138
- : platform === 'web'
139
- ? `${window.location.origin}/${urlView}`
140
- : urlView}
159
+ <Text style={[style.url, isWeb ? urlWeb : {opacity: 1}]}>
160
+ {getShareLink(SHARE_LINK_CONTENT_TYPE.HOST)}
141
161
  </Text>
142
162
  </View>
143
163
  </View>
@@ -160,136 +180,83 @@ PSTN Pin: ${pstn.dtmf}`)
160
180
  style={style.clipboardIcon}
161
181
  color={$config.PRIMARY_COLOR}
162
182
  name={'clipboard'}
163
- onPress={() => copyAttendeeURL()}
183
+ onPress={() =>
184
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.HOST)
185
+ }
164
186
  />
165
187
  </View>
166
188
  </View>
167
189
  </View>
168
- ) : (
169
- <></>
170
- )}
171
- <View style={style.urlContainer}>
172
- <View style={{width: '80%'}}>
173
- <Text style={style.urlTitle}>
174
- {$config.FRONTEND_ENDPOINT || platform === 'web'
175
- ? hostControlCheckbox
176
- ? 'Host URL'
177
- : 'Meeting URL'
178
- : hostControlCheckbox
179
- ? 'Host ID'
180
- : 'Meeting ID'}
181
- </Text>
182
- <View style={style.urlHolder}>
183
- <Text
184
- style={[
185
- style.url,
186
- Platform.OS === 'web' ? urlWeb : {opacity: 1},
187
- ]}>
188
- {$config.FRONTEND_ENDPOINT
189
- ? `${$config.FRONTEND_ENDPOINT}/${urlHost}`
190
- : platform === 'web'
191
- ? `${window.location.origin}/${urlHost}`
192
- : urlHost}
193
- </Text>
194
- </View>
195
- </View>
196
- <View
197
- style={{
198
- marginLeft: 'auto',
199
- flexDirection: 'row',
200
- alignSelf: 'center',
201
- }}>
202
- <View
203
- style={{
204
- backgroundColor: $config.PRIMARY_COLOR + '80',
205
- width: 1,
206
- height: 'auto',
207
- marginRight: 15,
208
- }}
209
- />
210
- <View style={style.clipboardIconHolder}>
211
- <BtnTemplate
212
- style={style.clipboardIcon}
213
- color={$config.PRIMARY_COLOR}
214
- name={'clipboard'}
215
- onPress={() => copyHostUrl()}
216
- />
217
- </View>
218
- </View>
219
- </View>
220
- {pstn ? (
221
- <View style={style.urlContainer}>
222
- <View style={{width: '80%'}}>
223
- <Text style={style.urlTitle}>PSTN</Text>
224
- <View>
225
- <View style={style.pstnHolder}>
226
- <Text style={style.urlTitle}>Number: </Text>
227
- <Text
228
- style={[
229
- style.url,
230
- Platform.OS === 'web' ? urlWeb : {opacity: 1},
231
- ]}>
232
- {pstn?.number}
233
- </Text>
234
- </View>
235
- <View style={style.pstnHolder}>
236
- <Text style={style.urlTitle}>Pin: </Text>
237
- <Text
238
- style={[
239
- style.url,
240
- Platform.OS === 'web' ? urlWeb : {opacity: 1},
241
- ]}>
242
- {pstn?.dtmf}
243
- </Text>
190
+ {meetingPassphrase?.pstn ? (
191
+ <View style={style.urlContainer}>
192
+ <View style={{width: '80%'}}>
193
+ <Text style={style.urlTitle}>{pstnLabel}</Text>
194
+ <View>
195
+ <View style={style.pstnHolder}>
196
+ <Text style={style.urlTitle}>{pstnNumberLabel}: </Text>
197
+ <Text style={[style.url, isWeb ? urlWeb : {opacity: 1}]}>
198
+ {meetingPassphrase?.pstn?.number}
199
+ </Text>
200
+ </View>
201
+ <View style={style.pstnHolder}>
202
+ <Text style={style.urlTitle}>{pinLabel}: </Text>
203
+ <Text style={[style.url, isWeb ? urlWeb : {opacity: 1}]}>
204
+ {meetingPassphrase?.pstn?.pin}
205
+ </Text>
206
+ </View>
244
207
  </View>
245
208
  </View>
246
- </View>
247
- <View style={{marginLeft: 'auto', flexDirection: 'row'}}>
248
- <View
249
- style={{
250
- backgroundColor: $config.PRIMARY_COLOR + '80',
251
- width: 1,
252
- height: 'auto',
253
- marginRight: 15,
254
- }}
255
- />
256
- <View style={style.clipboardIconHolder}>
257
- <BtnTemplate
258
- style={style.clipboardIcon}
259
- color={$config.PRIMARY_COLOR}
260
- name={'clipboard'}
261
- onPress={() => copyPstn()}
209
+ <View style={{marginLeft: 'auto', flexDirection: 'row'}}>
210
+ <View
211
+ style={{
212
+ backgroundColor: $config.PRIMARY_COLOR + '80',
213
+ width: 1,
214
+ height: 'auto',
215
+ marginRight: 15,
216
+ }}
262
217
  />
218
+ <View style={style.clipboardIconHolder}>
219
+ <BtnTemplate
220
+ style={style.clipboardIcon}
221
+ color={$config.PRIMARY_COLOR}
222
+ name={'clipboard'}
223
+ onPress={() =>
224
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.PSTN)
225
+ }
226
+ />
227
+ </View>
263
228
  </View>
264
229
  </View>
265
- </View>
266
- ) : (
267
- <></>
268
- )}
269
- <PrimaryButton
270
- onPress={() => enterMeeting()}
271
- text={'Start Meeting (as host)'}
272
- />
273
- <View style={{height: 10}} />
274
- <SecondaryButton
275
- onPress={() => copyToClipboard()}
276
- text={'Copy invite to clipboard'}
277
- />
278
- </View>
279
- {/* {dim[0] > dim[1] + 150 ? (
280
- <View style={style.full}>
281
- <Illustration />
230
+ ) : (
231
+ <></>
232
+ )}
233
+ <PrimaryButton
234
+ onPress={() => enterMeeting()}
235
+ text={enterMeetingAfterCreateButton}
236
+ />
237
+ <View style={{height: 10}} />
238
+ <SecondaryButton
239
+ onPress={() =>
240
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.MEETING_INVITE)
241
+ }
242
+ text={copyInviteButton}
243
+ />
282
244
  </View>
283
- ) : (
284
- <></>
285
- )} */}
286
- </View>
245
+ </View>
246
+ </ScrollView>
287
247
  );
288
248
  };
289
249
  const urlWeb = {wordBreak: 'break-all'};
290
250
 
291
251
  const style = StyleSheet.create({
292
252
  full: {flex: 1},
253
+ scrollMain: {
254
+ paddingVertical: '8%',
255
+ marginHorizontal: '8%',
256
+ display: 'flex',
257
+ justifyContent: 'space-evenly',
258
+ flexGrow: 1,
259
+ },
293
260
  main: {
294
261
  flex: 2,
295
262
  justifyContent: 'space-evenly',
@@ -359,6 +326,7 @@ const style = StyleSheet.create({
359
326
  color: $config.PRIMARY_FONT_COLOR,
360
327
  fontSize: 18,
361
328
  fontWeight: '700',
329
+ textAlign: 'left',
362
330
  },
363
331
  pstnHolder: {
364
332
  width: '100%',
@@ -13,19 +13,19 @@ import React, {createContext, ReactChildren, useEffect, useState} from 'react';
13
13
  import AsyncStorage from '@react-native-community/async-storage';
14
14
  import useMount from './useMount';
15
15
 
16
- interface StoreInterface {
17
- token: null | string;
18
- displayName: null | string;
16
+ export interface StoreInterface {
17
+ [key: string]: string | null;
19
18
  }
20
19
 
21
- interface StorageContextInterface {
20
+ export interface StorageContextInterface {
22
21
  store: StoreInterface;
23
22
  setStore: React.Dispatch<React.SetStateAction<StoreInterface>> | null;
24
23
  }
25
24
 
26
- const initStoreValue: StoreInterface = {
25
+ export const initStoreValue: StoreInterface = {
27
26
  token: null,
28
27
  displayName: '',
28
+ selectedLanguageCode: '',
29
29
  };
30
30
 
31
31
  const initStorageContextValue = {
@@ -14,9 +14,13 @@ import {Redirect, useParams} from './Router';
14
14
  import StorageContext from './StorageContext';
15
15
  import {Text} from 'react-native';
16
16
  import useMount from './useMount';
17
+ import {useString} from '../utils/useString';
17
18
 
18
19
  const Authenticated = () => {
19
- return <Text> Authenticated Successfully! </Text>;
20
+ //commented for v1 release
21
+ //const authenticationSuccessLabel = useString('authenticationSuccessLabel')();
22
+ const authenticationSuccessLabel = 'Authenticated Successfully!';
23
+ return <Text> {authenticationSuccessLabel} </Text>;
20
24
  };
21
25
 
22
26
  const StoreToken = () => {