agora-appbuilder-core 3.0.10 → 3.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4979 -7086
  4. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +0 -4
  5. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +0 -18
  6. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +0 -2
  7. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +26 -30
  8. package/template/agora-rn-uikit/src/Controls/Icons.ts +83 -30
  9. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +6 -6
  10. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +0 -1
  11. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +0 -1
  12. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +0 -1
  13. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +0 -1
  14. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +0 -1
  15. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +0 -2
  16. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +0 -1
  17. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +0 -1
  18. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +0 -1
  19. package/template/agora-rn-uikit/src/Reducer/index.ts +0 -3
  20. package/template/agora-rn-uikit/src/Rtc/Create.tsx +1 -89
  21. package/template/agora-rn-uikit/src/RtcConfigure.tsx +2 -39
  22. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +5 -15
  23. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +9 -15
  24. package/template/agora-rn-uikit/src/index.ts +1 -3
  25. package/template/android/app/build.gradle +0 -1
  26. package/template/android/app/src/main/AndroidManifest.xml +15 -22
  27. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +0 -50
  28. package/template/android/build.gradle +3 -3
  29. package/template/babel.config.js +0 -1
  30. package/template/bridge/rtc/webNg/RtcEngine.ts +17 -110
  31. package/template/customization-api/sub-components.ts +1 -1
  32. package/template/customization-api/typeDefinition.ts +1 -2
  33. package/template/electron/index.html +27 -27
  34. package/template/electron/renderer/index.js +0 -1
  35. package/template/global.d.ts +4 -26
  36. package/template/index.js +0 -4
  37. package/template/index.rsdk.tsx +0 -1
  38. package/template/index.web.js +1 -7
  39. package/template/index.wsdk.tsx +1 -1
  40. package/template/ios/HelloWorld/Info.plist +1 -14
  41. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  42. package/template/metro.config.js +1 -1
  43. package/template/package.json +7 -21
  44. package/template/react-native-toast-message/index.d.ts +43 -43
  45. package/template/react-native-toast-message/src/colors/index.js +2 -3
  46. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  47. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  48. package/template/react-native-toast-message/src/components/error.js +2 -3
  49. package/template/react-native-toast-message/src/components/info.js +2 -3
  50. package/template/react-native-toast-message/src/components/success.js +2 -3
  51. package/template/react-native-toast-message/src/index.js +31 -122
  52. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  53. package/template/react-native-toast-message/src/styles.js +4 -3
  54. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  55. package/template/src/App.tsx +0 -6
  56. package/template/src/AppWrapper.tsx +28 -63
  57. package/template/src/assets/icons.ts +102 -0
  58. package/template/src/atoms/HorizontalRule.tsx +1 -3
  59. package/template/src/atoms/PrimaryButton.tsx +26 -51
  60. package/template/src/atoms/SecondaryButton.tsx +5 -8
  61. package/template/src/atoms/TextInput.tsx +14 -12
  62. package/template/src/components/Chat.tsx +214 -86
  63. package/template/src/components/ChatContext.ts +1 -8
  64. package/template/src/components/ColorConfigure.tsx +1 -1
  65. package/template/src/components/ColorContext.ts +1 -1
  66. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  67. package/template/src/components/Controls.tsx +42 -342
  68. package/template/src/components/DeviceConfigure.tsx +101 -461
  69. package/template/src/components/DeviceContext.tsx +4 -8
  70. package/template/src/components/EventsConfigure.tsx +7 -144
  71. package/template/src/components/GraphQLProvider.tsx +1 -1
  72. package/template/src/components/GridVideo.tsx +44 -59
  73. package/template/src/components/HostControlView.tsx +35 -114
  74. package/template/src/components/Navbar.tsx +398 -216
  75. package/template/src/components/NetworkQualityContext.tsx +20 -20
  76. package/template/src/components/ParticipantsView.tsx +154 -177
  77. package/template/src/components/PinnedVideo.tsx +120 -207
  78. package/template/src/components/Precall.native.tsx +119 -358
  79. package/template/src/components/Precall.tsx +135 -269
  80. package/template/src/components/RTMConfigure.tsx +4 -27
  81. package/template/src/components/Router.electron.ts +0 -1
  82. package/template/src/components/Router.native.ts +0 -1
  83. package/template/src/components/Router.sdk.ts +0 -1
  84. package/template/src/components/Router.ts +0 -1
  85. package/template/src/components/Settings.tsx +95 -26
  86. package/template/src/components/SettingsView.tsx +56 -251
  87. package/template/src/components/Share.tsx +273 -302
  88. package/template/src/components/StorageContext.tsx +3 -30
  89. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  90. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  91. package/template/src/components/common/Error.tsx +6 -20
  92. package/template/src/components/common/Logo.tsx +15 -16
  93. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  94. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  95. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  96. package/template/src/components/livestream/Types.ts +14 -39
  97. package/template/src/components/livestream/index.ts +0 -1
  98. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  99. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  100. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  101. package/template/src/components/participants/MeParticipant.tsx +38 -0
  102. package/template/src/components/participants/ParticipantName.tsx +7 -13
  103. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  104. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  105. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  106. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  107. package/template/src/components/precall/LocalMute.tsx +14 -84
  108. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  109. package/template/src/components/precall/VideoPreview.tsx +7 -163
  110. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  111. package/template/src/components/precall/meetingTitle.tsx +12 -15
  112. package/template/src/components/precall/selectDevice.tsx +21 -1
  113. package/template/src/components/precall/textInput.tsx +4 -32
  114. package/template/src/components/precall/usePreCall.tsx +0 -16
  115. package/template/src/components/styles.ts +21 -42
  116. package/template/src/components/useShareLink.tsx +14 -12
  117. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  118. package/template/src/pages/Authenticate.tsx +15 -5
  119. package/template/src/pages/Create.tsx +165 -293
  120. package/template/src/pages/Join.tsx +67 -93
  121. package/template/src/pages/VideoCall.tsx +64 -89
  122. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  123. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  124. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  125. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  126. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  127. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  128. package/template/src/rtm-events/constants.ts +0 -2
  129. package/template/src/subComponents/ChatBubble.tsx +83 -123
  130. package/template/src/subComponents/ChatContainer.tsx +84 -257
  131. package/template/src/subComponents/ChatInput.tsx +46 -61
  132. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  133. package/template/src/subComponents/Checkbox.tsx +2 -2
  134. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  135. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  136. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  137. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  138. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  139. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  140. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  141. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  142. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  143. package/template/src/subComponents/Logo.tsx +4 -3
  144. package/template/src/subComponents/LogoutButton.tsx +1 -1
  145. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  146. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  147. package/template/src/subComponents/Recording.tsx +29 -28
  148. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  149. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  150. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  151. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  152. package/template/src/subComponents/SelectDevice.tsx +61 -404
  153. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  154. package/template/src/subComponents/ToastConfig.tsx +10 -150
  155. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  156. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  157. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  160. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  161. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  162. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  164. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  165. package/template/src/utils/common.tsx +1 -155
  166. package/template/src/utils/index.tsx +0 -19
  167. package/template/src/utils/isMobileOrTablet.ts +2 -7
  168. package/template/src/utils/useButtonTemplate.tsx +0 -1
  169. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  170. package/template/web/index.html +0 -5
  171. package/template/webpack.commons.js +8 -13
  172. package/template/webpack.web.config.js +0 -1
  173. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  174. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  175. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  176. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  177. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  178. package/template/android/app/src/main/res/values/colors.xml +0 -7
  179. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  180. package/template/react-native.config.js +0 -7
  181. package/template/src/assets/font-styles.css +0 -329
  182. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  183. package/template/src/assets/fonts/icomoon.ttf +0 -0
  184. package/template/src/assets/permission.png +0 -0
  185. package/template/src/assets/selection.json +0 -1
  186. package/template/src/atoms/ActionMenu.tsx +0 -236
  187. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  188. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  189. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  190. package/template/src/atoms/AnimatedRings.tsx +0 -70
  191. package/template/src/atoms/Card.tsx +0 -61
  192. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  193. package/template/src/atoms/CircularProgress.tsx +0 -102
  194. package/template/src/atoms/CustomIcon.tsx +0 -88
  195. package/template/src/atoms/CustomSwitch.tsx +0 -287
  196. package/template/src/atoms/Dropdown.tsx +0 -306
  197. package/template/src/atoms/IconButton.tsx +0 -162
  198. package/template/src/atoms/ImageIcon.tsx +0 -98
  199. package/template/src/atoms/InfoBubble.tsx +0 -291
  200. package/template/src/atoms/Input.tsx +0 -87
  201. package/template/src/atoms/InviteInfo.tsx +0 -166
  202. package/template/src/atoms/LinkButton.tsx +0 -28
  203. package/template/src/atoms/OutlineButton.tsx +0 -61
  204. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  205. package/template/src/atoms/Popup.tsx +0 -147
  206. package/template/src/atoms/RecordingInfo.tsx +0 -49
  207. package/template/src/atoms/Spacer.tsx +0 -22
  208. package/template/src/atoms/TertiaryButton.tsx +0 -78
  209. package/template/src/atoms/Toggle.tsx +0 -47
  210. package/template/src/atoms/Tooltip.native.tsx +0 -65
  211. package/template/src/atoms/Tooltip.tsx +0 -94
  212. package/template/src/atoms/UserAvatar.tsx +0 -60
  213. package/template/src/components/CommonStyles.ts +0 -44
  214. package/template/src/components/ToastComponent.tsx +0 -8
  215. package/template/src/components/participants/Participant.tsx +0 -302
  216. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  217. package/template/src/components/popups/InvitePopup.tsx +0 -115
  218. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  219. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  220. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  221. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  222. package/template/src/components/useToast.tsx +0 -41
  223. package/template/src/components/useVideoCall.tsx +0 -65
  224. package/template/src/pages/Endcall.tsx +0 -148
  225. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  226. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  227. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  228. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  229. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  230. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  231. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  232. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  233. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  234. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  235. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  236. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  237. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  238. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  239. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  240. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  241. package/template/src/theme/index.ts +0 -46
  242. package/template/src/utils/PlatformWrapper.tsx +0 -21
  243. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  244. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  245. package/template/src/utils/useFocus.tsx +0 -46
  246. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  247. package/template/src/utils/useIsHandRaised.ts +0 -13
  248. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  249. package/template/src/utils/useRemoteRequest.ts +0 -84
@@ -9,241 +9,120 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import React, {useEffect, useState} from 'react';
12
+ import React, {useState} from 'react';
13
13
  import {
14
14
  ScrollView,
15
15
  View,
16
+ Dimensions,
16
17
  StyleSheet,
18
+ Text,
17
19
  Pressable,
18
- FlatList,
19
- useWindowDimensions,
20
20
  } from 'react-native';
21
21
  import {layoutProps} from '../../theme.json';
22
- import {
23
- layoutComponent,
24
- useLocalUid,
25
- useRender,
26
- useRtc,
27
- } from 'customization-api';
22
+ import {layoutComponent, useRtc} from 'customization-api';
28
23
  import RenderComponent from '../pages/video-call/RenderComponent';
29
- import IconButton from '../atoms/IconButton';
30
- import hexadecimalTransparency from '../utils/hexadecimalTransparency';
31
- import {BREAKPOINTS, isMobileUA, useIsDesktop} from '../utils/common';
32
24
  const {topPinned} = layoutProps;
33
25
 
34
26
  const PinnedVideo: layoutComponent = ({renderData}) => {
35
- const {pinnedUid, activeUids, renderList, activeSpeaker} = useRender();
36
27
  const [collapse, setCollapse] = useState(false);
37
- const localUid = useLocalUid();
38
- const {width, height} = useWindowDimensions();
39
- const isDesktop = width > BREAKPOINTS.xl;
40
- const isSidePinnedlayout = topPinned === true ? false : isDesktop; // if either explicity set to false or auto evaluation
41
- //const [maxUid, ...minUids] = renderData;
28
+ const [dim, setDim] = useState<[number, number, boolean]>([
29
+ Dimensions.get('window').width,
30
+ Dimensions.get('window').height,
31
+ Dimensions.get('window').width > Dimensions.get('window').height,
32
+ ]);
33
+ let onLayout = () => {
34
+ setTimeout(() => {
35
+ let {height, width} = Dimensions.get('window');
36
+ let isLandscape = width > height;
37
+ setDim([width, height, isLandscape]);
38
+ }, 20);
39
+ };
40
+ const isSidePinnedlayout = topPinned === true ? false : dim[2]; // if either explicity set to false or auto evaluation
41
+ const [maxUid, ...minUids] = renderData;
42
42
  const {dispatch} = useRtc();
43
- const [uids, setUids] = useState(renderData);
44
-
45
- const [screenShareOn, setScreenShareOn] = useState(false);
46
-
47
- useEffect(() => {
48
- const nonPinnedUids = activeUids.filter((uid) => uid !== pinnedUid);
49
-
50
- const nonActiveSpeakerUids = nonPinnedUids.filter(
51
- (uid) => uid !== activeSpeaker,
52
- );
53
-
54
- const remoteScreenShareUids = nonActiveSpeakerUids.filter((uid) => {
55
- return (
56
- renderList[uid].type === 'screenshare' &&
57
- renderList[uid].parentUid !== localUid
58
- );
59
- });
60
-
61
- const localScreenShareUids = nonActiveSpeakerUids.filter((uid) => {
62
- return (
63
- renderList[uid].type === 'screenshare' &&
64
- renderList[uid].parentUid === localUid
65
- );
66
- });
67
- if (remoteScreenShareUids?.length || localScreenShareUids?.length) {
68
- setScreenShareOn(true);
69
- }
70
-
71
- const restOfTheUids = nonActiveSpeakerUids.filter(
72
- (uid) => renderList[uid].type !== 'screenshare',
73
- );
74
-
75
- /**
76
- * Order for pinned layout -
77
- * - [1] means only one user
78
- * - [N] means multiple users
79
- * 1.Pinned User[1]
80
- * 2.Remote screenshare users[N]
81
- * 3.Active Speaker[1]
82
- * 4.Local Screenshare[1]
83
- * 5 and etc.Other Users[N]
84
- */
85
-
86
- const updatedOrder = [
87
- pinnedUid,
88
- ...remoteScreenShareUids,
89
- pinnedUid !== activeSpeaker ? activeSpeaker : 0,
90
- ...localScreenShareUids,
91
- ...restOfTheUids,
92
- ].filter((uid) => uid !== undefined && uid !== 0);
93
-
94
- setUids(updatedOrder);
95
- }, [activeUids, renderList, activeSpeaker, pinnedUid]);
96
43
 
97
44
  return (
98
45
  <View
99
46
  style={{
100
47
  flexDirection: isSidePinnedlayout ? 'row' : 'column',
101
48
  flex: 1,
102
- }}>
49
+ padding: 4,
50
+ }}
51
+ onLayout={onLayout}>
52
+ {isSidePinnedlayout && (
53
+ <Pressable
54
+ onPress={() => setCollapse(!collapse)}
55
+ style={{
56
+ position: 'absolute',
57
+ zIndex: 50,
58
+ marginTop: 5,
59
+ width: 35,
60
+ height: 35,
61
+ marginLeft: collapse ? 5 : '20.1%',
62
+ backgroundColor: $config.SECONDARY_FONT_COLOR + 'aa',
63
+ borderRadius: 50,
64
+ justifyContent: 'center',
65
+ }}>
66
+ <Text
67
+ style={{
68
+ alignSelf: 'center',
69
+ justifyContent: 'center',
70
+ color: $config.PRIMARY_COLOR,
71
+ fontWeight: '500',
72
+ fontSize: 20,
73
+ }}>
74
+ {collapse ? '>' : '<'}
75
+ </Text>
76
+ </Pressable>
77
+ )}
103
78
  {!collapse && (
104
79
  <ScrollView
105
80
  horizontal={!isSidePinnedlayout}
106
- showsHorizontalScrollIndicator={isMobileUA() ? false : true}
107
81
  decelerationRate={0}
108
82
  style={
109
83
  isSidePinnedlayout
110
- ? {
111
- width: '20%',
112
- paddingRight: 8,
113
- }
114
- : {
115
- flex: 1,
116
- minHeight: 160,
117
- marginBottom: 8,
118
- }
84
+ ? {width: '20%', paddingHorizontal: 8}
85
+ : {flex: 1}
119
86
  }>
120
- {/* Pinned Video Top View(Desktop minimized and Mobile native and Mobile web) / Side View(Desktop maximized)*/}
121
- {uids?.map((minUid, i) => {
122
- //first item -> maximized view so returning null
123
- if (i === 0) return null;
124
- //remaining items -> minimized view
125
- {
126
- /**Rendering minimized views */
127
- }
128
- return (
129
- <Pressable
130
- //old
131
- //if user pinned somebody then side panel items should not be clickable - swap video should be called
132
- //instead we will show replace pin button on hovering the video tile
133
- //old
134
- disabled={
135
- //old fix
136
- //activeSpeaker || pinnedUid || screenShareOn ? true : false
137
- //old fix
138
-
139
- //latest fix : pinned video sidepanel layout should not be clickable
140
- //if user hover on it we will show pin for me/replace pin(if someone already pinned) button
141
- true
142
- }
143
- style={
144
- isSidePinnedlayout
145
- ? {
146
- width: '100%',
147
- height: width * 0.1125 + 2, // width * 20/100 * 9/16 + 2
148
- zIndex: 40,
149
- paddingBottom: 8,
150
- }
151
- : {
152
- // width: ((height / 3) * 16) / 9 / 2 + 12, //dim[1] /4.3
153
- width: 254,
154
- height: '100%',
155
- zIndex: 40,
156
- marginRight: 8,
157
- }
158
- }
159
- key={'minVideo' + i}
160
- onPress={() => {
161
- dispatch({type: 'SwapVideo', value: [minUid]});
162
- }}>
163
- <RenderComponent uid={minUid} />
164
- </Pressable>
165
- );
166
- })}
87
+ {minUids.map((minUid, i) => (
88
+ <Pressable
89
+ style={
90
+ isSidePinnedlayout
91
+ ? {
92
+ width: '100%',
93
+ height: dim[0] * 0.1125 + 2, // width * 20/100 * 9/16 + 2
94
+ zIndex: 40,
95
+ paddingBottom: 8,
96
+ }
97
+ : {
98
+ width: ((dim[1] / 3) * 16) / 9 / 2 + 12, //dim[1] /4.3
99
+ height: '100%',
100
+ zIndex: 40,
101
+ paddingRight: 8,
102
+ paddingVertical: 4,
103
+ }
104
+ }
105
+ key={'minVideo' + i}
106
+ onPress={() => {
107
+ dispatch({type: 'SwapVideo', value: [minUid]});
108
+ }}>
109
+ <RenderComponent uid={minUid} />
110
+ </Pressable>
111
+ ))}
167
112
  </ScrollView>
168
113
  )}
169
- {uids && uids?.length && (
170
- <View
171
- style={
172
- isSidePinnedlayout
173
- ? collapse
174
- ? style.width100
175
- : style.width80
176
- : style.flex8
177
- }>
178
- <View style={style.flex1} key={'maxVideo' + uids[0]}>
179
- {isSidePinnedlayout && (
180
- <IconButton
181
- containerStyle={{
182
- position: 'absolute',
183
- top: 8,
184
- left: 8,
185
- zIndex: 999,
186
- elevation: 999,
187
- }}
188
- onPress={() => setCollapse(!collapse)}
189
- iconProps={{
190
- iconContainerStyle: {
191
- padding: 8,
192
- backgroundColor:
193
- $config.CARD_LAYER_5_COLOR +
194
- hexadecimalTransparency['10%'],
195
- },
196
- name: collapse ? 'collapse' : 'expand',
197
- tintColor: $config.SECONDARY_ACTION_COLOR,
198
- iconSize: 24,
199
- }}
200
- />
201
- )}
202
- {pinnedUid ? (
203
- <IconButton
204
- containerStyle={{
205
- paddingHorizontal: 8,
206
- paddingVertical: 10,
207
- backgroundColor: $config.VIDEO_AUDIO_TILE_OVERLAY_COLOR,
208
- borderRadius: 8,
209
- flexDirection: 'row',
210
- position: 'absolute',
211
- top: 8,
212
- left: 8 + (isSidePinnedlayout ? 32 + 12 + 8 : 0),
213
- zIndex: 999,
214
- elevation: 999,
215
- }}
216
- iconProps={{
217
- iconType: 'plain',
218
- iconContainerStyle: {
219
- padding: 0,
220
- },
221
- name: 'unpin-filled',
222
- iconSize: 20,
223
- tintColor: $config.VIDEO_AUDIO_TILE_TEXT_COLOR,
224
- }}
225
- onPress={() => {
226
- dispatch({type: 'UserPin', value: [0]});
227
- }}
228
- btnTextProps={{
229
- text: 'Unpin',
230
- textColor: $config.VIDEO_AUDIO_TILE_TEXT_COLOR,
231
- textStyle: {
232
- marginTop: 0,
233
- marginLeft: 6,
234
- marginRight: 2,
235
- fontWeight: '700',
236
- },
237
- }}
238
- />
239
- ) : (
240
- <></>
241
- )}
242
- {/** Render the maximized view */}
243
- <RenderComponent uid={uids[0]} isMax={true} />
244
- </View>
114
+ <View
115
+ style={
116
+ isSidePinnedlayout
117
+ ? collapse
118
+ ? style.width100
119
+ : style.width80
120
+ : style.flex4
121
+ }>
122
+ <View style={style.flex1} key={'maxVideo' + maxUid}>
123
+ <RenderComponent uid={maxUid} />
245
124
  </View>
246
- )}
125
+ </View>
247
126
  </View>
248
127
  );
249
128
  };
@@ -252,8 +131,42 @@ const style = StyleSheet.create({
252
131
  width80: {width: '80%'},
253
132
  width100: {width: '100%'},
254
133
  flex2: {flex: 2},
255
- flex8: {flex: 8},
134
+ flex4: {flex: 4, backgroundColor: '#ffffff00'},
256
135
  flex1: {flex: 1},
136
+ nameHolder: {
137
+ marginTop: -25,
138
+ backgroundColor: $config.SECONDARY_FONT_COLOR + 'aa',
139
+ alignSelf: 'flex-end',
140
+ paddingHorizontal: 8,
141
+ height: 25,
142
+ borderTopLeftRadius: 15,
143
+ borderBottomRightRadius: 15,
144
+ flexDirection: 'row',
145
+ zIndex: 5,
146
+ maxWidth: '100%',
147
+ },
148
+ name: {
149
+ color: $config.PRIMARY_FONT_COLOR,
150
+ lineHeight: 25,
151
+ fontWeight: '700',
152
+ flexShrink: 1,
153
+ },
154
+ MicBackdrop: {
155
+ width: 20,
156
+ height: 20,
157
+ borderRadius: 15,
158
+ marginHorizontal: 10,
159
+ backgroundColor: $config.SECONDARY_FONT_COLOR,
160
+ display: 'flex',
161
+ alignSelf: 'center',
162
+ justifyContent: 'center',
163
+ },
164
+ MicIcon: {
165
+ width: '80%',
166
+ height: '80%',
167
+ alignSelf: 'center',
168
+ resizeMode: 'contain',
169
+ },
257
170
  });
258
171
 
259
172
  export default PinnedVideo;