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
@@ -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
- });