agora-appbuilder-core 3.0.10 → 3.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4719 -5862
  4. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +0 -4
  5. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +0 -18
  6. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +0 -2
  7. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +26 -30
  8. package/template/agora-rn-uikit/src/Controls/Icons.ts +83 -30
  9. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +6 -6
  10. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +0 -1
  11. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +0 -1
  12. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +0 -1
  13. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +0 -1
  14. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +0 -1
  15. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +0 -2
  16. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +0 -1
  17. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +0 -1
  18. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +0 -1
  19. package/template/agora-rn-uikit/src/Reducer/index.ts +0 -3
  20. package/template/agora-rn-uikit/src/Rtc/Create.tsx +1 -89
  21. package/template/agora-rn-uikit/src/RtcConfigure.tsx +2 -39
  22. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +5 -15
  23. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +9 -15
  24. package/template/agora-rn-uikit/src/index.ts +1 -3
  25. package/template/android/app/build.gradle +0 -1
  26. package/template/android/app/src/main/AndroidManifest.xml +15 -22
  27. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +0 -50
  28. package/template/android/build.gradle +3 -3
  29. package/template/babel.config.js +0 -1
  30. package/template/bridge/rtc/webNg/RtcEngine.ts +17 -110
  31. package/template/customization-api/sub-components.ts +1 -1
  32. package/template/customization-api/typeDefinition.ts +1 -2
  33. package/template/electron/index.html +27 -27
  34. package/template/electron/renderer/index.js +0 -1
  35. package/template/global.d.ts +4 -25
  36. package/template/index.rsdk.tsx +0 -1
  37. package/template/index.web.js +1 -2
  38. package/template/index.wsdk.tsx +1 -1
  39. package/template/ios/HelloWorld/Info.plist +1 -14
  40. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  41. package/template/metro.config.js +1 -1
  42. package/template/package.json +7 -18
  43. package/template/react-native-toast-message/index.d.ts +43 -43
  44. package/template/react-native-toast-message/src/colors/index.js +2 -3
  45. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  46. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  47. package/template/react-native-toast-message/src/components/error.js +2 -3
  48. package/template/react-native-toast-message/src/components/info.js +2 -3
  49. package/template/react-native-toast-message/src/components/success.js +2 -3
  50. package/template/react-native-toast-message/src/index.js +31 -122
  51. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  52. package/template/react-native-toast-message/src/styles.js +4 -3
  53. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  54. package/template/src/App.tsx +0 -6
  55. package/template/src/AppWrapper.tsx +28 -63
  56. package/template/src/assets/icons.ts +102 -0
  57. package/template/src/atoms/HorizontalRule.tsx +1 -3
  58. package/template/src/atoms/PrimaryButton.tsx +26 -51
  59. package/template/src/atoms/SecondaryButton.tsx +5 -8
  60. package/template/src/atoms/TextInput.tsx +14 -12
  61. package/template/src/components/Chat.tsx +214 -86
  62. package/template/src/components/ChatContext.ts +1 -8
  63. package/template/src/components/ColorConfigure.tsx +1 -1
  64. package/template/src/components/ColorContext.ts +1 -1
  65. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  66. package/template/src/components/Controls.tsx +42 -342
  67. package/template/src/components/DeviceConfigure.tsx +101 -461
  68. package/template/src/components/DeviceContext.tsx +4 -8
  69. package/template/src/components/EventsConfigure.tsx +7 -144
  70. package/template/src/components/GraphQLProvider.tsx +1 -1
  71. package/template/src/components/GridVideo.tsx +44 -59
  72. package/template/src/components/HostControlView.tsx +35 -114
  73. package/template/src/components/Navbar.tsx +398 -216
  74. package/template/src/components/NetworkQualityContext.tsx +20 -20
  75. package/template/src/components/ParticipantsView.tsx +154 -177
  76. package/template/src/components/PinnedVideo.tsx +120 -207
  77. package/template/src/components/Precall.native.tsx +119 -358
  78. package/template/src/components/Precall.tsx +135 -269
  79. package/template/src/components/RTMConfigure.tsx +4 -27
  80. package/template/src/components/Router.electron.ts +0 -1
  81. package/template/src/components/Router.native.ts +0 -1
  82. package/template/src/components/Router.sdk.ts +0 -1
  83. package/template/src/components/Router.ts +0 -1
  84. package/template/src/components/Settings.tsx +95 -26
  85. package/template/src/components/SettingsView.tsx +56 -251
  86. package/template/src/components/Share.tsx +273 -302
  87. package/template/src/components/StorageContext.tsx +3 -30
  88. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  89. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  90. package/template/src/components/common/Error.tsx +6 -20
  91. package/template/src/components/common/Logo.tsx +15 -16
  92. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  93. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  94. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  95. package/template/src/components/livestream/Types.ts +14 -39
  96. package/template/src/components/livestream/index.ts +0 -1
  97. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  98. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  99. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  100. package/template/src/components/participants/MeParticipant.tsx +38 -0
  101. package/template/src/components/participants/ParticipantName.tsx +7 -13
  102. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  103. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  104. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  105. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  106. package/template/src/components/precall/LocalMute.tsx +14 -84
  107. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  108. package/template/src/components/precall/VideoPreview.tsx +7 -163
  109. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  110. package/template/src/components/precall/meetingTitle.tsx +12 -15
  111. package/template/src/components/precall/selectDevice.tsx +21 -1
  112. package/template/src/components/precall/textInput.tsx +4 -32
  113. package/template/src/components/precall/usePreCall.tsx +0 -16
  114. package/template/src/components/styles.ts +21 -42
  115. package/template/src/components/useShareLink.tsx +14 -12
  116. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  117. package/template/src/pages/Authenticate.tsx +15 -5
  118. package/template/src/pages/Create.tsx +165 -293
  119. package/template/src/pages/Join.tsx +67 -93
  120. package/template/src/pages/VideoCall.tsx +64 -89
  121. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  122. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  123. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  124. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  125. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  126. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  127. package/template/src/rtm-events/constants.ts +0 -2
  128. package/template/src/subComponents/ChatBubble.tsx +83 -123
  129. package/template/src/subComponents/ChatContainer.tsx +84 -257
  130. package/template/src/subComponents/ChatInput.tsx +46 -61
  131. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  132. package/template/src/subComponents/Checkbox.tsx +2 -2
  133. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  134. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  135. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  136. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  137. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  138. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  139. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  140. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  141. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  142. package/template/src/subComponents/Logo.tsx +4 -3
  143. package/template/src/subComponents/LogoutButton.tsx +1 -1
  144. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  145. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  146. package/template/src/subComponents/Recording.tsx +29 -28
  147. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  148. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  149. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  150. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  151. package/template/src/subComponents/SelectDevice.tsx +61 -404
  152. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  153. package/template/src/subComponents/ToastConfig.tsx +10 -150
  154. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  155. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  156. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  157. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  160. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  161. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  162. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  164. package/template/src/utils/common.tsx +1 -155
  165. package/template/src/utils/index.tsx +0 -19
  166. package/template/src/utils/isMobileOrTablet.ts +2 -7
  167. package/template/src/utils/useButtonTemplate.tsx +0 -1
  168. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  169. package/template/web/index.html +0 -5
  170. package/template/webpack.commons.js +8 -13
  171. package/template/webpack.web.config.js +0 -1
  172. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  173. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  174. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  175. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  176. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  177. package/template/android/app/src/main/res/values/colors.xml +0 -7
  178. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  179. package/template/react-native.config.js +0 -7
  180. package/template/src/assets/font-styles.css +0 -329
  181. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  182. package/template/src/assets/fonts/icomoon.ttf +0 -0
  183. package/template/src/assets/permission.png +0 -0
  184. package/template/src/assets/selection.json +0 -1
  185. package/template/src/atoms/ActionMenu.tsx +0 -236
  186. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  187. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  188. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  189. package/template/src/atoms/AnimatedRings.tsx +0 -70
  190. package/template/src/atoms/Card.tsx +0 -61
  191. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  192. package/template/src/atoms/CircularProgress.tsx +0 -102
  193. package/template/src/atoms/CustomIcon.tsx +0 -88
  194. package/template/src/atoms/CustomSwitch.tsx +0 -287
  195. package/template/src/atoms/Dropdown.tsx +0 -306
  196. package/template/src/atoms/IconButton.tsx +0 -162
  197. package/template/src/atoms/ImageIcon.tsx +0 -98
  198. package/template/src/atoms/InfoBubble.tsx +0 -291
  199. package/template/src/atoms/Input.tsx +0 -87
  200. package/template/src/atoms/InviteInfo.tsx +0 -166
  201. package/template/src/atoms/LinkButton.tsx +0 -28
  202. package/template/src/atoms/OutlineButton.tsx +0 -61
  203. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  204. package/template/src/atoms/Popup.tsx +0 -147
  205. package/template/src/atoms/RecordingInfo.tsx +0 -49
  206. package/template/src/atoms/Spacer.tsx +0 -22
  207. package/template/src/atoms/TertiaryButton.tsx +0 -78
  208. package/template/src/atoms/Toggle.tsx +0 -47
  209. package/template/src/atoms/Tooltip.native.tsx +0 -65
  210. package/template/src/atoms/Tooltip.tsx +0 -94
  211. package/template/src/atoms/UserAvatar.tsx +0 -60
  212. package/template/src/components/CommonStyles.ts +0 -44
  213. package/template/src/components/ToastComponent.tsx +0 -8
  214. package/template/src/components/participants/Participant.tsx +0 -302
  215. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  216. package/template/src/components/popups/InvitePopup.tsx +0 -115
  217. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  218. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  219. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  220. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  221. package/template/src/components/useToast.tsx +0 -41
  222. package/template/src/components/useVideoCall.tsx +0 -65
  223. package/template/src/pages/Endcall.tsx +0 -148
  224. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  225. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  226. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  227. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  228. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  229. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  230. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  231. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  232. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  233. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  234. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  235. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  236. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  237. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  238. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  239. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  240. package/template/src/theme/index.ts +0 -46
  241. package/template/src/utils/PlatformWrapper.tsx +0 -21
  242. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  243. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  244. package/template/src/utils/useFocus.tsx +0 -46
  245. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  246. package/template/src/utils/useIsHandRaised.ts +0 -13
  247. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  248. package/template/src/utils/useRemoteRequest.ts +0 -84
@@ -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;