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,479 +0,0 @@
1
- import {StyleSheet, Text, TouchableOpacity, View} from 'react-native';
2
- import React, {useContext} from 'react';
3
- import ImageIcon from '../../atoms/ImageIcon';
4
- import LocalAudioMute, {
5
- LocalAudioMuteProps,
6
- } from '../../subComponents/LocalAudioMute';
7
- import LocalVideoMute, {
8
- LocalVideoMuteProps,
9
- } from '../../subComponents/LocalVideoMute';
10
- import LocalEndcall, {
11
- LocalEndcallProps,
12
- } from '../../subComponents/LocalEndCall';
13
- import CopyJoinInfo from '../../subComponents/CopyJoinInfo';
14
- import LocalSwitchCamera from '../../subComponents/LocalSwitchCamera';
15
- import Recording from '../../subComponents/Recording';
16
- import ChatContext from '../../components/ChatContext';
17
- import {numFormatter} from '../../utils';
18
- import IconButton from '../../atoms/IconButton';
19
- import {useLayout} from '../../utils/useLayout';
20
- import useLayoutsData from '../../pages/video-call/useLayoutsData';
21
- import {useChangeDefaultLayout} from '../../pages/video-call/DefaultLayouts';
22
- import {PropsContext, ToggleState} from '../../../agora-rn-uikit';
23
- import {ClientRole} from '../../../agora-rn-uikit';
24
- import {useMeetingInfo} from '../../components/meeting-info/useMeetingInfo';
25
- import LiveStreamControls from '../../components/livestream/views/LiveStreamControls';
26
- import LiveStreamContext, {RaiseHandValue} from '../../components/livestream';
27
- import {
28
- ChatIconButton,
29
- ParticipantsCountView,
30
- ParticipantsIconButton,
31
- } from '../../../src/components/Navbar';
32
- import {useChatNotification} from '../../components/chat-notification/useChatNotification';
33
- import {SidePanelType} from '../../subComponents/SidePanelEnum';
34
- import {useSidePanel} from '../../utils/useSidePanel';
35
- import Settings from '../../components/Settings';
36
- import {useLocalUserInfo} from 'customization-api';
37
- import LayoutIconButton from '../../subComponents/LayoutIconButton';
38
-
39
- //Icon for expanding Action Sheet
40
- interface ShowMoreIconProps {
41
- isExpanded: boolean;
42
- showNotification: boolean;
43
- onPress: () => void;
44
- }
45
- const ShowMoreIcon = (props: ShowMoreIconProps) => {
46
- const {isExpanded, onPress, showNotification} = props;
47
- return (
48
- <View style={styles.iconWithText}>
49
- <View style={styles.iconContainer}>
50
- <TouchableOpacity onPress={onPress}>
51
- <ImageIcon
52
- name={isExpanded ? 'arrow-down' : 'more-menu'}
53
- tintColor={$config.PRIMARY_ACTION_BRAND_COLOR}
54
- />
55
- </TouchableOpacity>
56
- {showNotification && <View style={styles.notification} />}
57
- </View>
58
- </View>
59
- );
60
- };
61
-
62
- //Icon for Live Streaming Controls
63
- interface LiveStreamIconProps {
64
- isHandRaised: boolean;
65
- showLabel?: boolean;
66
- }
67
- const LiveStreamIcon = (props: LiveStreamIconProps) => {
68
- const {isHandRaised, showLabel = $config.ICON_TEXT} = props;
69
- return (
70
- <View style={styles.iconWithText}>
71
- <View style={styles.iconContainer}>
72
- <LiveStreamControls
73
- showControls={true}
74
- isDesktop={false}
75
- showLabel={false}
76
- />
77
- </View>
78
- {showLabel && (
79
- <Text style={styles.iconText}>
80
- {isHandRaised ? 'Lower\nHand' : 'Raise\nHand'}
81
- </Text>
82
- )}
83
- </View>
84
- );
85
- };
86
-
87
- //Icon for Chat
88
- interface ChatIconProps {
89
- showLabel?: boolean;
90
- }
91
- const ChatIcon = (props: ChatIconProps) => {
92
- const {showLabel = $config.ICON_TEXT} = props;
93
- return (
94
- <View style={styles.iconWithText}>
95
- <View style={styles.iconContainer}>
96
- <ChatIconButton isOnActionSheet={true} />
97
- </View>
98
- {showLabel && <Text style={styles.iconText}>Chat</Text>}
99
- </View>
100
- );
101
- };
102
-
103
- //Icon for Participants
104
- interface ParticipantsIconProps {
105
- showNotification: boolean;
106
- }
107
- const ParticipantsIcon = (props: ParticipantsIconProps) => {
108
- const {showNotification} = props;
109
- return (
110
- <View style={styles.iconWithText}>
111
- <View style={styles.iconContainer}>
112
- <ParticipantsIconButton isOnActionSheet={true} />
113
- </View>
114
- {$config.ICON_TEXT && <Text style={styles.iconText}>People</Text>}
115
- {/* {showNotification && <View style={styles.notification} />} */}
116
- </View>
117
- );
118
- };
119
-
120
- //Icon for Recording
121
- interface RecordingIconProps {
122
- showLabel?: boolean;
123
- }
124
- const RecordingIcon = (props: RecordingIconProps) => {
125
- const {showLabel = $config.ICON_TEXT} = props;
126
- return (
127
- <View style={styles.iconWithText}>
128
- <View style={styles.iconContainer}>
129
- <Recording showLabel={false} isOnActionSheet={true} />
130
- </View>
131
- {showLabel && <Text style={styles.iconText}>Record</Text>}
132
- </View>
133
- );
134
- };
135
-
136
- interface SwitchCameraIconProps {
137
- disabled: boolean;
138
- }
139
- const SwitchCameraIcon = (props: SwitchCameraIconProps) => {
140
- const {disabled} = props;
141
- return (
142
- <View style={styles.iconWithText}>
143
- <View style={styles.iconContainer}>
144
- <LocalSwitchCamera showLabel={false} disabled={disabled} />
145
- </View>
146
- {$config.ICON_TEXT && (
147
- <View>
148
- <Text
149
- style={[
150
- styles.iconText,
151
- {
152
- color: disabled ? $config.SEMANTIC_NEUTRAL : $config.FONT_COLOR,
153
- },
154
- ]}>
155
- Switch
156
- </Text>
157
- <Text
158
- style={[
159
- styles.iconText,
160
- {
161
- color: disabled ? $config.SEMANTIC_NEUTRAL : $config.FONT_COLOR,
162
- marginTop: 0,
163
- },
164
- ]}>
165
- Camera
166
- </Text>
167
- </View>
168
- )}
169
- </View>
170
- );
171
- };
172
-
173
- interface SettingsIconProps {
174
- onPress: () => void;
175
- }
176
- const SettingsIcon = (props: SettingsIconProps) => {
177
- const {onPress} = props;
178
- return (
179
- <View style={styles.iconWithText}>
180
- <TouchableOpacity style={styles.iconContainer} onPress={onPress}>
181
- <ImageIcon
182
- name={'settings'}
183
- tintColor={$config.SECONDARY_ACTION_COLOR}
184
- />
185
- </TouchableOpacity>
186
- {$config.ICON_TEXT && <Text style={styles.iconText}>Settings</Text>}
187
- </View>
188
- );
189
- };
190
-
191
- const ShareIcon = () => {
192
- return (
193
- <View style={styles.iconWithText}>
194
- <View style={styles.iconContainer}>
195
- <CopyJoinInfo showLabel={false} isOnActionSheet={true} />
196
- </View>
197
- {$config.ICON_TEXT && <Text style={styles.iconText}>Invite</Text>}
198
- </View>
199
- );
200
- };
201
-
202
- interface AudioIconProps {
203
- isMobileView: boolean;
204
- isOnActionSheet: boolean;
205
- showLabel: boolean;
206
- disabled: boolean;
207
- }
208
- const AudioIcon = (props: AudioIconProps) => {
209
- return (
210
- <View style={styles.iconWithText}>
211
- <View style={styles.iconContainer}>
212
- <LocalAudioMute {...props} />
213
- </View>
214
- </View>
215
- );
216
- };
217
-
218
- interface CamIconProps {
219
- isMobileView: boolean;
220
- isOnActionSheet: boolean;
221
- showLabel: boolean;
222
- disabled: boolean;
223
- }
224
- const CamIcon = (props: CamIconProps) => {
225
- return (
226
- <View style={styles.iconWithText}>
227
- <View style={styles.iconContainer}>
228
- <LocalVideoMute {...props} />
229
- </View>
230
- </View>
231
- );
232
- };
233
-
234
- interface EndCallIconProps {
235
- showLabel: boolean;
236
- isOnActionSheet: boolean;
237
- }
238
- const EndCallIcon = (props: EndCallIconProps) => {
239
- return (
240
- <View style={styles.iconWithText}>
241
- <View
242
- style={[
243
- styles.iconContainer,
244
- {backgroundColor: $config.SEMANTIC_ERROR},
245
- ]}>
246
- <LocalEndcall {...props} />
247
- </View>
248
- </View>
249
- );
250
- };
251
-
252
- interface LayoutIconProps {
253
- showLabel?: boolean;
254
- }
255
- const LayoutIcon = (props: LayoutIconProps) => {
256
- const {showLabel = $config.ICON_TEXT} = props;
257
- return (
258
- <View style={styles.iconWithText}>
259
- <View style={styles.iconContainer}>
260
- <LayoutIconButton showLabel={false} />
261
- </View>
262
- {showLabel && <Text style={styles.iconText}>Layout</Text>}
263
- </View>
264
- );
265
- };
266
-
267
- type ActionSheetComponentsProps = [
268
- (props: AudioIconProps) => JSX.Element,
269
- (props: CamIconProps) => JSX.Element,
270
- (props: EndCallIconProps) => JSX.Element,
271
- (props: ShowMoreIconProps) => JSX.Element,
272
- (props: ChatIconProps) => JSX.Element,
273
- (props: ParticipantsIconProps) => JSX.Element,
274
- (props) => JSX.Element,
275
- (props: SwitchCameraIconProps) => JSX.Element,
276
- (props: LayoutIconProps) => JSX.Element,
277
- (props: SettingsIconProps) => JSX.Element,
278
- (props) => JSX.Element,
279
- ];
280
-
281
- export const ActionSheetComponentsArray: ActionSheetComponentsProps = [
282
- AudioIcon,
283
- CamIcon,
284
- EndCallIcon,
285
- ShowMoreIcon,
286
- ChatIcon,
287
- ParticipantsIcon,
288
- RecordingIcon,
289
- SwitchCameraIcon,
290
- LayoutIcon,
291
- SettingsIcon,
292
- ShareIcon,
293
- ];
294
-
295
- const ActionSheetContent = (props) => {
296
- const {handleSheetChanges, isExpanded} = props;
297
- const {onlineUsersCount, localUid} = useContext(ChatContext);
298
- const layouts = useLayoutsData();
299
- const {currentLayout} = useLayout();
300
- const changeLayout = useChangeDefaultLayout();
301
- const {rtcProps} = useContext(PropsContext);
302
- const {sidePanel, setSidePanel} = useSidePanel();
303
- const {
304
- data: {isHost},
305
- } = useMeetingInfo();
306
- const {isPendingRequestToReview, raiseHandList} =
307
- useContext(LiveStreamContext);
308
- const {totalUnreadCount} = useChatNotification();
309
- const layout = layouts.findIndex((item) => item.name === currentLayout);
310
- const isLiveStream = $config.EVENT_MODE;
311
- const isAudience = rtcProps?.role == ClientRole.Audience;
312
- const isBroadCasting = rtcProps?.role == ClientRole.Broadcaster;
313
- const isHandRaised = raiseHandList[localUid]?.raised === RaiseHandValue.TRUE;
314
-
315
- const handleLayoutChange = () => {
316
- changeLayout();
317
- };
318
-
319
- const isAudioRoom = $config.AUDIO_ROOM;
320
- const isVoiceChatHost = !$config.EVENT_MODE && $config.AUDIO_ROOM && isHost;
321
- const isVoiceChatAudience =
322
- !$config.EVENT_MODE && $config.AUDIO_ROOM && isAudience;
323
- const isAudioCastHost = $config.EVENT_MODE && $config.AUDIO_ROOM && isHost;
324
- const isAudioCastAudience =
325
- $config.EVENT_MODE && $config.AUDIO_ROOM && isAudience;
326
-
327
- const isAudioVideoControlsDisabled =
328
- isAudience && $config.EVENT_MODE && !$config.RAISE_HAND;
329
- const isVideoDisabled = useLocalUserInfo().video === ToggleState.disabled;
330
- return (
331
- <View>
332
- {/* Row Always Visible */}
333
- <View
334
- style={[
335
- styles.row,
336
- {borderBottomWidth: 1, paddingTop: 4, justifyContent: 'center'},
337
- ]}>
338
- {isAudioVideoControlsDisabled ? null : (
339
- <AudioIcon
340
- isMobileView={true}
341
- isOnActionSheet={true}
342
- showLabel={false}
343
- disabled={isLiveStream && isAudience && !isBroadCasting}
344
- />
345
- )}
346
-
347
- {/*For AudioCast Host:Chat ,Attendee:Raise Hand
348
- For VoiceChat Host:Chat, Attendee:Chat
349
- */}
350
-
351
- {(isAudioCastHost || isVoiceChatHost || isVoiceChatAudience) && (
352
- <ChatIcon showLabel={false} />
353
- )}
354
- {(isAudioCastAudience && isLiveStream && isAudience) ||
355
- (isBroadCasting && !isHost) ? (
356
- $config.RAISE_HAND && isAudioRoom ? (
357
- <LiveStreamIcon isHandRaised={isHandRaised} showLabel={false} />
358
- ) : null
359
- ) : null}
360
-
361
- {!isAudioRoom &&
362
- (isAudioVideoControlsDisabled ? null : (
363
- <CamIcon
364
- isOnActionSheet={true}
365
- isMobileView={true}
366
- showLabel={false}
367
- disabled={isLiveStream && isAudience && !isBroadCasting}
368
- />
369
- ))}
370
-
371
- <EndCallIcon showLabel={false} isOnActionSheet={true} />
372
-
373
- <ShowMoreIcon
374
- isExpanded={isExpanded}
375
- showNotification={
376
- (!isExpanded && totalUnreadCount !== 0) ||
377
- ($config.EVENT_MODE && isPendingRequestToReview)
378
- }
379
- onPress={() => handleSheetChanges(isExpanded ? 0 : 1)}
380
- />
381
- </View>
382
-
383
- {/* Rest Of Controls */}
384
- <View style={styles.row}>
385
- {/**
386
- * In event mode when raise hand feature is active
387
- * and audience is promoted to host, the audience can also
388
- * demote himself
389
- */}
390
- {(isLiveStream && isAudience) || (isBroadCasting && !isHost) ? (
391
- $config.RAISE_HAND && !isAudioRoom ? (
392
- <LiveStreamIcon isHandRaised={isHandRaised} />
393
- ) : null
394
- ) : null}
395
-
396
- {/* Layout view */}
397
- <LayoutIcon />
398
-
399
- {/* chat */}
400
- {!(isAudioCastHost || isVoiceChatHost || isVoiceChatAudience) && (
401
- <ChatIcon />
402
- )}
403
- {/* participants */}
404
- <ParticipantsIcon
405
- showNotification={$config.EVENT_MODE && isPendingRequestToReview}
406
- />
407
- {/* record */}
408
- {isHost && $config.CLOUD_RECORDING ? <RecordingIcon /> : null}
409
-
410
- {/* switch camera */}
411
- {!isAudioRoom &&
412
- (isAudioVideoControlsDisabled ? null : (
413
- <SwitchCameraIcon
414
- disabled={
415
- (isLiveStream && isAudience && !isBroadCasting) ||
416
- isVideoDisabled
417
- }
418
- />
419
- ))}
420
-
421
- {/* settings */}
422
- <SettingsIcon
423
- onPress={() => {
424
- setSidePanel(SidePanelType.Settings);
425
- }}
426
- />
427
-
428
- {/* invite */}
429
- <ShareIcon />
430
- </View>
431
- </View>
432
- );
433
- };
434
-
435
- export default ActionSheetContent;
436
-
437
- const styles = StyleSheet.create({
438
- row: {
439
- flexDirection: 'row',
440
- justifyContent: 'flex-start',
441
- alignItems: 'flex-start',
442
- paddingTop: 24,
443
- borderColor: $config.CARD_LAYER_3_COLOR,
444
- flexWrap: 'wrap',
445
- },
446
-
447
- iconContainer: {
448
- backgroundColor: $config.CARD_LAYER_2_COLOR,
449
- width: 52,
450
- height: 52,
451
- borderRadius: 26,
452
- justifyContent: 'center',
453
- alignItems: 'center',
454
- },
455
-
456
- iconWithText: {
457
- justifyContent: 'center',
458
- alignItems: 'center',
459
- flexBasis: '25%',
460
- paddingBottom: 24,
461
- },
462
- iconText: {
463
- color: $config.FONT_COLOR,
464
- marginTop: 8,
465
- fontSize: 12,
466
- fontWeight: '400',
467
- fontFamily: 'Source Sans Pro',
468
- textAlign: 'center',
469
- },
470
- notification: {
471
- position: 'absolute',
472
- width: 12,
473
- height: 12,
474
- backgroundColor: $config.SEMANTIC_ERROR,
475
- borderRadius: 6,
476
- top: -1,
477
- right: 5,
478
- },
479
- });
@@ -1,38 +0,0 @@
1
- import {StyleSheet, View} from 'react-native';
2
- import React from 'react';
3
-
4
- import {SidePanelType} from '../../subComponents/SidePanelEnum';
5
-
6
- import {ChatHeader, PeopleHeader, SettingsHeader} from './SidePanelHeader';
7
-
8
- const ActionSheetHandle = (props: {sidePanel: SidePanelType}) => {
9
- const Header = null;
10
-
11
- const {sidePanel} = props;
12
-
13
- return (
14
- <View style={styles.container}>
15
- <View style={styles.handleIndicatorStyle} />
16
-
17
- {sidePanel === SidePanelType.Participants && <PeopleHeader />}
18
- {sidePanel === SidePanelType.Chat && <ChatHeader />}
19
- {sidePanel === SidePanelType.Settings && <SettingsHeader />}
20
- </View>
21
- );
22
- };
23
-
24
- export default ActionSheetHandle;
25
-
26
- const styles = StyleSheet.create({
27
- container: {
28
- paddingVertical: 0,
29
- },
30
- handleIndicatorStyle: {
31
- backgroundColor: $config.SEMANTIC_NEUTRAL,
32
- width: 40,
33
- height: 4,
34
- alignSelf: 'center',
35
- borderRadius: 4,
36
- marginTop: 12,
37
- },
38
- });
@@ -1,138 +0,0 @@
1
-
2
- :root {
3
- --rsbs-backdrop-bg: rgba(0, 0, 0, 0.6);
4
- --rsbs-bg: #fff;
5
- --rsbs-handle-bg: hsla(0, 0%, 0%, 0.14);
6
- --rsbs-max-w: auto;
7
- --rsbs-ml: env(safe-area-inset-left);
8
- --rsbs-mr: env(safe-area-inset-right);
9
- --rsbs-overlay-rounded: 16px;
10
- --handleColor: $config.PRIMARY_ACTION_BRAND_COLOR;
11
- }
12
-
13
-
14
- [data-rsbs-overlay] {
15
- border-top-left-radius: var(--rsbs-overlay-rounded);
16
- border-top-right-radius: var(--rsbs-overlay-rounded);
17
- display: flex;
18
- background: var(--sheet-background); /* var(--rsbs-bg);*/
19
- flex-direction: column;
20
- height: var(--rsbs-overlay-h);
21
- transform: translate3d(0, var(--rsbs-overlay-translate-y), 0);
22
- will-change: height;
23
- }
24
-
25
- [data-rsbs-overlay]:focus {
26
- outline: none;
27
- }
28
- [data-rsbs-is-blocking="false"] [data-rsbs-overlay] {
29
- box-shadow: 0 -5px 60px 0 rgba(38, 89, 115, 0.11),
30
- 0 -1px 0 rgba(38, 89, 115, 0.05);
31
- }
32
- [data-rsbs-overlay],
33
- [data-rsbs-root]:after {
34
- max-width: var(--rsbs-max-w);
35
- margin-left: var(--rsbs-ml);
36
- margin-right: var(--rsbs-mr);
37
- }
38
- [data-rsbs-overlay],
39
- [data-rsbs-backdrop],
40
- [data-rsbs-root]:after {
41
- z-index: 3;
42
- overscroll-behavior: none;
43
- touch-action: none;
44
- position: fixed;
45
- right: 0;
46
- bottom: 0;
47
- left: 0;
48
- user-select: none;
49
- -webkit-tap-highlight-color: transparent;
50
- -webkit-touch-callout: none;
51
- }
52
- [data-rsbs-backdrop] {
53
- top: -60px;
54
- bottom: -60px;
55
- background-color: var(--rsbs-backdrop-bg);
56
- will-change: opacity;
57
- cursor: pointer;
58
- opacity: 1;
59
- }
60
- [data-rsbs-is-dismissable="false"] [data-rsbs-backdrop] {
61
- cursor: ns-resize;
62
- }
63
-
64
- [data-rsbs-root]:after {
65
- content: "";
66
- pointer-events: none;
67
- background: var(--rsbs-bg);
68
- height: 1px;
69
- transform-origin: bottom;
70
- transform: scale3d(1, var(--rsbs-antigap-scale-y), 1);
71
- will-change: transform;
72
- }
73
- [data-rsbs-footer],
74
- [data-rsbs-header] {
75
- flex-shrink: 0;
76
- cursor: ns-resize;
77
-
78
- }
79
- [data-rsbs-header] {
80
- text-align: center;
81
- user-select: none;
82
- box-shadow: 0 1px 0
83
- rgba(46, 59, 66, calc(var(--rsbs-content-opacity) * 0.125));
84
- z-index: 1;
85
- /* padding-top: calc(20px + env(safe-area-inset-top));
86
- padding-bottom: 16px; */
87
-
88
- }
89
- [data-rsbs-header]:before {
90
- /* position: absolute;
91
- content: "";
92
- display: block;
93
- width: 36px;
94
- height: 4px;
95
- top: calc(8px + env(safe-area-inset-top));
96
- left: 50%;
97
- transform: translateX(-50%);
98
- border-radius: 2px; */
99
- background-color: var(--handle-background); /*var(--rsbs-handle-bg); */
100
- }
101
- @media (min-resolution: 2dppx) {
102
- [data-rsbs-header]:before {
103
- transform: translateX(-50%) scaleY(0.75);
104
- }
105
- }
106
- [data-rsbs-has-header="false"] [data-rsbs-header] {
107
- box-shadow: none;
108
- padding-top: calc(12px + env(safe-area-inset-top));
109
- }
110
-
111
- [data-rsbs-scroll] {
112
- flex-shrink: 1;
113
- flex-grow: 1;
114
- -webkit-tap-highlight-color: revert;
115
- -webkit-touch-callout: revert;
116
- -webkit-user-select: auto;
117
- -ms-user-select: auto;
118
- user-select: auto;
119
- overflow: hidden;
120
- overscroll-behavior: contain;
121
- -webkit-overflow-scrolling: touch;
122
- }
123
-
124
- [data-rsbs-state="opening"] [data-rsbs-content="true"] {
125
- height:100%;
126
- }
127
-
128
- [data-rsbs-state="open"] [data-rsbs-content="true"] {
129
- height:100%;
130
- }
131
- [data-rsbs-state="dragging"] [data-rsbs-content="true"] {
132
- height:100%;
133
- }
134
- [data-rsbs-state="snapping"] [data-rsbs-content="true"] {
135
- height:100%;
136
- }
137
-
138
-