agora-appbuilder-core 3.0.10 → 3.0.12

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 (249) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4979 -7086
  4. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +0 -4
  5. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +0 -18
  6. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +0 -2
  7. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +26 -30
  8. package/template/agora-rn-uikit/src/Controls/Icons.ts +83 -30
  9. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +6 -6
  10. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +0 -1
  11. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +0 -1
  12. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +0 -1
  13. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +0 -1
  14. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +0 -1
  15. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +0 -2
  16. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +0 -1
  17. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +0 -1
  18. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +0 -1
  19. package/template/agora-rn-uikit/src/Reducer/index.ts +0 -3
  20. package/template/agora-rn-uikit/src/Rtc/Create.tsx +1 -89
  21. package/template/agora-rn-uikit/src/RtcConfigure.tsx +2 -39
  22. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +5 -15
  23. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +9 -15
  24. package/template/agora-rn-uikit/src/index.ts +1 -3
  25. package/template/android/app/build.gradle +0 -1
  26. package/template/android/app/src/main/AndroidManifest.xml +15 -22
  27. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +0 -50
  28. package/template/android/build.gradle +3 -3
  29. package/template/babel.config.js +0 -1
  30. package/template/bridge/rtc/webNg/RtcEngine.ts +17 -110
  31. package/template/customization-api/sub-components.ts +1 -1
  32. package/template/customization-api/typeDefinition.ts +1 -2
  33. package/template/electron/index.html +27 -27
  34. package/template/electron/renderer/index.js +0 -1
  35. package/template/global.d.ts +4 -26
  36. package/template/index.js +0 -4
  37. package/template/index.rsdk.tsx +0 -1
  38. package/template/index.web.js +1 -7
  39. package/template/index.wsdk.tsx +1 -1
  40. package/template/ios/HelloWorld/Info.plist +1 -14
  41. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  42. package/template/metro.config.js +1 -1
  43. package/template/package.json +7 -21
  44. package/template/react-native-toast-message/index.d.ts +43 -43
  45. package/template/react-native-toast-message/src/colors/index.js +2 -3
  46. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  47. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  48. package/template/react-native-toast-message/src/components/error.js +2 -3
  49. package/template/react-native-toast-message/src/components/info.js +2 -3
  50. package/template/react-native-toast-message/src/components/success.js +2 -3
  51. package/template/react-native-toast-message/src/index.js +31 -122
  52. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  53. package/template/react-native-toast-message/src/styles.js +4 -3
  54. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  55. package/template/src/App.tsx +0 -6
  56. package/template/src/AppWrapper.tsx +28 -63
  57. package/template/src/assets/icons.ts +102 -0
  58. package/template/src/atoms/HorizontalRule.tsx +1 -3
  59. package/template/src/atoms/PrimaryButton.tsx +26 -51
  60. package/template/src/atoms/SecondaryButton.tsx +5 -8
  61. package/template/src/atoms/TextInput.tsx +14 -12
  62. package/template/src/components/Chat.tsx +214 -86
  63. package/template/src/components/ChatContext.ts +1 -8
  64. package/template/src/components/ColorConfigure.tsx +1 -1
  65. package/template/src/components/ColorContext.ts +1 -1
  66. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  67. package/template/src/components/Controls.tsx +42 -342
  68. package/template/src/components/DeviceConfigure.tsx +101 -461
  69. package/template/src/components/DeviceContext.tsx +4 -8
  70. package/template/src/components/EventsConfigure.tsx +7 -144
  71. package/template/src/components/GraphQLProvider.tsx +1 -1
  72. package/template/src/components/GridVideo.tsx +44 -59
  73. package/template/src/components/HostControlView.tsx +35 -114
  74. package/template/src/components/Navbar.tsx +398 -216
  75. package/template/src/components/NetworkQualityContext.tsx +20 -20
  76. package/template/src/components/ParticipantsView.tsx +154 -177
  77. package/template/src/components/PinnedVideo.tsx +120 -207
  78. package/template/src/components/Precall.native.tsx +119 -358
  79. package/template/src/components/Precall.tsx +135 -269
  80. package/template/src/components/RTMConfigure.tsx +4 -27
  81. package/template/src/components/Router.electron.ts +0 -1
  82. package/template/src/components/Router.native.ts +0 -1
  83. package/template/src/components/Router.sdk.ts +0 -1
  84. package/template/src/components/Router.ts +0 -1
  85. package/template/src/components/Settings.tsx +95 -26
  86. package/template/src/components/SettingsView.tsx +56 -251
  87. package/template/src/components/Share.tsx +273 -302
  88. package/template/src/components/StorageContext.tsx +3 -30
  89. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  90. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  91. package/template/src/components/common/Error.tsx +6 -20
  92. package/template/src/components/common/Logo.tsx +15 -16
  93. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  94. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  95. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  96. package/template/src/components/livestream/Types.ts +14 -39
  97. package/template/src/components/livestream/index.ts +0 -1
  98. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  99. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  100. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  101. package/template/src/components/participants/MeParticipant.tsx +38 -0
  102. package/template/src/components/participants/ParticipantName.tsx +7 -13
  103. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  104. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  105. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  106. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  107. package/template/src/components/precall/LocalMute.tsx +14 -84
  108. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  109. package/template/src/components/precall/VideoPreview.tsx +7 -163
  110. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  111. package/template/src/components/precall/meetingTitle.tsx +12 -15
  112. package/template/src/components/precall/selectDevice.tsx +21 -1
  113. package/template/src/components/precall/textInput.tsx +4 -32
  114. package/template/src/components/precall/usePreCall.tsx +0 -16
  115. package/template/src/components/styles.ts +21 -42
  116. package/template/src/components/useShareLink.tsx +14 -12
  117. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  118. package/template/src/pages/Authenticate.tsx +15 -5
  119. package/template/src/pages/Create.tsx +165 -293
  120. package/template/src/pages/Join.tsx +67 -93
  121. package/template/src/pages/VideoCall.tsx +64 -89
  122. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  123. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  124. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  125. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  126. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  127. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  128. package/template/src/rtm-events/constants.ts +0 -2
  129. package/template/src/subComponents/ChatBubble.tsx +83 -123
  130. package/template/src/subComponents/ChatContainer.tsx +84 -257
  131. package/template/src/subComponents/ChatInput.tsx +46 -61
  132. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  133. package/template/src/subComponents/Checkbox.tsx +2 -2
  134. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  135. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  136. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  137. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  138. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  139. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  140. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  141. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  142. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  143. package/template/src/subComponents/Logo.tsx +4 -3
  144. package/template/src/subComponents/LogoutButton.tsx +1 -1
  145. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  146. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  147. package/template/src/subComponents/Recording.tsx +29 -28
  148. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  149. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  150. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  151. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  152. package/template/src/subComponents/SelectDevice.tsx +61 -404
  153. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  154. package/template/src/subComponents/ToastConfig.tsx +10 -150
  155. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  156. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  157. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  160. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  161. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  162. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  164. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  165. package/template/src/utils/common.tsx +1 -155
  166. package/template/src/utils/index.tsx +0 -19
  167. package/template/src/utils/isMobileOrTablet.ts +2 -7
  168. package/template/src/utils/useButtonTemplate.tsx +0 -1
  169. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  170. package/template/web/index.html +0 -5
  171. package/template/webpack.commons.js +8 -13
  172. package/template/webpack.web.config.js +0 -1
  173. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  174. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  175. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  176. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  177. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  178. package/template/android/app/src/main/res/values/colors.xml +0 -7
  179. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  180. package/template/react-native.config.js +0 -7
  181. package/template/src/assets/font-styles.css +0 -329
  182. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  183. package/template/src/assets/fonts/icomoon.ttf +0 -0
  184. package/template/src/assets/permission.png +0 -0
  185. package/template/src/assets/selection.json +0 -1
  186. package/template/src/atoms/ActionMenu.tsx +0 -236
  187. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  188. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  189. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  190. package/template/src/atoms/AnimatedRings.tsx +0 -70
  191. package/template/src/atoms/Card.tsx +0 -61
  192. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  193. package/template/src/atoms/CircularProgress.tsx +0 -102
  194. package/template/src/atoms/CustomIcon.tsx +0 -88
  195. package/template/src/atoms/CustomSwitch.tsx +0 -287
  196. package/template/src/atoms/Dropdown.tsx +0 -306
  197. package/template/src/atoms/IconButton.tsx +0 -162
  198. package/template/src/atoms/ImageIcon.tsx +0 -98
  199. package/template/src/atoms/InfoBubble.tsx +0 -291
  200. package/template/src/atoms/Input.tsx +0 -87
  201. package/template/src/atoms/InviteInfo.tsx +0 -166
  202. package/template/src/atoms/LinkButton.tsx +0 -28
  203. package/template/src/atoms/OutlineButton.tsx +0 -61
  204. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  205. package/template/src/atoms/Popup.tsx +0 -147
  206. package/template/src/atoms/RecordingInfo.tsx +0 -49
  207. package/template/src/atoms/Spacer.tsx +0 -22
  208. package/template/src/atoms/TertiaryButton.tsx +0 -78
  209. package/template/src/atoms/Toggle.tsx +0 -47
  210. package/template/src/atoms/Tooltip.native.tsx +0 -65
  211. package/template/src/atoms/Tooltip.tsx +0 -94
  212. package/template/src/atoms/UserAvatar.tsx +0 -60
  213. package/template/src/components/CommonStyles.ts +0 -44
  214. package/template/src/components/ToastComponent.tsx +0 -8
  215. package/template/src/components/participants/Participant.tsx +0 -302
  216. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  217. package/template/src/components/popups/InvitePopup.tsx +0 -115
  218. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  219. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  220. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  221. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  222. package/template/src/components/useToast.tsx +0 -41
  223. package/template/src/components/useVideoCall.tsx +0 -65
  224. package/template/src/pages/Endcall.tsx +0 -148
  225. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  226. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  227. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  228. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  229. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  230. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  231. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  232. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  233. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  234. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  235. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  236. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  237. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  238. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  239. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  240. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  241. package/template/src/theme/index.ts +0 -46
  242. package/template/src/utils/PlatformWrapper.tsx +0 -21
  243. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  244. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  245. package/template/src/utils/useFocus.tsx +0 -46
  246. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  247. package/template/src/utils/useIsHandRaised.ts +0 -13
  248. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  249. package/template/src/utils/useRemoteRequest.ts +0 -84
@@ -9,19 +9,13 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import React, {useState, useContext} from 'react';
13
- import {
14
- View,
15
- Text,
16
- StyleSheet,
17
- ScrollView,
18
- TouchableOpacity,
19
- Image,
20
- Pressable,
21
- } from 'react-native';
12
+ // @ts-nocheck
13
+ import React, {useState} from 'react';
14
+ import {View, Text, StyleSheet, Dimensions, ScrollView} from 'react-native';
22
15
  import platform from '../subComponents/Platform';
23
16
  import PrimaryButton from '../atoms/PrimaryButton';
24
17
  import SecondaryButton from '../atoms/SecondaryButton';
18
+ import {BtnTemplate} from '../../agora-rn-uikit';
25
19
  import {SHARE_LINK_CONTENT_TYPE, useShareLink} from './useShareLink';
26
20
  import {useString} from '../utils/useString';
27
21
  import isSDKCheck from '../utils/isSDK';
@@ -29,25 +23,31 @@ import Logo from '../components/common/Logo';
29
23
  import {useMeetingInfo} from './meeting-info/useMeetingInfo';
30
24
  import {useHistory} from '../components/Router';
31
25
  import {useCustomization} from 'customization-implementation';
32
- import {isMobileUA, isValidReactComponent, trimText} from '../utils/common';
33
- import Card from '../atoms/Card';
34
- import Spacer from '../atoms/Spacer';
35
- import LinkButton from '../atoms/LinkButton';
36
- import ImageIcon from '../atoms/ImageIcon';
37
- import ThemeConfig from '../theme';
38
- import Tooltip from '../atoms/Tooltip';
26
+ import {isValidReactComponent} from '../utils/common';
39
27
 
40
- const isLiveStream = $config.EVENT_MODE;
41
-
42
- export interface CopyMeetingInfoProps {
43
- showSubLabel?: boolean;
44
- }
45
- export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
28
+ const Share = () => {
29
+ const {FpeShareComponent} = useCustomization((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
+ });
46
47
  const {copyShareLinkToClipboard, getShareLink} = useShareLink();
47
48
  const {
48
- data: {roomId, isHost, pstn, isSeparateHostLink, meetingTitle},
49
+ data: {roomId, pstn, isSeparateHostLink},
49
50
  } = useMeetingInfo();
50
- const {showSubLabel = true} = props;
51
51
  //commented for v1 release
52
52
  // const meetingUrlText = useString('meetingUrlLabel')();
53
53
  // const meetingIdText = useString('meetingIdLabel')();
@@ -62,18 +62,16 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
62
62
  // 'enterMeetingAfterCreateButton',
63
63
  // )();
64
64
  // const copyInviteButton = useString('copyInviteButton')();
65
- const meetingUrlText = 'Meeting Link';
65
+ const meetingUrlText = 'Meeting URL';
66
66
  const meetingIdText = 'Meeting ID';
67
67
  const hostIdText = 'Host ID';
68
- const attendeeUrlLabel = 'Attendee Link';
68
+ const attendeeUrlLabel = 'Attendee URL';
69
69
  const attendeeIdLabel = 'Attendee ID';
70
- const hostUrlLabel = 'Host Link';
70
+ const hostUrlLabel = 'Host URL';
71
71
  const pstnLabel = 'PSTN';
72
72
  const pstnNumberLabel = 'Number';
73
73
  const pinLabel = 'Pin';
74
- const enterMeetingAfterCreateButton = isLiveStream
75
- ? 'Start Stream (as host)'
76
- : 'Start Meeting (as host)';
74
+ const enterMeetingAfterCreateButton = 'Start Meeting (as host)';
77
75
  const copyInviteButton = 'Copy invite to clipboard';
78
76
  const history = useHistory();
79
77
  const enterMeeting = () => {
@@ -81,6 +79,15 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
81
79
  history.push(roomId.host);
82
80
  }
83
81
  };
82
+
83
+ const [dim, setDim] = useState([
84
+ Dimensions.get('window').width,
85
+ Dimensions.get('window').height,
86
+ Dimensions.get('window').width > Dimensions.get('window').height,
87
+ ]);
88
+ let onLayout = (e: any) => {
89
+ setDim([e.nativeEvent.layout.width, e.nativeEvent.layout.height]);
90
+ };
84
91
  const isSDK = isSDKCheck();
85
92
  const isWebCheck =
86
93
  $config.FRONTEND_ENDPOINT || (platform === 'web' && !isSDK);
@@ -101,309 +108,273 @@ export const CopyMeetingInfo = (props?: CopyMeetingInfoProps) => {
101
108
  return meetingIdText;
102
109
  }
103
110
  };
104
-
105
- const clipboardIconButton = (type: SHARE_LINK_CONTENT_TYPE) => {
106
- return (
107
- <View style={style.iconContainer}>
108
- <Tooltip
109
- isClickable
110
- onPress={() => {
111
- copyShareLinkToClipboard(type);
112
- }}
113
- toolTipIcon={
114
- <>
115
- <ImageIcon
116
- iconType="plain"
117
- name="tick-fill"
118
- tintColor={$config.SEMANTIC_SUCCESS}
119
- />
120
- <Spacer size={8} horizontal={true} />
121
- </>
122
- }
123
- toolTipMessage="Copied to clipboard"
124
- renderContent={(isToolTipVisible, setToolTipVisible) => {
125
- return (
126
- <TouchableOpacity
127
- onPress={() => {
128
- copyShareLinkToClipboard(type, () => {
129
- setToolTipVisible(true);
130
- });
131
- //setToolTipVisible(true);
111
+ return FpeShareComponent ? (
112
+ <FpeShareComponent />
113
+ ) : (
114
+ <ScrollView contentContainerStyle={style.scrollMain}>
115
+ <Logo />
116
+ <View style={style.content} onLayout={onLayout}>
117
+ <View style={style.leftContent}>
118
+ <Text style={style.heading}>{$config.APP_NAME}</Text>
119
+ <Text style={style.headline}>{$config.LANDING_SUB_HEADING}</Text>
120
+ {isSeparateHostLink ? (
121
+ <View style={style.urlContainer}>
122
+ <View style={{width: '80%'}}>
123
+ <Text style={style.urlTitle}>{getAttendeeLabel()}</Text>
124
+ <View style={style.urlHolder}>
125
+ <Text style={[style.url, isWebCheck ? urlWeb : {opacity: 1}]}>
126
+ {getShareLink(SHARE_LINK_CONTENT_TYPE.ATTENDEE)}
127
+ </Text>
128
+ </View>
129
+ </View>
130
+ <View
131
+ style={{
132
+ marginLeft: 'auto',
133
+ flexDirection: 'row',
134
+ alignSelf: 'center',
132
135
  }}>
133
- <ImageIcon
134
- iconType="plain"
135
- name="clipboard"
136
- tintColor={$config.PRIMARY_ACTION_BRAND_COLOR}
136
+ <View
137
+ style={{
138
+ backgroundColor: $config.PRIMARY_COLOR + '80',
139
+ width: 1,
140
+ height: 'auto',
141
+ marginRight: 15,
142
+ }}
137
143
  />
138
- </TouchableOpacity>
139
- );
140
- }}
141
- />
142
- </View>
143
- );
144
- };
145
- return (
146
- <>
147
- {isSeparateHostLink ? (
148
- <>
149
- <Text style={style.urlTitle}>{getAttendeeLabel()}</Text>
150
- <Spacer size={11} />
151
- <View style={style.container}>
152
- <View style={style.urlContainer}>
153
- <Text
154
- numberOfLines={1}
155
- ellipsizeMode="tail"
156
- style={[
157
- style.url,
158
- style.urlPadding,
159
- //@ts-ignore
160
- isWebCheck ? urlWeb : {opacity: 1},
161
- ]}>
162
- {getShareLink(SHARE_LINK_CONTENT_TYPE.ATTENDEE)}
163
- </Text>
164
- </View>
165
- {clipboardIconButton(SHARE_LINK_CONTENT_TYPE.ATTENDEE)}
166
- </View>
167
-
168
- {showSubLabel && (
169
- <>
170
- <Spacer size={14} />
171
- <Text style={style.helpText}>
172
- Share this with attendees you want to invite.
173
- </Text>
174
- </>
175
- )}
176
- <Spacer size={25} />
177
- </>
178
- ) : (
179
- <></>
180
- )}
181
- {isHost ? (
182
- <>
183
- <Text style={style.urlTitle}>{getHostLabel()}</Text>
184
- <Spacer size={11} />
185
- <View style={style.container}>
186
- <View style={style.urlContainer}>
187
- <Text
188
- numberOfLines={1}
189
- ellipsizeMode="tail"
190
- style={[
191
- style.url,
192
- style.urlPadding,
193
- //@ts-ignore
194
- isWebCheck ? urlWeb : {opacity: 1},
195
- ]}>
196
- {getShareLink(SHARE_LINK_CONTENT_TYPE.HOST)}
197
- </Text>
144
+ <View style={style.clipboardIconHolder}>
145
+ <BtnTemplate
146
+ style={style.clipboardIcon}
147
+ color={$config.PRIMARY_COLOR}
148
+ name={'clipboard'}
149
+ onPress={() =>
150
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.ATTENDEE)
151
+ }
152
+ />
153
+ </View>
154
+ </View>
198
155
  </View>
199
- {clipboardIconButton(SHARE_LINK_CONTENT_TYPE.HOST)}
200
- </View>
201
-
202
- {showSubLabel && (
203
- <>
204
- <Spacer size={14} />
205
- <Text style={style.helpText}>
206
- Share this with other co-hosts you want to invite.
207
- </Text>
208
- </>
156
+ ) : (
157
+ <></>
209
158
  )}
210
- <Spacer size={25} />
211
- </>
212
- ) : (
213
- <></>
214
- )}
215
- {pstn ? (
216
- <>
217
- <Text style={style.urlTitle}>{pstnLabel}</Text>
218
- <Spacer size={11} />
219
- <View style={style.container}>
220
- <View style={[style.urlContainer, style.urlPadding]}>
221
- <View>
222
- <Text
223
- style={[
224
- style.url,
225
- //@ts-ignore
226
- isWebCheck ? urlWeb : {opacity: 1},
227
- ]}>
228
- {pstnNumberLabel} - {pstn?.number} {' | '} {pinLabel} -{' '}
229
- {pstn?.pin}
159
+ <View style={style.urlContainer}>
160
+ <View style={{width: '80%'}}>
161
+ <Text style={style.urlTitle}>{getHostLabel()}</Text>
162
+ <View style={style.urlHolder}>
163
+ <Text style={[style.url, isWebCheck ? urlWeb : {opacity: 1}]}>
164
+ {getShareLink(SHARE_LINK_CONTENT_TYPE.HOST)}
230
165
  </Text>
231
166
  </View>
232
167
  </View>
233
- {clipboardIconButton(SHARE_LINK_CONTENT_TYPE.PSTN)}
168
+ <View
169
+ style={{
170
+ marginLeft: 'auto',
171
+ flexDirection: 'row',
172
+ alignSelf: 'center',
173
+ }}>
174
+ <View
175
+ style={{
176
+ backgroundColor: $config.PRIMARY_COLOR + '80',
177
+ width: 1,
178
+ height: 'auto',
179
+ marginRight: 15,
180
+ }}
181
+ />
182
+ <View style={style.clipboardIconHolder}>
183
+ <BtnTemplate
184
+ style={style.clipboardIcon}
185
+ color={$config.PRIMARY_COLOR}
186
+ name={'clipboard'}
187
+ onPress={() =>
188
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.HOST)
189
+ }
190
+ />
191
+ </View>
192
+ </View>
234
193
  </View>
235
-
236
- {showSubLabel && (
237
- <>
238
- <Spacer size={14} />
239
- <Text style={style.helpText}>
240
- Share this phone number and pin to dial from phone.
241
- </Text>
242
- </>
194
+ {pstn ? (
195
+ <View style={style.urlContainer}>
196
+ <View style={{width: '80%'}}>
197
+ <Text style={style.urlTitle}>{pstnLabel}</Text>
198
+ <View>
199
+ <View style={style.pstnHolder}>
200
+ <Text style={style.urlTitle}>{pstnNumberLabel}: </Text>
201
+ <Text
202
+ style={[style.url, isWebCheck ? urlWeb : {opacity: 1}]}>
203
+ {pstn?.number}
204
+ </Text>
205
+ </View>
206
+ <View style={style.pstnHolder}>
207
+ <Text style={style.urlTitle}>{pinLabel}: </Text>
208
+ <Text
209
+ style={[style.url, isWebCheck ? urlWeb : {opacity: 1}]}>
210
+ {pstn?.pin}
211
+ </Text>
212
+ </View>
213
+ </View>
214
+ </View>
215
+ <View style={{marginLeft: 'auto', flexDirection: 'row'}}>
216
+ <View
217
+ style={{
218
+ backgroundColor: $config.PRIMARY_COLOR + '80',
219
+ width: 1,
220
+ height: 'auto',
221
+ marginRight: 15,
222
+ }}
223
+ />
224
+ <View style={style.clipboardIconHolder}>
225
+ <BtnTemplate
226
+ style={style.clipboardIcon}
227
+ color={$config.PRIMARY_COLOR}
228
+ name={'clipboard'}
229
+ onPress={() =>
230
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.PSTN)
231
+ }
232
+ />
233
+ </View>
234
+ </View>
235
+ </View>
236
+ ) : (
237
+ <></>
243
238
  )}
244
- {/* <Spacer size={25} /> */}
245
- </>
246
- ) : (
247
- <></>
248
- )}
249
- </>
250
- );
251
- };
252
-
253
- const Share = () => {
254
- const {FpeShareComponent} = useCustomization((data) => {
255
- let components: {
256
- FpeShareComponent?: React.ElementType;
257
- } = {};
258
- // commented for v1 release
259
- // if (
260
- // data?.components?.share &&
261
- // typeof data?.components?.share !== 'object'
262
- // ) {
263
- // if (
264
- // data?.components?.share &&
265
- // isValidReactComponent(data?.components?.share)
266
- // ) {
267
- // components.FpeShareComponent = data?.components?.share;
268
- // }
269
- // }
270
- return components;
271
- });
272
- const {copyShareLinkToClipboard} = useShareLink();
273
- const {
274
- data: {roomId, meetingTitle},
275
- } = useMeetingInfo();
276
-
277
- const enterMeetingAfterCreateButton = isLiveStream
278
- ? 'Start Stream (as host)'
279
- : 'Start Meeting (as host)';
280
- const copyInviteButton = 'Copy invite to clipboard';
281
- const history = useHistory();
282
- const enterMeeting = () => {
283
- if (roomId?.host) {
284
- history.push(roomId.host);
285
- }
286
- };
287
- const isSDK = isSDKCheck();
288
- const isWebCheck =
289
- $config.FRONTEND_ENDPOINT || (platform === 'web' && !isSDK);
290
-
291
- return FpeShareComponent ? (
292
- <FpeShareComponent />
293
- ) : (
294
- <View style={style.root}>
295
- <ScrollView contentContainerStyle={style.scrollMain}>
296
- <Card>
297
- <View>
298
- <Logo />
299
- <Spacer size={20} />
300
- <Text style={style.heading} numberOfLines={1}>
301
- {trimText(meetingTitle)}
302
- </Text>
303
- <Spacer size={40} />
304
- <CopyMeetingInfo />
305
- <Spacer size={60} />
306
- </View>
307
- <View style={style.btnContainer}>
308
- <PrimaryButton
309
- iconName="video-on"
310
- onPress={() => enterMeeting()}
311
- containerStyle={isMobileUA() && {width: '100%'}}
312
- text={enterMeetingAfterCreateButton.toUpperCase()}
313
- />
314
- <Spacer size={16} />
315
- <LinkButton
316
- text={copyInviteButton}
317
- onPress={() =>
318
- copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.MEETING_INVITE)
319
- }
320
- />
321
- </View>
322
- </Card>
323
- </ScrollView>
324
- </View>
239
+ <PrimaryButton
240
+ onPress={() => enterMeeting()}
241
+ text={enterMeetingAfterCreateButton}
242
+ />
243
+ <View style={{height: 10}} />
244
+ <SecondaryButton
245
+ onPress={() =>
246
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.MEETING_INVITE)
247
+ }
248
+ text={copyInviteButton}
249
+ />
250
+ </View>
251
+ </View>
252
+ </ScrollView>
325
253
  );
326
254
  };
327
255
  const urlWeb = {wordBreak: 'break-all'};
328
256
 
329
257
  const style = StyleSheet.create({
330
- root: {
331
- flex: 1,
332
- },
258
+ full: {flex: 1},
333
259
  scrollMain: {
260
+ paddingVertical: '8%',
261
+ marginHorizontal: '8%',
262
+ display: 'flex',
263
+ justifyContent: 'space-evenly',
334
264
  flexGrow: 1,
335
- flexDirection: 'row',
336
- justifyContent: 'center',
265
+ },
266
+ main: {
267
+ flex: 2,
268
+ justifyContent: 'space-evenly',
269
+ marginHorizontal: '8%',
270
+ marginVertical: '2%',
271
+ },
272
+ content: {flex: 6, flexDirection: 'row'},
273
+ leftContent: {
274
+ width: '100%',
275
+ flex: 1,
276
+ justifyContent: 'space-evenly',
277
+ marginBottom: '12%',
278
+ marginTop: '2%',
279
+ // marginRight: '5%',
280
+ marginHorizontal: 'auto',
281
+ alignItems: 'center',
337
282
  },
338
283
  heading: {
339
- fontSize: ThemeConfig.FontSize.extraLarge,
284
+ fontSize: 32,
340
285
  fontWeight: '700',
341
- lineHeight: ThemeConfig.FontSize.extraLarge,
342
- color: $config.FONT_COLOR,
343
- fontFamily: ThemeConfig.FontFamily.sansPro,
344
- paddingVertical: 2,
345
- },
346
- container: {
347
- flexDirection: 'row',
286
+ textAlign: 'center',
287
+ color: $config.PRIMARY_FONT_COLOR,
288
+ marginBottom: 20,
348
289
  },
349
- urlTitle: {
350
- color: $config.FONT_COLOR,
351
- fontSize: ThemeConfig.FontSize.medium,
352
- fontWeight: '600',
353
- fontFamily: ThemeConfig.FontFamily.sansPro,
354
- paddingLeft: 8,
290
+ headline: {
291
+ fontSize: 18,
292
+ fontWeight: '400',
293
+ textAlign: 'center',
294
+ color: $config.PRIMARY_FONT_COLOR,
295
+ marginBottom: 20,
355
296
  },
356
- urlContainer: {
357
- flex: 0.9,
358
- backgroundColor: $config.INPUT_FIELD_BACKGROUND_COLOR,
359
- borderColor: $config.INPUT_FIELD_BORDER_COLOR,
360
- borderWidth: 1,
361
- borderTopLeftRadius: ThemeConfig.BorderRadius.medium,
362
- borderBottomLeftRadius: ThemeConfig.BorderRadius.medium,
363
- borderTopRightRadius: 0,
364
- borderBottomRightRadius: 0,
297
+ inputs: {
298
+ flex: 1,
299
+ width: '100%',
300
+ alignSelf: 'flex-start',
301
+ alignItems: 'center',
302
+ justifyContent: 'space-evenly',
365
303
  },
366
- iconContainer: {
367
- flex: 0.1,
368
- minWidth: 25,
369
- backgroundColor: $config.INPUT_FIELD_BACKGROUND_COLOR,
304
+ checkboxHolder: {
305
+ marginVertical: 0,
306
+ flexDirection: 'row',
370
307
  justifyContent: 'center',
371
308
  alignItems: 'center',
372
- borderColor: $config.INPUT_FIELD_BORDER_COLOR,
373
- borderLeftWidth: 0,
374
- borderRightWidth: 1,
375
- borderTopWidth: 1,
376
- borderBottomWidth: 1,
377
- borderTopRightRadius: ThemeConfig.BorderRadius.medium,
378
- borderBottomLeftRadius: 0,
379
- borderBottomRightRadius: ThemeConfig.BorderRadius.medium,
380
- borderTopLeftRadius: 0,
381
309
  },
382
- url: {
383
- color: $config.FONT_COLOR + ThemeConfig.EmphasisPlus.medium,
384
- fontSize: ThemeConfig.FontSize.small,
385
- fontWeight: '600',
386
- fontFamily: ThemeConfig.FontFamily.sansPro,
310
+ checkboxTitle: {
311
+ color: $config.PRIMARY_FONT_COLOR,
312
+ paddingHorizontal: 5,
313
+ fontWeight: '700',
387
314
  },
388
- urlPadding: {
315
+ checkboxCaption: {color: '#333', paddingHorizontal: 5},
316
+ checkboxTextHolder: {
317
+ marginVertical: 0, //check if 5
318
+ flexDirection: 'column',
319
+ },
320
+ urlContainer: {
321
+ backgroundColor: $config.PRIMARY_COLOR + '22',
322
+ padding: 10,
323
+ marginBottom: 10,
324
+ borderRadius: 10,
325
+ width: '100%',
326
+ // minWidth: ''
327
+ maxWidth: 700,
328
+ flexDirection: 'row',
389
329
  paddingHorizontal: 20,
390
- paddingVertical: 21,
391
330
  },
392
- clipboardIcon: {
393
- width: 17,
394
- height: 20,
331
+ urlTitle: {
332
+ color: $config.PRIMARY_FONT_COLOR,
333
+ fontSize: 18,
334
+ fontWeight: '700',
335
+ textAlign: 'left',
395
336
  },
396
- btnContainer: {
337
+ pstnHolder: {
397
338
  width: '100%',
339
+ // paddingHorizontal: 10,
340
+ marginTop: 10,
341
+ flexDirection: 'row',
398
342
  alignItems: 'center',
343
+ minHeight: 10,
399
344
  },
400
- helpText: {
401
- color: $config.FONT_COLOR + ThemeConfig.EmphasisPlus.disabled,
402
- fontSize: ThemeConfig.FontSize.small,
403
- lineHeight: ThemeConfig.FontSize.small,
404
- fontWeight: '400',
405
- fontFamily: ThemeConfig.FontFamily.sansPro,
406
- paddingLeft: 8,
345
+ urlHolder: {
346
+ width: '100%',
347
+ // paddingHorizontal: 10,
348
+ // marginBottom: 15,
349
+ flexDirection: 'row',
350
+ alignItems: 'center',
351
+ // justifyContent: 'center',
352
+ // maxWidth: 600,
353
+ minHeight: 30,
354
+ },
355
+ url: {
356
+ color: $config.PRIMARY_FONT_COLOR,
357
+ fontSize: 18,
358
+ // textDecorationLine: 'underline',
359
+ },
360
+ // pstnHolder: {
361
+ // flexDirection: 'row',
362
+ // width: '80%',
363
+ // },
364
+ pstnMargin: {
365
+ marginRight: '10%',
366
+ },
367
+ clipboardIconHolder: {
368
+ width: 40,
369
+ height: 40,
370
+ marginVertical: 'auto',
371
+ },
372
+ clipboardIcon: {
373
+ width: 40,
374
+ height: 40,
375
+ marginVertical: 'auto',
376
+ opacity: 0.5,
377
+ backgroundColor: 'transparent',
407
378
  },
408
379
  });
409
380