agora-appbuilder-core 3.0.10 → 3.0.11

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 (248) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4719 -5862
  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 -25
  36. package/template/index.rsdk.tsx +0 -1
  37. package/template/index.web.js +1 -2
  38. package/template/index.wsdk.tsx +1 -1
  39. package/template/ios/HelloWorld/Info.plist +1 -14
  40. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  41. package/template/metro.config.js +1 -1
  42. package/template/package.json +7 -18
  43. package/template/react-native-toast-message/index.d.ts +43 -43
  44. package/template/react-native-toast-message/src/colors/index.js +2 -3
  45. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  46. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  47. package/template/react-native-toast-message/src/components/error.js +2 -3
  48. package/template/react-native-toast-message/src/components/info.js +2 -3
  49. package/template/react-native-toast-message/src/components/success.js +2 -3
  50. package/template/react-native-toast-message/src/index.js +31 -122
  51. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  52. package/template/react-native-toast-message/src/styles.js +4 -3
  53. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  54. package/template/src/App.tsx +0 -6
  55. package/template/src/AppWrapper.tsx +28 -63
  56. package/template/src/assets/icons.ts +102 -0
  57. package/template/src/atoms/HorizontalRule.tsx +1 -3
  58. package/template/src/atoms/PrimaryButton.tsx +26 -51
  59. package/template/src/atoms/SecondaryButton.tsx +5 -8
  60. package/template/src/atoms/TextInput.tsx +14 -12
  61. package/template/src/components/Chat.tsx +214 -86
  62. package/template/src/components/ChatContext.ts +1 -8
  63. package/template/src/components/ColorConfigure.tsx +1 -1
  64. package/template/src/components/ColorContext.ts +1 -1
  65. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  66. package/template/src/components/Controls.tsx +42 -342
  67. package/template/src/components/DeviceConfigure.tsx +101 -461
  68. package/template/src/components/DeviceContext.tsx +4 -8
  69. package/template/src/components/EventsConfigure.tsx +7 -144
  70. package/template/src/components/GraphQLProvider.tsx +1 -1
  71. package/template/src/components/GridVideo.tsx +44 -59
  72. package/template/src/components/HostControlView.tsx +35 -114
  73. package/template/src/components/Navbar.tsx +398 -216
  74. package/template/src/components/NetworkQualityContext.tsx +20 -20
  75. package/template/src/components/ParticipantsView.tsx +154 -177
  76. package/template/src/components/PinnedVideo.tsx +120 -207
  77. package/template/src/components/Precall.native.tsx +119 -358
  78. package/template/src/components/Precall.tsx +135 -269
  79. package/template/src/components/RTMConfigure.tsx +4 -27
  80. package/template/src/components/Router.electron.ts +0 -1
  81. package/template/src/components/Router.native.ts +0 -1
  82. package/template/src/components/Router.sdk.ts +0 -1
  83. package/template/src/components/Router.ts +0 -1
  84. package/template/src/components/Settings.tsx +95 -26
  85. package/template/src/components/SettingsView.tsx +56 -251
  86. package/template/src/components/Share.tsx +273 -302
  87. package/template/src/components/StorageContext.tsx +3 -30
  88. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  89. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  90. package/template/src/components/common/Error.tsx +6 -20
  91. package/template/src/components/common/Logo.tsx +15 -16
  92. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  93. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  94. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  95. package/template/src/components/livestream/Types.ts +14 -39
  96. package/template/src/components/livestream/index.ts +0 -1
  97. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  98. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  99. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  100. package/template/src/components/participants/MeParticipant.tsx +38 -0
  101. package/template/src/components/participants/ParticipantName.tsx +7 -13
  102. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  103. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  104. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  105. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  106. package/template/src/components/precall/LocalMute.tsx +14 -84
  107. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  108. package/template/src/components/precall/VideoPreview.tsx +7 -163
  109. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  110. package/template/src/components/precall/meetingTitle.tsx +12 -15
  111. package/template/src/components/precall/selectDevice.tsx +21 -1
  112. package/template/src/components/precall/textInput.tsx +4 -32
  113. package/template/src/components/precall/usePreCall.tsx +0 -16
  114. package/template/src/components/styles.ts +21 -42
  115. package/template/src/components/useShareLink.tsx +14 -12
  116. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  117. package/template/src/pages/Authenticate.tsx +15 -5
  118. package/template/src/pages/Create.tsx +165 -293
  119. package/template/src/pages/Join.tsx +67 -93
  120. package/template/src/pages/VideoCall.tsx +64 -89
  121. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  122. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  123. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  124. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  125. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  126. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  127. package/template/src/rtm-events/constants.ts +0 -2
  128. package/template/src/subComponents/ChatBubble.tsx +83 -123
  129. package/template/src/subComponents/ChatContainer.tsx +84 -257
  130. package/template/src/subComponents/ChatInput.tsx +46 -61
  131. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  132. package/template/src/subComponents/Checkbox.tsx +2 -2
  133. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  134. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  135. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  136. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  137. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  138. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  139. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  140. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  141. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  142. package/template/src/subComponents/Logo.tsx +4 -3
  143. package/template/src/subComponents/LogoutButton.tsx +1 -1
  144. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  145. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  146. package/template/src/subComponents/Recording.tsx +29 -28
  147. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  148. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  149. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  150. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  151. package/template/src/subComponents/SelectDevice.tsx +61 -404
  152. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  153. package/template/src/subComponents/ToastConfig.tsx +10 -150
  154. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  155. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  156. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  157. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  160. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  161. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  162. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  164. package/template/src/utils/common.tsx +1 -155
  165. package/template/src/utils/index.tsx +0 -19
  166. package/template/src/utils/isMobileOrTablet.ts +2 -7
  167. package/template/src/utils/useButtonTemplate.tsx +0 -1
  168. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  169. package/template/web/index.html +0 -5
  170. package/template/webpack.commons.js +8 -13
  171. package/template/webpack.web.config.js +0 -1
  172. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  173. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  174. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  175. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  176. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  177. package/template/android/app/src/main/res/values/colors.xml +0 -7
  178. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  179. package/template/react-native.config.js +0 -7
  180. package/template/src/assets/font-styles.css +0 -329
  181. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  182. package/template/src/assets/fonts/icomoon.ttf +0 -0
  183. package/template/src/assets/permission.png +0 -0
  184. package/template/src/assets/selection.json +0 -1
  185. package/template/src/atoms/ActionMenu.tsx +0 -236
  186. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  187. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  188. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  189. package/template/src/atoms/AnimatedRings.tsx +0 -70
  190. package/template/src/atoms/Card.tsx +0 -61
  191. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  192. package/template/src/atoms/CircularProgress.tsx +0 -102
  193. package/template/src/atoms/CustomIcon.tsx +0 -88
  194. package/template/src/atoms/CustomSwitch.tsx +0 -287
  195. package/template/src/atoms/Dropdown.tsx +0 -306
  196. package/template/src/atoms/IconButton.tsx +0 -162
  197. package/template/src/atoms/ImageIcon.tsx +0 -98
  198. package/template/src/atoms/InfoBubble.tsx +0 -291
  199. package/template/src/atoms/Input.tsx +0 -87
  200. package/template/src/atoms/InviteInfo.tsx +0 -166
  201. package/template/src/atoms/LinkButton.tsx +0 -28
  202. package/template/src/atoms/OutlineButton.tsx +0 -61
  203. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  204. package/template/src/atoms/Popup.tsx +0 -147
  205. package/template/src/atoms/RecordingInfo.tsx +0 -49
  206. package/template/src/atoms/Spacer.tsx +0 -22
  207. package/template/src/atoms/TertiaryButton.tsx +0 -78
  208. package/template/src/atoms/Toggle.tsx +0 -47
  209. package/template/src/atoms/Tooltip.native.tsx +0 -65
  210. package/template/src/atoms/Tooltip.tsx +0 -94
  211. package/template/src/atoms/UserAvatar.tsx +0 -60
  212. package/template/src/components/CommonStyles.ts +0 -44
  213. package/template/src/components/ToastComponent.tsx +0 -8
  214. package/template/src/components/participants/Participant.tsx +0 -302
  215. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  216. package/template/src/components/popups/InvitePopup.tsx +0 -115
  217. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  218. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  219. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  220. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  221. package/template/src/components/useToast.tsx +0 -41
  222. package/template/src/components/useVideoCall.tsx +0 -65
  223. package/template/src/pages/Endcall.tsx +0 -148
  224. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  225. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  226. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  227. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  228. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  229. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  230. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  231. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  232. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  233. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  234. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  235. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  236. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  237. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  238. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  239. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  240. package/template/src/theme/index.ts +0 -46
  241. package/template/src/utils/PlatformWrapper.tsx +0 -21
  242. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  243. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  244. package/template/src/utils/useFocus.tsx +0 -46
  245. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  246. package/template/src/utils/useIsHandRaised.ts +0 -13
  247. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  248. package/template/src/utils/useRemoteRequest.ts +0 -84
@@ -1,291 +0,0 @@
1
- import {
2
- StyleSheet,
3
- Image,
4
- View,
5
- Pressable,
6
- Text,
7
- Modal,
8
- TouchableWithoutFeedback,
9
- useWindowDimensions,
10
- } from 'react-native';
11
- import React, {useRef, useState} from 'react';
12
- import ImageIcon, {ImageIconProps} from './ImageIcon';
13
- import ThemeConfig from '../theme';
14
- import {isMobileUA, isWebInternal} from '../utils/common';
15
- import hexadecimalTransparency from '../utils/hexadecimalTransparency';
16
-
17
- interface iconProps extends ImageIconProps {
18
- activeTintColor: string;
19
- }
20
-
21
- interface InfoBubbleProps {
22
- text: string;
23
- iconProps: iconProps;
24
- bubbleIconProps?: iconProps;
25
- hoverMode?: boolean;
26
- onPress?: () => void;
27
- }
28
-
29
- const InfoBubble = (props: InfoBubbleProps) => {
30
- const [toolTipVisible, setToolTipVisible] = useState(false);
31
- const [left, setLeft] = useState(0);
32
- const [position, setPosition] = useState({});
33
- const [arrowPosition, setArrowPosition] = useState({});
34
- const {hoverMode = true} = props;
35
- const tooltipRef = useRef(null);
36
- const iconRef = useRef(null);
37
- const pressableRef = useRef(null);
38
- const {width, height} = useWindowDimensions();
39
-
40
- const setModalPosition = (width: number) => {
41
- setTimeout(() => {
42
- pressableRef?.current?.measure(
43
- (
44
- _fx: number,
45
- _fy: number,
46
- _localWidth: number,
47
- _localHeight: number,
48
- px: number,
49
- py: number,
50
- ) => {
51
- setPosition({
52
- top: py - (hoverMode ? 80 : 70),
53
- left: hoverMode ? 40 : px - (width ? width / 1.5 : 0),
54
- //left: px - (width ? width / 2 : 0), //TODO: need to dynamically adjust
55
- });
56
- setArrowPosition({
57
- top: py - 6,
58
- left: 100,
59
- });
60
- },
61
- );
62
- });
63
- };
64
-
65
- return (
66
- <PlatformWrapper
67
- onPress={() => setToolTipVisible(true)}
68
- setToolTipVisible={setToolTipVisible}
69
- toolTipVisible={toolTipVisible}
70
- hoverMode={hoverMode}>
71
- {/* toolTipBox for desktop */}
72
- {!isMobileUA() && hoverMode && isWebInternal() && toolTipVisible ? (
73
- <>
74
- <View
75
- style={[
76
- styles.textContainer,
77
- position,
78
- {left: left - 20},
79
- {opacity: !left ? 0 : 1},
80
- ]}
81
- onLayout={({
82
- nativeEvent: {
83
- layout: {x, y, width, height},
84
- },
85
- }) => {
86
- //To center align the tooltip above the icons
87
- if (!left) setLeft(-(width / 2));
88
- }}
89
- ref={tooltipRef}>
90
- <Text style={[styles.textStyle, {padding: 24}]} numberOfLines={1}>
91
- {props.text}
92
- </Text>
93
- </View>
94
- <View style={styles.downsideTriangleIconContainer}>
95
- <ImageIcon
96
- customSize={{
97
- width: styles.downsideTriangleIcon.width,
98
- height: styles.downsideTriangleIcon.height,
99
- }}
100
- name={'downside-triangle'}
101
- tintColor={$config.CARD_LAYER_3_COLOR}
102
- />
103
- </View>
104
- </>
105
- ) : (
106
- <></>
107
- )}
108
- {/* toolTip modal for mobile */}
109
- {(isMobileUA() || !hoverMode) && (
110
- <>
111
- <Modal
112
- animationType="none"
113
- transparent={true}
114
- visible={toolTipVisible}
115
- onRequestClose={() => {
116
- setToolTipVisible(!toolTipVisible);
117
- }}>
118
- <TouchableWithoutFeedback
119
- onPress={() => {
120
- setToolTipVisible(false);
121
- }}>
122
- <View style={styles.backDrop} />
123
- </TouchableWithoutFeedback>
124
- <View
125
- style={[styles.textContainer, position, {maxWidth: width - 100}]}
126
- onLayout={({
127
- nativeEvent: {
128
- layout: {x, y, width, height},
129
- },
130
- }) => {
131
- //To center align the tooltip above the icons
132
- setModalPosition(width);
133
- }}
134
- ref={tooltipRef}>
135
- {props?.bubbleIconProps ? (
136
- <View
137
- style={{
138
- paddingLeft: 12,
139
- marginRight: -4,
140
- alignSelf: 'center',
141
- }}>
142
- <ImageIcon {...props.bubbleIconProps} />
143
- </View>
144
- ) : (
145
- <></>
146
- )}
147
- <Text style={[styles.textStyle, {padding: 12}]}>
148
- {props.text}
149
- </Text>
150
- </View>
151
- </Modal>
152
- {toolTipVisible ? (
153
- <View style={styles.downsideTriangleIconContainer}>
154
- <ImageIcon
155
- customSize={{
156
- width: styles.downsideTriangleIcon.width,
157
- height: styles.downsideTriangleIcon.height,
158
- }}
159
- name={'downside-triangle'}
160
- tintColor={$config.CARD_LAYER_3_COLOR}
161
- />
162
- </View>
163
- ) : (
164
- <></>
165
- )}
166
- </>
167
- )}
168
- {/* info icon */}
169
- <View style={styles.iconStyleView} ref={pressableRef}>
170
- <ImageIcon
171
- iconSize={props.iconProps.iconSize}
172
- name={props.iconProps.name}
173
- tintColor={
174
- toolTipVisible
175
- ? props?.iconProps.activeTintColor || props?.iconProps.tintColor
176
- : props?.iconProps.tintColor
177
- }
178
- />
179
- </View>
180
- </PlatformWrapper>
181
- );
182
- };
183
-
184
- const PlatformWrapper = ({
185
- children,
186
- onPress,
187
- setToolTipVisible,
188
- toolTipVisible,
189
- hoverMode,
190
- }) => {
191
- if (isWebInternal()) {
192
- window.addEventListener('resize', () => {
193
- setToolTipVisible(false);
194
- });
195
- }
196
- return hoverMode && isWebInternal() && !isMobileUA() ? (
197
- <div
198
- style={{
199
- position: 'relative',
200
- marginTop: -3,
201
- marginLeft: -3,
202
- background:
203
- hoverMode && toolTipVisible
204
- ? $config.CARD_LAYER_5_COLOR + hexadecimalTransparency['20%']
205
- : 'transparent',
206
- width: 28,
207
- height: 28,
208
- borderRadius: '50%',
209
- }}
210
- onMouseEnter={() => {
211
- setToolTipVisible(true);
212
- }}
213
- onMouseLeave={() => {
214
- setToolTipVisible(false);
215
- }}>
216
- {children}
217
- </div>
218
- ) : (
219
- <View
220
- style={{
221
- position: 'relative',
222
- marginTop: -3,
223
- marginLeft: -3,
224
- backgroundColor:
225
- hoverMode && toolTipVisible
226
- ? $config.CARD_LAYER_5_COLOR + hexadecimalTransparency['20%']
227
- : 'transparent',
228
-
229
- width: 28,
230
- height: 28,
231
- borderRadius: 14,
232
- }}>
233
- <Pressable hitSlop={2} onPress={onPress}>
234
- {children}
235
- </Pressable>
236
- </View>
237
- );
238
- };
239
-
240
- export default InfoBubble;
241
-
242
- const styles = StyleSheet.create({
243
- iconStyleView: {
244
- marginTop: 4,
245
- marginLeft: 4,
246
- },
247
- downsideTriangleIconContainer: {
248
- position: 'absolute',
249
- top: -24,
250
- left: -2,
251
- zIndex: 999,
252
- },
253
- downsideTriangleIcon: {
254
- width: 27,
255
- height: 36,
256
- },
257
- textContainer: {
258
- flex: 1,
259
- flexDirection: 'row',
260
- position: 'absolute',
261
- zIndex: 998,
262
- backgroundColor: $config.CARD_LAYER_3_COLOR,
263
- top: -87,
264
- borderRadius: 12,
265
- shadowColor:
266
- $config.HARD_CODED_BLACK_COLOR + hexadecimalTransparency['10%'],
267
- shadowOffset: {
268
- height: 4,
269
- width: 0,
270
- },
271
- shadowOpacity: 0.2,
272
- elevation: 5,
273
- shadowRadius: 2,
274
- },
275
- textStyle: {
276
- fontFamily: ThemeConfig.FontFamily.sansPro,
277
- fontWeight: '400',
278
- fontSize: ThemeConfig.FontSize.normal,
279
- lineHeight: 24,
280
- textAlign: 'left',
281
- color: $config.FONT_COLOR,
282
- },
283
- backDrop: {
284
- position: 'absolute',
285
- top: 0,
286
- bottom: 0,
287
- left: 0,
288
- right: 0,
289
- backgroundColor: 'transparent',
290
- },
291
- });
@@ -1,87 +0,0 @@
1
- import {
2
- StyleSheet,
3
- Text,
4
- TextInput,
5
- TextInputProps,
6
- View,
7
- Platform,
8
- TextStyle,
9
- } from 'react-native';
10
- import React from 'react';
11
- import Spacer from './Spacer';
12
- import ThemeConfig from '../theme';
13
-
14
- interface InputProps extends TextInputProps {
15
- helpText?: string;
16
- label?: string;
17
- labelStyle?: TextStyle;
18
- autoFocus?: boolean;
19
- }
20
- const Input = (props: InputProps) => {
21
- const {style, labelStyle, helpText, label, autoFocus, ...otherProps} = props;
22
- const [isFocussed, setIsFocussed] = React.useState(() =>
23
- autoFocus ? true : false,
24
- );
25
- return (
26
- <>
27
- {label ? (
28
- <>
29
- <Text style={[styles.label, labelStyle]}>{label}</Text>
30
- <Spacer size={8} />
31
- </>
32
- ) : (
33
- <></>
34
- )}
35
-
36
- <TextInput
37
- style={[
38
- styles.input,
39
- style,
40
- // {borderColor: isFocussed ? $config.FONT_COLOR : '#666666'},
41
- ]}
42
- placeholderTextColor={
43
- $config.FONT_COLOR + ThemeConfig.EmphasisPlus.disabled
44
- }
45
- autoCorrect={false}
46
- // autoFocus
47
- {...otherProps}
48
- // onFocus={() => setIsFocussed(true)}
49
- // onBlur={() => setIsFocussed(false)}
50
- />
51
- {/* {helpText && <Text style={styles.helpText}>{props.helpText}</Text>} */}
52
- </>
53
- );
54
- };
55
-
56
- export default Input;
57
-
58
- const styles = StyleSheet.create({
59
- input: {
60
- // height: 60, //causes text cut off in android
61
- width: '100%',
62
- borderWidth: 1,
63
- paddingVertical: 21,
64
- paddingHorizontal: 16,
65
- borderColor: $config.INPUT_FIELD_BORDER_COLOR,
66
- color: $config.FONT_COLOR,
67
- backgroundColor: $config.INPUT_FIELD_BACKGROUND_COLOR,
68
- fontFamily: ThemeConfig.FontFamily.sansPro,
69
- fontSize: ThemeConfig.FontSize.medium,
70
- borderRadius: ThemeConfig.BorderRadius.medium,
71
- ...Platform.select({
72
- web: {
73
- outlineStyle: 'none',
74
- },
75
- }),
76
- },
77
- label: {
78
- fontWeight: '600',
79
- fontSize: ThemeConfig.FontSize.medium,
80
- color: $config.FONT_COLOR + ThemeConfig.EmphasisPlus.medium,
81
- fontFamily: ThemeConfig.FontFamily.sansPro,
82
- },
83
- helpText: {
84
- color: $config.FONT_COLOR,
85
- fontFamily: ThemeConfig.FontFamily.sansPro,
86
- },
87
- });
@@ -1,166 +0,0 @@
1
- import {StyleSheet, Text, View} from 'react-native';
2
- import isSDKCheck from '../utils/isSDK';
3
- import platform from '../subComponents/Platform';
4
- import {useMeetingInfo} from '../components/meeting-info/useMeetingInfo';
5
- import {
6
- SHARE_LINK_CONTENT_TYPE,
7
- useShareLink,
8
- } from '../components/useShareLink';
9
- import Spacer from './Spacer';
10
-
11
- import React from 'react';
12
- import IconButton from './IconButton';
13
-
14
- const InviteInfo = () => {
15
- const meetingUrlText = 'Meeting Link';
16
- const meetingIdText = 'Meeting ID';
17
- const hostIdText = 'Host ID';
18
- const attendeeUrlLabel = 'Attendee Link';
19
- const attendeeIdLabel = 'Attendee ID';
20
- const hostUrlLabel = 'Host Link';
21
- const pstnLabel = 'PSTN';
22
- const pstnNumberLabel = 'Number';
23
- const pinLabel = 'Pin';
24
- const urlWeb = {wordBreak: 'break-all'};
25
-
26
- const {copyShareLinkToClipboard, getShareLink} = useShareLink();
27
- const {
28
- data: {isSeparateHostLink},
29
- } = useMeetingInfo();
30
-
31
- const isSDK = isSDKCheck();
32
- const isWeb = $config.FRONTEND_ENDPOINT || (platform === 'web' && !isSDK);
33
- const getAttendeeLabel = () => (isWeb ? attendeeUrlLabel : attendeeIdLabel);
34
- const getHostLabel = () => {
35
- if (isSeparateHostLink) {
36
- if (isWeb) {
37
- return hostUrlLabel;
38
- }
39
- return hostIdText;
40
- } else {
41
- if (isWeb) {
42
- return meetingUrlText;
43
- }
44
- return meetingIdText;
45
- }
46
- };
47
- return (
48
- <>
49
- {isSeparateHostLink ? (
50
- <>
51
- <Text style={style.urlTitle}>{getAttendeeLabel()}</Text>
52
- <View style={style.urlContainer}>
53
- <View style={{width: '90%'}}>
54
- <View style={style.urlHolder}>
55
- <Text
56
- numberOfLines={1}
57
- ellipsizeMode="tail"
58
- style={[style.url, isWeb ? urlWeb : {opacity: 1}]}>
59
- {getShareLink(SHARE_LINK_CONTENT_TYPE.ATTENDEE)}
60
- </Text>
61
- </View>
62
- </View>
63
- <View
64
- style={{
65
- marginLeft: 'auto',
66
- flexDirection: 'row',
67
- alignSelf: 'center',
68
- }}>
69
- <IconButton
70
- iconProps={{
71
- name: 'clipboard',
72
- }}
73
- onPress={() =>
74
- copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.ATTENDEE)
75
- }
76
- />
77
- {/* </View> */}
78
- </View>
79
- </View>
80
- <Text style={style.helpText}>
81
- Copy the invite and share it with attendees you want to invite.
82
- </Text>
83
- <Spacer size={20} />
84
- </>
85
- ) : (
86
- <></>
87
- )}
88
- <>
89
- <Text style={style.urlTitle}>{getHostLabel()}</Text>
90
- <View style={style.urlContainer}>
91
- <View style={{width: '90%'}}>
92
- <View style={style.urlHolder}>
93
- <Text
94
- numberOfLines={1}
95
- ellipsizeMode="tail"
96
- style={[style.url, isWeb ? urlWeb : {opacity: 1}]}>
97
- {getShareLink(SHARE_LINK_CONTENT_TYPE.HOST)}
98
- </Text>
99
- </View>
100
- </View>
101
-
102
- <View
103
- style={{
104
- marginLeft: 'auto',
105
- flexDirection: 'row',
106
- alignSelf: 'center',
107
- }}>
108
- <IconButton
109
- iconProps={{
110
- name: 'clipboard',
111
- tintColor: $config.PRIMARY_ACTION_BRAND_COLOR,
112
- }}
113
- onPress={() =>
114
- copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.HOST)
115
- }
116
- />
117
- </View>
118
- </View>
119
- <Text style={style.helpText}>
120
- Copy the invite and share it with other co-hosts you want to invite
121
- </Text>
122
- </>
123
- </>
124
- );
125
- };
126
-
127
- export default InviteInfo;
128
-
129
- const style = StyleSheet.create({
130
- urlContainer: {
131
- flexDirection: 'row',
132
- alignItems: 'center',
133
- justifyContent: 'space-between',
134
- backgroundColor: '#F2F2F2',
135
- paddingVertical: 22,
136
- paddingHorizontal: 20,
137
- borderRadius: 8,
138
- },
139
- urlTitle: {
140
- color: $config.FONT_COLOR,
141
- fontSize: 18,
142
- fontWeight: '600',
143
- fontFamily: 'Source Sans Pro',
144
- textAlign: 'left',
145
- marginBottom: 8,
146
- },
147
- urlHolder: {
148
- width: '100%',
149
- flexDirection: 'row',
150
- alignItems: 'center',
151
- minHeight: 30,
152
- },
153
- helpText: {
154
- color: '#CCCCCC',
155
- marginTop: 10,
156
- fontSize: 14,
157
- fontWeight: '400',
158
- fontFamily: 'Source Sans Pro',
159
- },
160
- url: {
161
- color: $config.FONT_COLOR,
162
- fontSize: 14,
163
- fontWeight: '600',
164
- fontFamily: 'Source Sans Pro',
165
- },
166
- });
@@ -1,28 +0,0 @@
1
- import {StyleSheet, Text, TouchableOpacity} from 'react-native';
2
- import React from 'react';
3
- import ThemeConfig from '../theme';
4
-
5
- interface LinkButtonProps {
6
- onPress: () => void;
7
- text: string;
8
- }
9
-
10
- const LinkButton = ({onPress, text}: LinkButtonProps) => {
11
- return (
12
- <TouchableOpacity onPress={onPress}>
13
- <Text style={styles.text}> {text} </Text>
14
- </TouchableOpacity>
15
- );
16
- };
17
-
18
- export default LinkButton;
19
-
20
- const styles = StyleSheet.create({
21
- text: {
22
- color: $config.PRIMARY_ACTION_BRAND_COLOR,
23
- fontWeight: '600',
24
- fontFamily: ThemeConfig.FontFamily.sansPro,
25
- fontSize: ThemeConfig.FontSize.normal,
26
- lineHeight: ThemeConfig.FontSize.normal,
27
- },
28
- });
@@ -1,61 +0,0 @@
1
- import {IconsInterface} from '../atoms/CustomIcon';
2
- import ImageIcon from './ImageIcon';
3
- import React from 'react';
4
- import {
5
- ImageStyle,
6
- TextStyle,
7
- TouchableOpacity,
8
- ViewStyle,
9
- StyleSheet,
10
- Text,
11
- View,
12
- } from 'react-native';
13
-
14
- interface OutlineButtonProps {
15
- onPress: () => void;
16
- text: string;
17
- containerStyle?: ViewStyle;
18
- iconName?: keyof IconsInterface;
19
- iconStyle?: ImageStyle;
20
- textStyle?: TextStyle;
21
- }
22
-
23
- const OutlineButton = (props: OutlineButtonProps) => {
24
- return (
25
- <TouchableOpacity
26
- onPress={props.onPress}
27
- style={[styles.containerStyle, props?.containerStyle]}>
28
- {props?.iconName ? (
29
- <View style={styles.iconStyleView}>
30
- <ImageIcon iconSize={20} iconType="plain" name={props.iconName} />
31
- </View>
32
- ) : (
33
- <></>
34
- )}
35
- <Text style={[styles.textStyle, props?.textStyle]}>{props.text}</Text>
36
- </TouchableOpacity>
37
- );
38
- };
39
-
40
- export default OutlineButton;
41
- const styles = StyleSheet.create({
42
- containerStyle: {
43
- flexDirection: 'row',
44
- justifyContent: 'center',
45
- alignItems: 'center',
46
- marginTop: 20,
47
- borderWidth: 1,
48
- borderColor: '#099DFD',
49
- borderRadius: 4,
50
- },
51
- iconStyleView: {
52
- margin: 8,
53
- alignSelf: 'center',
54
- },
55
- textStyle: {
56
- paddingVertical: 12,
57
- paddingRight: 12,
58
- color: '#099DFD',
59
- textAlign: 'left',
60
- },
61
- });
@@ -1,73 +0,0 @@
1
- import React, {useContext} from 'react';
2
- import {StyleSheet, Text, View} from 'react-native';
3
- import IconButton, {IconButtonProps} from '../atoms/IconButton';
4
- import hexadecimalTransparency from '../utils/hexadecimalTransparency';
5
- import {numFormatter} from '../utils/index';
6
- import ChatContext from '../components/ChatContext';
7
- import {useLiveStreamDataContext} from '../components/contexts/LiveStreamDataContext';
8
- import {useVideoMeetingData} from '../components/contexts/VideoMeetingDataContext';
9
- import {isMobileUA} from '../utils/common';
10
-
11
- const ParticipantsCount = () => {
12
- const {onlineUsersCount} = useContext(ChatContext);
13
- const {audienceUids, hostUids} = useLiveStreamDataContext();
14
- const {attendeeUids, hostUids: hostUidsVM} = useVideoMeetingData();
15
- return (
16
- <IconButton
17
- placement="right"
18
- isClickable={isMobileUA() ? true : false}
19
- toolTipMessage={
20
- $config.EVENT_MODE
21
- ? `Host: ${
22
- $config.EVENT_MODE
23
- ? hostUids?.length || 0
24
- : hostUidsVM.length || 0
25
- }\n${$config.EVENT_MODE ? 'Audience: ' : 'Attendee: '}${
26
- $config.EVENT_MODE
27
- ? audienceUids.length || 0
28
- : attendeeUids?.length || 0
29
- }`
30
- : ''
31
- }
32
- containerStyle={styles.participantCountView}
33
- disabled={true}
34
- iconProps={{
35
- name: 'people',
36
- iconType: 'plain',
37
- iconSize: 20,
38
- tintColor:
39
- $config.SECONDARY_ACTION_COLOR + hexadecimalTransparency['50%'],
40
- }}
41
- btnTextProps={{
42
- text: numFormatter(onlineUsersCount),
43
- textColor:
44
- $config.SECONDARY_ACTION_COLOR + hexadecimalTransparency['50%'],
45
- textStyle: {
46
- fontWeight: '600',
47
- fontSize: 12,
48
- lineHeight: 12,
49
- marginTop: 0,
50
- marginLeft: 4,
51
- },
52
- }}
53
- />
54
- );
55
- };
56
-
57
- export default ParticipantsCount;
58
-
59
- const styles = StyleSheet.create({
60
- participantCountView: {
61
- flexDirection: 'row',
62
- padding: 12,
63
- paddingVertical: isMobileUA ? 5 : 12,
64
- backgroundColor: $config.ICON_BG_COLOR,
65
- borderRadius: 25,
66
- borderWidth: 1,
67
- borderColor: $config.CARD_LAYER_3_COLOR,
68
- shadowColor: $config.HARD_CODED_BLACK_COLOR,
69
- shadowOffset: {width: 0, height: 4},
70
- shadowOpacity: 0.1,
71
- shadowRadius: 20,
72
- },
73
- });