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