@stream-io/video-react-sdk 0.3.41 → 0.3.43

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 (261) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +1 -1
  3. package/dist/index.cjs.js +2737 -0
  4. package/dist/index.cjs.js.map +1 -0
  5. package/dist/index.d.ts +0 -1
  6. package/dist/index.es.js +2633 -0
  7. package/dist/index.es.js.map +1 -0
  8. package/dist/src/components/Button/CompositeButton.d.ts +1 -1
  9. package/dist/src/core/components/ParticipantView/ParticipantView.d.ts +1 -1
  10. package/dist/src/hooks/useFloatingUIPreset.d.ts +1 -1
  11. package/index.ts +3 -3
  12. package/package.json +17 -15
  13. package/src/components/Permissions/PermissionRequests.tsx +1 -1
  14. package/dist/index.js +0 -18
  15. package/dist/index.js.map +0 -1
  16. package/dist/src/components/Avatar/Avatar.js +0 -24
  17. package/dist/src/components/Avatar/Avatar.js.map +0 -1
  18. package/dist/src/components/Avatar/index.js +0 -2
  19. package/dist/src/components/Avatar/index.js.map +0 -1
  20. package/dist/src/components/Button/CompositeButton.js +0 -13
  21. package/dist/src/components/Button/CompositeButton.js.map +0 -1
  22. package/dist/src/components/Button/CopyToClipboardButton.js +0 -54
  23. package/dist/src/components/Button/CopyToClipboardButton.js.map +0 -1
  24. package/dist/src/components/Button/IconButton.js +0 -26
  25. package/dist/src/components/Button/IconButton.js.map +0 -1
  26. package/dist/src/components/Button/TextButton.js +0 -17
  27. package/dist/src/components/Button/TextButton.js.map +0 -1
  28. package/dist/src/components/Button/index.js +0 -5
  29. package/dist/src/components/Button/index.js.map +0 -1
  30. package/dist/src/components/CallControls/AcceptCallButton.js +0 -27
  31. package/dist/src/components/CallControls/AcceptCallButton.js.map +0 -1
  32. package/dist/src/components/CallControls/CallControls.js +0 -5
  33. package/dist/src/components/CallControls/CallControls.js.map +0 -1
  34. package/dist/src/components/CallControls/CallStatsButton.js +0 -8
  35. package/dist/src/components/CallControls/CallStatsButton.js.map +0 -1
  36. package/dist/src/components/CallControls/CancelCallButton.js +0 -27
  37. package/dist/src/components/CallControls/CancelCallButton.js.map +0 -1
  38. package/dist/src/components/CallControls/ReactionsButton.js +0 -45
  39. package/dist/src/components/CallControls/ReactionsButton.js.map +0 -1
  40. package/dist/src/components/CallControls/RecordCallButton.js +0 -22
  41. package/dist/src/components/CallControls/RecordCallButton.js.map +0 -1
  42. package/dist/src/components/CallControls/ScreenShareButton.js +0 -15
  43. package/dist/src/components/CallControls/ScreenShareButton.js.map +0 -1
  44. package/dist/src/components/CallControls/ToggleAudioButton.js +0 -24
  45. package/dist/src/components/CallControls/ToggleAudioButton.js.map +0 -1
  46. package/dist/src/components/CallControls/ToggleAudioOutputButton.js +0 -10
  47. package/dist/src/components/CallControls/ToggleAudioOutputButton.js.map +0 -1
  48. package/dist/src/components/CallControls/ToggleVideoButton.js +0 -24
  49. package/dist/src/components/CallControls/ToggleVideoButton.js.map +0 -1
  50. package/dist/src/components/CallControls/index.js +0 -11
  51. package/dist/src/components/CallControls/index.js.map +0 -1
  52. package/dist/src/components/CallParticipantsList/BlockedUserListing.js +0 -18
  53. package/dist/src/components/CallParticipantsList/BlockedUserListing.js.map +0 -1
  54. package/dist/src/components/CallParticipantsList/CallParticipantListHeader.js +0 -10
  55. package/dist/src/components/CallParticipantsList/CallParticipantListHeader.js.map +0 -1
  56. package/dist/src/components/CallParticipantsList/CallParticipantListing.js +0 -4
  57. package/dist/src/components/CallParticipantsList/CallParticipantListing.js.map +0 -1
  58. package/dist/src/components/CallParticipantsList/CallParticipantListingItem.js +0 -128
  59. package/dist/src/components/CallParticipantsList/CallParticipantListingItem.js.map +0 -1
  60. package/dist/src/components/CallParticipantsList/CallParticipantsList.js +0 -83
  61. package/dist/src/components/CallParticipantsList/CallParticipantsList.js.map +0 -1
  62. package/dist/src/components/CallParticipantsList/EmptyParticipantSearchList.js +0 -7
  63. package/dist/src/components/CallParticipantsList/EmptyParticipantSearchList.js.map +0 -1
  64. package/dist/src/components/CallParticipantsList/index.js +0 -4
  65. package/dist/src/components/CallParticipantsList/index.js.map +0 -1
  66. package/dist/src/components/CallPreview/CallPreview.js +0 -21
  67. package/dist/src/components/CallPreview/CallPreview.js.map +0 -1
  68. package/dist/src/components/CallPreview/index.js +0 -2
  69. package/dist/src/components/CallPreview/index.js.map +0 -1
  70. package/dist/src/components/CallRecordingList/CallRecordingList.js +0 -9
  71. package/dist/src/components/CallRecordingList/CallRecordingList.js.map +0 -1
  72. package/dist/src/components/CallRecordingList/CallRecordingListHeader.js +0 -6
  73. package/dist/src/components/CallRecordingList/CallRecordingListHeader.js.map +0 -1
  74. package/dist/src/components/CallRecordingList/CallRecordingListItem.js +0 -11
  75. package/dist/src/components/CallRecordingList/CallRecordingListItem.js.map +0 -1
  76. package/dist/src/components/CallRecordingList/EmptyCallRecordingListing.js +0 -5
  77. package/dist/src/components/CallRecordingList/EmptyCallRecordingListing.js.map +0 -1
  78. package/dist/src/components/CallRecordingList/LoadingCallRecordingListing.js +0 -7
  79. package/dist/src/components/CallRecordingList/LoadingCallRecordingListing.js.map +0 -1
  80. package/dist/src/components/CallRecordingList/index.js +0 -6
  81. package/dist/src/components/CallRecordingList/index.js.map +0 -1
  82. package/dist/src/components/CallStats/CallStats.js +0 -70
  83. package/dist/src/components/CallStats/CallStats.js.map +0 -1
  84. package/dist/src/components/CallStats/CallStatsLatencyChart.js +0 -39
  85. package/dist/src/components/CallStats/CallStatsLatencyChart.js.map +0 -1
  86. package/dist/src/components/CallStats/index.js +0 -3
  87. package/dist/src/components/CallStats/index.js.map +0 -1
  88. package/dist/src/components/Debug/DebugParticipantPublishQuality.js +0 -46
  89. package/dist/src/components/Debug/DebugParticipantPublishQuality.js.map +0 -1
  90. package/dist/src/components/Debug/DebugStatsView.js +0 -66
  91. package/dist/src/components/Debug/DebugStatsView.js.map +0 -1
  92. package/dist/src/components/Debug/useIsDebugMode.js +0 -18
  93. package/dist/src/components/Debug/useIsDebugMode.js.map +0 -1
  94. package/dist/src/components/DeviceSettings/DeviceSelector.js +0 -26
  95. package/dist/src/components/DeviceSettings/DeviceSelector.js.map +0 -1
  96. package/dist/src/components/DeviceSettings/DeviceSelectorAudio.js +0 -20
  97. package/dist/src/components/DeviceSettings/DeviceSelectorAudio.js.map +0 -1
  98. package/dist/src/components/DeviceSettings/DeviceSelectorVideo.js +0 -11
  99. package/dist/src/components/DeviceSettings/DeviceSelectorVideo.js.map +0 -1
  100. package/dist/src/components/DeviceSettings/DeviceSettings.js +0 -15
  101. package/dist/src/components/DeviceSettings/DeviceSettings.js.map +0 -1
  102. package/dist/src/components/DeviceSettings/index.js +0 -5
  103. package/dist/src/components/DeviceSettings/index.js.map +0 -1
  104. package/dist/src/components/Icon/Icon.js +0 -4
  105. package/dist/src/components/Icon/Icon.js.map +0 -1
  106. package/dist/src/components/Icon/index.js +0 -2
  107. package/dist/src/components/Icon/index.js.map +0 -1
  108. package/dist/src/components/LoadingIndicator/LoadingIndicator.js +0 -6
  109. package/dist/src/components/LoadingIndicator/LoadingIndicator.js.map +0 -1
  110. package/dist/src/components/LoadingIndicator/index.js +0 -2
  111. package/dist/src/components/LoadingIndicator/index.js.map +0 -1
  112. package/dist/src/components/Menu/GenericMenu.js +0 -20
  113. package/dist/src/components/Menu/GenericMenu.js.map +0 -1
  114. package/dist/src/components/Menu/MenuToggle.js +0 -40
  115. package/dist/src/components/Menu/MenuToggle.js.map +0 -1
  116. package/dist/src/components/Menu/index.js +0 -3
  117. package/dist/src/components/Menu/index.js.map +0 -1
  118. package/dist/src/components/Notification/Notification.js +0 -25
  119. package/dist/src/components/Notification/Notification.js.map +0 -1
  120. package/dist/src/components/Notification/PermissionNotification.js +0 -26
  121. package/dist/src/components/Notification/PermissionNotification.js.map +0 -1
  122. package/dist/src/components/Notification/SpeakingWhileMutedNotification.js +0 -50
  123. package/dist/src/components/Notification/SpeakingWhileMutedNotification.js.map +0 -1
  124. package/dist/src/components/Notification/index.js +0 -4
  125. package/dist/src/components/Notification/index.js.map +0 -1
  126. package/dist/src/components/Permissions/PermissionRequests.js +0 -122
  127. package/dist/src/components/Permissions/PermissionRequests.js.map +0 -1
  128. package/dist/src/components/Permissions/index.js +0 -2
  129. package/dist/src/components/Permissions/index.js.map +0 -1
  130. package/dist/src/components/Reaction/Reaction.js +0 -29
  131. package/dist/src/components/Reaction/Reaction.js.map +0 -1
  132. package/dist/src/components/Reaction/index.js +0 -2
  133. package/dist/src/components/Reaction/index.js.map +0 -1
  134. package/dist/src/components/RingingCall/RingingCall.js +0 -45
  135. package/dist/src/components/RingingCall/RingingCall.js.map +0 -1
  136. package/dist/src/components/RingingCall/RingingCallControls.js +0 -14
  137. package/dist/src/components/RingingCall/RingingCallControls.js.map +0 -1
  138. package/dist/src/components/RingingCall/index.js +0 -3
  139. package/dist/src/components/RingingCall/index.js.map +0 -1
  140. package/dist/src/components/Search/SearchInput.js +0 -34
  141. package/dist/src/components/Search/SearchInput.js.map +0 -1
  142. package/dist/src/components/Search/SearchResults.js +0 -12
  143. package/dist/src/components/Search/SearchResults.js.map +0 -1
  144. package/dist/src/components/Search/hooks/index.js +0 -2
  145. package/dist/src/components/Search/hooks/index.js.map +0 -1
  146. package/dist/src/components/Search/hooks/useSearch.js +0 -39
  147. package/dist/src/components/Search/hooks/useSearch.js.map +0 -1
  148. package/dist/src/components/Search/index.js +0 -3
  149. package/dist/src/components/Search/index.js.map +0 -1
  150. package/dist/src/components/StreamTheme/StreamTheme.js +0 -18
  151. package/dist/src/components/StreamTheme/StreamTheme.js.map +0 -1
  152. package/dist/src/components/StreamTheme/index.js +0 -2
  153. package/dist/src/components/StreamTheme/index.js.map +0 -1
  154. package/dist/src/components/Tooltip/Tooltip.js +0 -22
  155. package/dist/src/components/Tooltip/Tooltip.js.map +0 -1
  156. package/dist/src/components/Tooltip/WithTooltip.js +0 -23
  157. package/dist/src/components/Tooltip/WithTooltip.js.map +0 -1
  158. package/dist/src/components/Tooltip/hooks/index.js +0 -2
  159. package/dist/src/components/Tooltip/hooks/index.js.map +0 -1
  160. package/dist/src/components/Tooltip/hooks/useEnterLeaveHandlers.js +0 -14
  161. package/dist/src/components/Tooltip/hooks/useEnterLeaveHandlers.js.map +0 -1
  162. package/dist/src/components/Tooltip/index.js +0 -3
  163. package/dist/src/components/Tooltip/index.js.map +0 -1
  164. package/dist/src/components/Video/VideoPreview.js +0 -75
  165. package/dist/src/components/Video/VideoPreview.js.map +0 -1
  166. package/dist/src/components/Video/index.js +0 -5
  167. package/dist/src/components/Video/index.js.map +0 -1
  168. package/dist/src/components/index.js +0 -18
  169. package/dist/src/components/index.js.map +0 -1
  170. package/dist/src/core/components/Audio/Audio.js +0 -30
  171. package/dist/src/core/components/Audio/Audio.js.map +0 -1
  172. package/dist/src/core/components/Audio/ParticipantsAudio.js +0 -21
  173. package/dist/src/core/components/Audio/ParticipantsAudio.js.map +0 -1
  174. package/dist/src/core/components/Audio/index.js +0 -3
  175. package/dist/src/core/components/Audio/index.js.map +0 -1
  176. package/dist/src/core/components/CallLayout/LivestreamLayout.js +0 -89
  177. package/dist/src/core/components/CallLayout/LivestreamLayout.js.map +0 -1
  178. package/dist/src/core/components/CallLayout/PaginatedGridLayout.js +0 -47
  179. package/dist/src/core/components/CallLayout/PaginatedGridLayout.js.map +0 -1
  180. package/dist/src/core/components/CallLayout/SpeakerLayout.js +0 -71
  181. package/dist/src/core/components/CallLayout/SpeakerLayout.js.map +0 -1
  182. package/dist/src/core/components/CallLayout/hooks.js +0 -41
  183. package/dist/src/core/components/CallLayout/hooks.js.map +0 -1
  184. package/dist/src/core/components/CallLayout/index.js +0 -4
  185. package/dist/src/core/components/CallLayout/index.js.map +0 -1
  186. package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.js +0 -48
  187. package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.js.map +0 -1
  188. package/dist/src/core/components/ParticipantView/ParticipantView.js +0 -54
  189. package/dist/src/core/components/ParticipantView/ParticipantView.js.map +0 -1
  190. package/dist/src/core/components/ParticipantView/index.js +0 -3
  191. package/dist/src/core/components/ParticipantView/index.js.map +0 -1
  192. package/dist/src/core/components/StreamCall/StreamCall.js +0 -7
  193. package/dist/src/core/components/StreamCall/StreamCall.js.map +0 -1
  194. package/dist/src/core/components/StreamCall/index.js +0 -2
  195. package/dist/src/core/components/StreamCall/index.js.map +0 -1
  196. package/dist/src/core/components/StreamVideo/StreamVideo.js +0 -7
  197. package/dist/src/core/components/StreamVideo/StreamVideo.js.map +0 -1
  198. package/dist/src/core/components/StreamVideo/index.js +0 -2
  199. package/dist/src/core/components/StreamVideo/index.js.map +0 -1
  200. package/dist/src/core/components/Video/BaseVideo.js +0 -48
  201. package/dist/src/core/components/Video/BaseVideo.js.map +0 -1
  202. package/dist/src/core/components/Video/DefaultVideoPlaceholder.js +0 -9
  203. package/dist/src/core/components/Video/DefaultVideoPlaceholder.js.map +0 -1
  204. package/dist/src/core/components/Video/Video.js +0 -82
  205. package/dist/src/core/components/Video/Video.js.map +0 -1
  206. package/dist/src/core/components/Video/index.js +0 -3
  207. package/dist/src/core/components/Video/index.js.map +0 -1
  208. package/dist/src/core/components/index.js +0 -7
  209. package/dist/src/core/components/index.js.map +0 -1
  210. package/dist/src/core/contexts/MediaDevicesContext.js +0 -178
  211. package/dist/src/core/contexts/MediaDevicesContext.js.map +0 -1
  212. package/dist/src/core/contexts/index.js +0 -2
  213. package/dist/src/core/contexts/index.js.map +0 -1
  214. package/dist/src/core/hooks/index.js +0 -5
  215. package/dist/src/core/hooks/index.js.map +0 -1
  216. package/dist/src/core/hooks/useAudioPublisher.js +0 -114
  217. package/dist/src/core/hooks/useAudioPublisher.js.map +0 -1
  218. package/dist/src/core/hooks/useCalculateHardLimit.js +0 -56
  219. package/dist/src/core/hooks/useCalculateHardLimit.js.map +0 -1
  220. package/dist/src/core/hooks/useDevices.js +0 -172
  221. package/dist/src/core/hooks/useDevices.js.map +0 -1
  222. package/dist/src/core/hooks/useTrackElementVisibility.js +0 -15
  223. package/dist/src/core/hooks/useTrackElementVisibility.js.map +0 -1
  224. package/dist/src/core/hooks/useVideoPublisher.js +0 -139
  225. package/dist/src/core/hooks/useVideoPublisher.js.map +0 -1
  226. package/dist/src/core/index.js +0 -4
  227. package/dist/src/core/index.js.map +0 -1
  228. package/dist/src/hooks/index.js +0 -8
  229. package/dist/src/hooks/index.js.map +0 -1
  230. package/dist/src/hooks/useFloatingUIPreset.js +0 -30
  231. package/dist/src/hooks/useFloatingUIPreset.js.map +0 -1
  232. package/dist/src/hooks/useRequestPermission.js +0 -46
  233. package/dist/src/hooks/useRequestPermission.js.map +0 -1
  234. package/dist/src/hooks/useScrollPosition.js +0 -63
  235. package/dist/src/hooks/useScrollPosition.js.map +0 -1
  236. package/dist/src/hooks/useToggleAudioMuteState.js +0 -34
  237. package/dist/src/hooks/useToggleAudioMuteState.js.map +0 -1
  238. package/dist/src/hooks/useToggleCallRecording.js +0 -44
  239. package/dist/src/hooks/useToggleCallRecording.js.map +0 -1
  240. package/dist/src/hooks/useToggleScreenShare.js +0 -38
  241. package/dist/src/hooks/useToggleScreenShare.js.map +0 -1
  242. package/dist/src/hooks/useToggleVideoMuteState.js +0 -34
  243. package/dist/src/hooks/useToggleVideoMuteState.js.map +0 -1
  244. package/dist/src/translations/en.json +0 -73
  245. package/dist/src/translations/index.js +0 -3
  246. package/dist/src/translations/index.js.map +0 -1
  247. package/dist/src/types/components.js +0 -2
  248. package/dist/src/types/components.js.map +0 -1
  249. package/dist/src/types/index.js +0 -2
  250. package/dist/src/types/index.js.map +0 -1
  251. package/dist/src/utilities/applyElementToRef.js +0 -8
  252. package/dist/src/utilities/applyElementToRef.js.map +0 -1
  253. package/dist/src/utilities/chunk.js +0 -5
  254. package/dist/src/utilities/chunk.js.map +0 -1
  255. package/dist/src/utilities/index.js +0 -4
  256. package/dist/src/utilities/index.js.map +0 -1
  257. package/dist/src/utilities/isComponentType.js +0 -7
  258. package/dist/src/utilities/isComponentType.js.map +0 -1
  259. package/dist/version.d.ts +0 -1
  260. package/dist/version.js +0 -2
  261. package/dist/version.js.map +0 -1
@@ -1,18 +0,0 @@
1
- export * from './Avatar';
2
- export * from './Button';
3
- export * from './CallControls';
4
- export * from './CallParticipantsList';
5
- export * from './CallPreview';
6
- export * from './CallRecordingList';
7
- export * from './DeviceSettings';
8
- export * from './Icon';
9
- export * from './LoadingIndicator';
10
- export * from './Menu';
11
- export * from './Notification';
12
- export * from './RingingCall';
13
- export * from './Permissions';
14
- export * from './StreamTheme';
15
- export * from './Search';
16
- export * from './Tooltip';
17
- export * from './Video';
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -1,30 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { useEffect, useState } from 'react';
14
- import { useCall } from '@stream-io/video-react-bindings';
15
- export const Audio = (_a) => {
16
- var { participant, trackType = 'audioTrack' } = _a, rest = __rest(_a, ["participant", "trackType"]);
17
- const call = useCall();
18
- const [audioElement, setAudioElement] = useState(null);
19
- const { userId, sessionId } = participant;
20
- useEffect(() => {
21
- if (!call || !audioElement)
22
- return;
23
- const cleanup = call.bindAudioElement(audioElement, sessionId, trackType);
24
- return () => {
25
- cleanup === null || cleanup === void 0 ? void 0 : cleanup();
26
- };
27
- }, [call, sessionId, audioElement, trackType]);
28
- return (_jsx("audio", Object.assign({ autoPlay: true }, rest, { ref: setAudioElement, "data-user-id": userId, "data-session-id": sessionId, "data-track-type": trackType })));
29
- };
30
- //# sourceMappingURL=Audio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Audio.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/Audio.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAA4B,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKtE,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAe1D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAIT,EAAE,EAAE;QAJK,EACpB,WAAW,EACX,SAAS,GAAG,YAAY,OAEb,EADR,IAAI,cAHa,4BAIrB,CADQ;IAEP,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC9C,IAAI,CACL,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,OAAO,GAAG,EAAE;YACV,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/C,OAAO,CACL,8BACE,QAAQ,UACJ,IAAI,IACR,GAAG,EAAE,eAAe,kBACN,MAAM,qBACH,SAAS,qBACT,SAAS,IAC1B,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -1,21 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
- import { createElement as _createElement } from "react";
3
- import { SfuModels } from '@stream-io/video-client';
4
- import { Audio } from './Audio';
5
- export const ParticipantsAudio = (props) => {
6
- const { participants, audioProps } = props;
7
- return (_jsx(_Fragment, { children: participants.map((participant) => {
8
- if (participant.isLocalParticipant)
9
- return null;
10
- const hasAudio = participant.publishedTracks.includes(SfuModels.TrackType.AUDIO);
11
- const hasScreenShareAudio = participant.publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE_AUDIO);
12
- if (hasAudio && participant.audioStream) {
13
- return (_createElement(Audio, Object.assign({}, audioProps, { trackType: "audioTrack", participant: participant, key: participant.sessionId })));
14
- }
15
- if (hasScreenShareAudio && participant.screenShareAudioStream) {
16
- return (_createElement(Audio, Object.assign({}, audioProps, { trackType: "screenShareAudioTrack", participant: participant, key: participant.sessionId })));
17
- }
18
- return null;
19
- }) }));
20
- };
21
- //# sourceMappingURL=ParticipantsAudio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ParticipantsAudio.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/ParticipantsAudio.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAE,SAAS,EAA0B,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAchC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3C,OAAO,CACL,4BACG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YAChC,IAAI,WAAW,CAAC,kBAAkB;gBAAE,OAAO,IAAI,CAAC;YAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,QAAQ,CACnD,SAAS,CAAC,SAAS,CAAC,KAAK,CAC1B,CAAC;YACF,MAAM,mBAAmB,GAAG,WAAW,CAAC,eAAe,CAAC,QAAQ,CAC9D,SAAS,CAAC,SAAS,CAAC,kBAAkB,CACvC,CAAC;YACF,IAAI,QAAQ,IAAI,WAAW,CAAC,WAAW,EAAE;gBACvC,OAAO,CACL,eAAC,KAAK,oBACA,UAAU,IACd,SAAS,EAAC,YAAY,EACtB,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,WAAW,CAAC,SAAS,IAC1B,CACH,CAAC;aACH;YACD,IAAI,mBAAmB,IAAI,WAAW,CAAC,sBAAsB,EAAE;gBAC7D,OAAO,CACL,eAAC,KAAK,oBACA,UAAU,IACd,SAAS,EAAC,uBAAuB,EACjC,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,WAAW,CAAC,SAAS,IAC1B,CACH,CAAC;aACH;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './Audio';
2
- export * from './ParticipantsAudio';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC"}
@@ -1,89 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import clsx from 'clsx';
3
- import { useCallback, useEffect, useState } from 'react';
4
- import { useCall, useCallStateHooks, useI18n, } from '@stream-io/video-react-bindings';
5
- import { SfuModels } from '@stream-io/video-client';
6
- import { ParticipantView, useParticipantViewContext } from '../ParticipantView';
7
- import { ParticipantsAudio } from '../Audio';
8
- import { usePaginatedLayoutSortPreset } from './hooks';
9
- export const LivestreamLayout = (props) => {
10
- var _a, _b, _c, _d, _e;
11
- const { useParticipants, useRemoteParticipants, useHasOngoingScreenShare } = useCallStateHooks();
12
- const call = useCall();
13
- const [currentSpeaker, ...otherParticipants] = useParticipants();
14
- const remoteParticipants = useRemoteParticipants();
15
- const hasOngoingScreenShare = useHasOngoingScreenShare();
16
- const presenter = hasOngoingScreenShare
17
- ? hasScreenShare(currentSpeaker) && currentSpeaker
18
- : otherParticipants.find(hasScreenShare);
19
- usePaginatedLayoutSortPreset(call);
20
- const Overlay = (_jsx(ParticipantOverlay, { showParticipantCount: props.showParticipantCount, showDuration: props.showDuration, showLiveBadge: props.showLiveBadge, showSpeakerName: props.showSpeakerName }));
21
- const { floatingParticipantProps } = props;
22
- const FloatingParticipantOverlay = hasOngoingScreenShare && (_jsx(ParticipantOverlay
23
- // these elements aren't needed for the video feed
24
- , {
25
- // these elements aren't needed for the video feed
26
- showParticipantCount: (_a = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.showParticipantCount) !== null && _a !== void 0 ? _a : false, showDuration: (_b = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.showDuration) !== null && _b !== void 0 ? _b : false, showLiveBadge: (_c = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.showLiveBadge) !== null && _c !== void 0 ? _c : false, showSpeakerName: (_d = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.showSpeakerName) !== null && _d !== void 0 ? _d : true }));
27
- return (_jsxs("div", Object.assign({ className: "str-video__livestream-layout__wrapper" }, { children: [_jsx(ParticipantsAudio, { participants: remoteParticipants }), hasOngoingScreenShare && presenter && (_jsx(ParticipantView, { className: "str-video__livestream-layout__screen-share", participant: presenter, ParticipantViewUI: Overlay, trackType: "screenShareTrack", muteAudio // audio is rendered by ParticipantsAudio
28
- : true })), currentSpeaker && (_jsx(ParticipantView, { className: clsx(hasOngoingScreenShare &&
29
- clsx('str-video__livestream-layout__floating-participant', `str-video__livestream-layout__floating-participant--${(_e = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.position) !== null && _e !== void 0 ? _e : 'top-right'}`)), participant: currentSpeaker, ParticipantViewUI: FloatingParticipantOverlay || Overlay, muteAudio // audio is rendered by ParticipantsAudio
30
- : true }))] })));
31
- };
32
- const hasScreenShare = (p) => !!(p === null || p === void 0 ? void 0 : p.publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE));
33
- const ParticipantOverlay = (props) => {
34
- const { enableFullScreen = true, showParticipantCount = true, showDuration = true, showLiveBadge = true, showSpeakerName = false, } = props;
35
- const { participant } = useParticipantViewContext();
36
- const { useParticipantCount } = useCallStateHooks();
37
- const participantCount = useParticipantCount();
38
- const duration = useUpdateCallDuration();
39
- const toggleFullScreen = useToggleFullScreen();
40
- const { t } = useI18n();
41
- return (_jsx("div", Object.assign({ className: "str-video__livestream-layout__overlay" }, { children: _jsxs("div", Object.assign({ className: "str-video__livestream-layout__overlay__bar" }, { children: [showLiveBadge && (_jsx("span", Object.assign({ className: "str-video__livestream-layout__live-badge" }, { children: t('Live') }))), showParticipantCount && (_jsx("span", Object.assign({ className: "str-video__livestream-layout__viewers-count" }, { children: participantCount }))), showSpeakerName && (_jsx("span", Object.assign({ className: "str-video__livestream-layout__speaker-name", title: participant.name || participant.userId || '' }, { children: participant.name || participant.userId || '' }))), showDuration && (_jsx("span", Object.assign({ className: "str-video__livestream-layout__duration" }, { children: formatDuration(duration) }))), enableFullScreen && (_jsx("span", { className: "str-video__livestream-layout__go-fullscreen", onClick: toggleFullScreen }))] })) })));
42
- };
43
- const useUpdateCallDuration = () => {
44
- const { useIsCallLive, useCallSession } = useCallStateHooks();
45
- const isCallLive = useIsCallLive();
46
- const session = useCallSession();
47
- const [duration, setDuration] = useState(() => {
48
- if (!session || !session.live_started_at)
49
- return 0;
50
- const liveStartTime = new Date(session.live_started_at);
51
- const now = new Date();
52
- return Math.floor((now.getTime() - liveStartTime.getTime()) / 1000);
53
- });
54
- useEffect(() => {
55
- if (!isCallLive)
56
- return;
57
- const interval = setInterval(() => {
58
- setDuration((d) => d + 1);
59
- }, 1000);
60
- return () => {
61
- clearInterval(interval);
62
- };
63
- }, [isCallLive]);
64
- return duration;
65
- };
66
- const useToggleFullScreen = () => {
67
- const { participantViewElement } = useParticipantViewContext();
68
- const [isFullscreen, setIsFullscreen] = useState(false);
69
- return useCallback(() => {
70
- if (isFullscreen) {
71
- document.exitFullscreen().then(() => {
72
- setIsFullscreen(false);
73
- });
74
- }
75
- else {
76
- participantViewElement === null || participantViewElement === void 0 ? void 0 : participantViewElement.requestFullscreen().then(() => {
77
- setIsFullscreen(true);
78
- });
79
- }
80
- }, [isFullscreen, participantViewElement]);
81
- };
82
- const formatDuration = (durationInMs) => {
83
- const days = Math.floor(durationInMs / 86400);
84
- const hours = Math.floor(durationInMs / 3600);
85
- const minutes = Math.floor((durationInMs % 3600) / 60);
86
- const seconds = durationInMs % 60;
87
- return `${days ? days + ' ' : ''}${hours ? hours + ':' : ''}${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
88
- };
89
- //# sourceMappingURL=LivestreamLayout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LivestreamLayout.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/LivestreamLayout.tsx"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useState } from 'react';
3
- import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
4
- import clsx from 'clsx';
5
- import { DefaultParticipantViewUI, ParticipantView, } from '../ParticipantView';
6
- import { ParticipantsAudio } from '../Audio';
7
- import { IconButton } from '../../../components';
8
- import { chunk } from '../../../utilities';
9
- import { usePaginatedLayoutSortPreset } from './hooks';
10
- const GROUP_SIZE = 16;
11
- const PaginatedGridLayoutGroup = ({ group, VideoPlaceholder, ParticipantViewUI, }) => {
12
- return (_jsx("div", Object.assign({ className: clsx('str-video__paginated-grid-layout__group', {
13
- 'str-video__paginated-grid-layout--one': group.length === 1,
14
- 'str-video__paginated-grid-layout--two-four': group.length >= 2 && group.length <= 4,
15
- 'str-video__paginated-grid-layout--five-nine': group.length >= 5 && group.length <= 9,
16
- }) }, { children: group.map((participant) => (_jsx(ParticipantView, { participant: participant, muteAudio: true, VideoPlaceholder: VideoPlaceholder, ParticipantViewUI: ParticipantViewUI }, participant.sessionId))) })));
17
- };
18
- export const PaginatedGridLayout = ({ groupSize = GROUP_SIZE, excludeLocalParticipant = false, pageArrowsVisible = true, VideoPlaceholder, ParticipantViewUI = DefaultParticipantViewUI, }) => {
19
- const [page, setPage] = useState(0);
20
- const [paginatedGridLayoutWrapperElement, setPaginatedGridLayoutWrapperElement,] = useState(null);
21
- const call = useCall();
22
- const { useParticipants, useRemoteParticipants } = useCallStateHooks();
23
- const participants = useParticipants();
24
- // used to render audio elements
25
- const remoteParticipants = useRemoteParticipants();
26
- usePaginatedLayoutSortPreset(call);
27
- useEffect(() => {
28
- if (!paginatedGridLayoutWrapperElement || !call)
29
- return;
30
- const cleanup = call.setViewport(paginatedGridLayoutWrapperElement);
31
- return () => cleanup();
32
- }, [paginatedGridLayoutWrapperElement, call]);
33
- // only used to render video elements
34
- const participantGroups = useMemo(() => chunk(excludeLocalParticipant ? remoteParticipants : participants, groupSize), [excludeLocalParticipant, remoteParticipants, participants, groupSize]);
35
- const pageCount = participantGroups.length;
36
- // update page when page count is reduced and selected page no longer exists
37
- useEffect(() => {
38
- if (page > pageCount - 1) {
39
- setPage(Math.max(0, pageCount - 1));
40
- }
41
- }, [page, pageCount]);
42
- const selectedGroup = participantGroups[page];
43
- if (!call)
44
- return null;
45
- return (_jsxs("div", Object.assign({ className: "str-video__paginated-grid-layout__wrapper", ref: setPaginatedGridLayoutWrapperElement }, { children: [_jsx(ParticipantsAudio, { participants: remoteParticipants }), _jsxs("div", Object.assign({ className: "str-video__paginated-grid-layout" }, { children: [pageArrowsVisible && pageCount > 1 && (_jsx(IconButton, { icon: "caret-left", disabled: page === 0, onClick: () => setPage((currentPage) => Math.max(0, currentPage - 1)) })), selectedGroup && (_jsx(PaginatedGridLayoutGroup, { group: participantGroups[page], VideoPlaceholder: VideoPlaceholder, ParticipantViewUI: ParticipantViewUI })), pageArrowsVisible && pageCount > 1 && (_jsx(IconButton, { disabled: page === pageCount - 1, icon: "caret-right", onClick: () => setPage((currentPage) => Math.min(pageCount - 1, currentPage + 1)) }))] }))] })));
46
- };
47
- //# sourceMappingURL=PaginatedGridLayout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaginatedGridLayout.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/PaginatedGridLayout.tsx"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useEffect, useState } from 'react';
3
- import clsx from 'clsx';
4
- import { SfuModels } from '@stream-io/video-client';
5
- import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
6
- import { DefaultParticipantViewUI, ParticipantView, } from '../ParticipantView';
7
- import { IconButton } from '../../../components';
8
- import { useHorizontalScrollPosition, useVerticalScrollPosition, } from '../../../hooks';
9
- import { useSpeakerLayoutSortPreset } from './hooks';
10
- import { useCalculateHardLimit } from '../../hooks/useCalculateHardLimit';
11
- import { ParticipantsAudio } from '../Audio';
12
- const DefaultParticipantViewUIBar = () => (_jsx(DefaultParticipantViewUI, { menuPlacement: "top-end" }));
13
- const DefaultParticipantViewUISpotlight = () => _jsx(DefaultParticipantViewUI, {});
14
- export const SpeakerLayout = ({ ParticipantViewUIBar = DefaultParticipantViewUIBar, ParticipantViewUISpotlight = DefaultParticipantViewUISpotlight, VideoPlaceholder, participantsBarPosition = 'bottom', participantsBarLimit, }) => {
15
- const call = useCall();
16
- const { useParticipants, useRemoteParticipants } = useCallStateHooks();
17
- const [participantInSpotlight, ...otherParticipants] = useParticipants();
18
- const remoteParticipants = useRemoteParticipants();
19
- const [participantsBarWrapperElement, setParticipantsBarWrapperElement] = useState(null);
20
- const [participantsBarElement, setParticipantsBarElement] = useState(null);
21
- const [buttonsWrapperElement, setButtonsWrapperElement] = useState(null);
22
- const isSpeakerScreenSharing = hasScreenShare(participantInSpotlight);
23
- const hardLimit = useCalculateHardLimit(buttonsWrapperElement, participantsBarElement, participantsBarLimit);
24
- const isVertical = participantsBarPosition === 'left' || participantsBarPosition === 'right';
25
- const isHorizontal = participantsBarPosition === 'top' || participantsBarPosition === 'bottom';
26
- useEffect(() => {
27
- if (!participantsBarWrapperElement || !call)
28
- return;
29
- const cleanup = call.setViewport(participantsBarWrapperElement);
30
- return () => cleanup();
31
- }, [participantsBarWrapperElement, call]);
32
- const isOneOnOneCall = otherParticipants.length === 1;
33
- useSpeakerLayoutSortPreset(call, isOneOnOneCall);
34
- let participantsWithAppliedLimit = otherParticipants;
35
- const hardLimitToApply = isVertical
36
- ? hardLimit.vertical
37
- : hardLimit.horizontal;
38
- if (typeof participantsBarLimit !== 'undefined' &&
39
- hardLimitToApply !== null) {
40
- participantsWithAppliedLimit = otherParticipants.slice(0,
41
- // subtract 1 if speaker is sharing screen as
42
- // that one is rendered independently from otherParticipants array
43
- hardLimitToApply - (isSpeakerScreenSharing ? 1 : 0));
44
- }
45
- if (!call)
46
- return null;
47
- return (_jsxs("div", Object.assign({ className: "str-video__speaker-layout__wrapper" }, { children: [_jsx(ParticipantsAudio, { participants: remoteParticipants }), _jsxs("div", Object.assign({ className: clsx('str-video__speaker-layout', participantsBarPosition &&
48
- `str-video__speaker-layout--variant-${participantsBarPosition}`) }, { children: [_jsx("div", Object.assign({ className: "str-video__speaker-layout__spotlight" }, { children: participantInSpotlight && (_jsx(ParticipantView, { participant: participantInSpotlight, muteAudio: true, trackType: isSpeakerScreenSharing ? 'screenShareTrack' : 'videoTrack', ParticipantViewUI: ParticipantViewUISpotlight, VideoPlaceholder: VideoPlaceholder })) })), participantsWithAppliedLimit.length > 0 && participantsBarPosition && (_jsxs("div", Object.assign({ ref: setButtonsWrapperElement, className: "str-video__speaker-layout__participants-bar-buttons-wrapper" }, { children: [_jsx("div", Object.assign({ className: "str-video__speaker-layout__participants-bar-wrapper", ref: setParticipantsBarWrapperElement }, { children: _jsxs("div", Object.assign({ ref: setParticipantsBarElement, className: "str-video__speaker-layout__participants-bar" }, { children: [isSpeakerScreenSharing && (_jsx("div", Object.assign({ className: "str-video__speaker-layout__participant-tile" }, { children: _jsx(ParticipantView, { participant: participantInSpotlight, ParticipantViewUI: ParticipantViewUIBar, VideoPlaceholder: VideoPlaceholder, muteAudio: true }) }), participantInSpotlight.sessionId)), participantsWithAppliedLimit.map((participant) => (_jsx("div", Object.assign({ className: "str-video__speaker-layout__participant-tile" }, { children: _jsx(ParticipantView, { participant: participant, ParticipantViewUI: ParticipantViewUIBar, VideoPlaceholder: VideoPlaceholder, muteAudio: true }) }), participant.sessionId)))] })) })), isVertical && (_jsx(VerticalScrollButtons, { scrollWrapper: participantsBarWrapperElement })), isHorizontal && (_jsx(HorizontalScrollButtons, { scrollWrapper: participantsBarWrapperElement }))] })))] }))] })));
49
- };
50
- const HorizontalScrollButtons = ({ scrollWrapper, }) => {
51
- const scrollPosition = useHorizontalScrollPosition(scrollWrapper);
52
- const scrollStartClickHandler = () => {
53
- scrollWrapper === null || scrollWrapper === void 0 ? void 0 : scrollWrapper.scrollBy({ left: -150, behavior: 'smooth' });
54
- };
55
- const scrollEndClickHandler = () => {
56
- scrollWrapper === null || scrollWrapper === void 0 ? void 0 : scrollWrapper.scrollBy({ left: 150, behavior: 'smooth' });
57
- };
58
- return (_jsxs(_Fragment, { children: [scrollPosition && scrollPosition !== 'start' && (_jsx(IconButton, { onClick: scrollStartClickHandler, icon: "caret-left", className: "str-video__speaker-layout__participants-bar--button-left" })), scrollPosition && scrollPosition !== 'end' && (_jsx(IconButton, { onClick: scrollEndClickHandler, icon: "caret-right", className: "str-video__speaker-layout__participants-bar--button-right" }))] }));
59
- };
60
- const VerticalScrollButtons = ({ scrollWrapper, }) => {
61
- const scrollPosition = useVerticalScrollPosition(scrollWrapper);
62
- const scrollTopClickHandler = () => {
63
- scrollWrapper === null || scrollWrapper === void 0 ? void 0 : scrollWrapper.scrollBy({ top: -150, behavior: 'smooth' });
64
- };
65
- const scrollBottomClickHandler = () => {
66
- scrollWrapper === null || scrollWrapper === void 0 ? void 0 : scrollWrapper.scrollBy({ top: 150, behavior: 'smooth' });
67
- };
68
- return (_jsxs(_Fragment, { children: [scrollPosition && scrollPosition !== 'top' && (_jsx(IconButton, { onClick: scrollTopClickHandler, icon: "caret-up", className: "str-video__speaker-layout__participants-bar--button-top" })), scrollPosition && scrollPosition !== 'bottom' && (_jsx(IconButton, { onClick: scrollBottomClickHandler, icon: "caret-down", className: "str-video__speaker-layout__participants-bar--button-bottom" }))] }));
69
- };
70
- const hasScreenShare = (p) => !!(p === null || p === void 0 ? void 0 : p.publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE));
71
- //# sourceMappingURL=SpeakerLayout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpeakerLayout.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/SpeakerLayout.tsx"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { CallTypes, combineComparators, defaultSortPreset, paginatedLayoutSortPreset, screenSharing, speakerLayoutSortPreset, } from '@stream-io/video-client';
3
- export const usePaginatedLayoutSortPreset = (call) => {
4
- useEffect(() => {
5
- if (!call)
6
- return;
7
- call.setSortParticipantsBy(paginatedLayoutSortPreset);
8
- return () => {
9
- resetSortPreset(call);
10
- };
11
- }, [call]);
12
- };
13
- export const useSpeakerLayoutSortPreset = (call, isOneOnOneCall) => {
14
- useEffect(() => {
15
- if (!call)
16
- return;
17
- // always show the remote participant in the spotlight
18
- if (isOneOnOneCall) {
19
- call.setSortParticipantsBy(combineComparators(screenSharing, loggedIn));
20
- }
21
- else {
22
- call.setSortParticipantsBy(speakerLayoutSortPreset);
23
- }
24
- return () => {
25
- resetSortPreset(call);
26
- };
27
- }, [call, isOneOnOneCall]);
28
- };
29
- const resetSortPreset = (call) => {
30
- // reset the sorting to the default for the call type
31
- const callConfig = CallTypes.get(call.type);
32
- call.setSortParticipantsBy(callConfig.options.sortParticipantsBy || defaultSortPreset);
33
- };
34
- const loggedIn = (a, b) => {
35
- if (a.isLocalParticipant)
36
- return 1;
37
- if (b.isLocalParticipant)
38
- return -1;
39
- return 0;
40
- };
41
- //# sourceMappingURL=hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAEL,SAAS,EACT,kBAAkB,EAElB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAsB,EAAE,EAAE;IACrE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,IAAsB,EACtB,cAAuB,EACvB,EAAE;IACF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,sDAAsD;QACtD,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;SACzE;aAAM;YACL,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;SACrD;QACD,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE;IACrC,qDAAqD;IACrD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,qBAAqB,CACxB,UAAU,CAAC,OAAO,CAAC,kBAAkB,IAAI,iBAAiB,CAC3D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAuC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAC5D,IAAI,CAAC,CAAC,kBAAkB;QAAE,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,kBAAkB;QAAE,OAAO,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './LivestreamLayout';
2
- export * from './PaginatedGridLayout';
3
- export * from './SpeakerLayout';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
@@ -1,48 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { forwardRef } from 'react';
3
- import { SfuModels } from '@stream-io/video-client';
4
- import { useCall } from '@stream-io/video-react-bindings';
5
- import { clsx } from 'clsx';
6
- import { Icon, IconButton, MenuToggle, Notification, ParticipantActionsContextMenu, } from '../../../components';
7
- import { Reaction } from '../../../components/Reaction';
8
- import { DebugParticipantPublishQuality } from '../../../components/Debug/DebugParticipantPublishQuality';
9
- import { DebugStatsView } from '../../../components/Debug/DebugStatsView';
10
- import { useIsDebugMode } from '../../../components/Debug/useIsDebugMode';
11
- import { useParticipantViewContext } from './ParticipantView';
12
- const ToggleButton = forwardRef((props, ref) => {
13
- return _jsx(IconButton, { enabled: props.menuShown, icon: "ellipsis", ref: ref });
14
- });
15
- export const DefaultScreenShareOverlay = () => {
16
- const call = useCall();
17
- const stopScreenShare = () => {
18
- call === null || call === void 0 ? void 0 : call.stopPublish(SfuModels.TrackType.SCREEN_SHARE).catch(console.error);
19
- };
20
- return (_jsxs("div", Object.assign({ className: "str-video__screen-share-overlay" }, { children: [_jsx(Icon, { icon: "screen-share-off" }), _jsx("span", Object.assign({ className: "str-video__screen-share-overlay__title" }, { children: "You are presenting your screen" })), _jsxs("button", Object.assign({ onClick: stopScreenShare, className: "str-video__screen-share-overlay__button" }, { children: [_jsx(Icon, { icon: "close" }), " Stop Screen Sharing"] }))] })));
21
- };
22
- export const DefaultParticipantViewUI = ({ indicatorsVisible = true, menuPlacement = 'bottom-end', showMenuButton = true, }) => {
23
- const { participant, participantViewElement, trackType, videoElement } = useParticipantViewContext();
24
- const { publishedTracks } = participant;
25
- const hasScreenShare = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE);
26
- if (participant.isLocalParticipant &&
27
- hasScreenShare &&
28
- trackType === 'screenShareTrack') {
29
- return (_jsxs(_Fragment, { children: [_jsx(DefaultScreenShareOverlay, {}), _jsx(ParticipantDetails, { indicatorsVisible: indicatorsVisible })] }));
30
- }
31
- return (_jsxs(_Fragment, { children: [showMenuButton && (_jsx(MenuToggle, Object.assign({ strategy: "fixed", placement: menuPlacement, ToggleButton: ToggleButton }, { children: _jsx(ParticipantActionsContextMenu, { participantViewElement: participantViewElement, participant: participant, videoElement: videoElement }) }))), _jsx(Reaction, { participant: participant }), _jsx(ParticipantDetails, { indicatorsVisible: indicatorsVisible })] }));
32
- };
33
- export const ParticipantDetails = ({ indicatorsVisible = true, }) => {
34
- const { participant } = useParticipantViewContext();
35
- const { isDominantSpeaker, isLocalParticipant, connectionQuality, publishedTracks, pin, sessionId, name, userId, videoStream, } = participant;
36
- const call = useCall();
37
- const connectionQualityAsString = !!connectionQuality &&
38
- SfuModels.ConnectionQuality[connectionQuality].toLowerCase();
39
- const hasAudio = publishedTracks.includes(SfuModels.TrackType.AUDIO);
40
- const hasVideo = publishedTracks.includes(SfuModels.TrackType.VIDEO);
41
- const canUnpin = !!pin && pin.isLocalPin;
42
- const isDebugMode = useIsDebugMode();
43
- return (_jsxs("div", Object.assign({ className: "str-video__participant-details" }, { children: [_jsxs("span", Object.assign({ className: "str-video__participant-details__name" }, { children: [name || userId, indicatorsVisible && isDominantSpeaker && (_jsx("span", { className: "str-video__participant-details__name--dominant_speaker", title: "Dominant speaker" })), indicatorsVisible && (_jsx(Notification, Object.assign({ isVisible: isLocalParticipant &&
44
- connectionQuality === SfuModels.ConnectionQuality.POOR, message: "Poor connection quality. Please check your internet connection." }, { children: connectionQualityAsString && (_jsx("span", { className: clsx('str-video__participant-details__connection-quality', `str-video__participant-details__connection-quality--${connectionQualityAsString}`), title: connectionQualityAsString })) }))), indicatorsVisible && !hasAudio && (_jsx("span", { className: "str-video__participant-details__name--audio-muted" })), indicatorsVisible && !hasVideo && (_jsx("span", { className: "str-video__participant-details__name--video-muted" })), indicatorsVisible && canUnpin && (
45
- // TODO: remove this monstrosity once we have a proper design
46
- _jsx("span", { title: "Unpin", onClick: () => call === null || call === void 0 ? void 0 : call.unpin(sessionId), style: { cursor: 'pointer' }, className: "str-video__participant-details__name--pinned" }))] })), isDebugMode && (_jsxs(_Fragment, { children: [_jsx(DebugParticipantPublishQuality, { participant: participant, call: call }), _jsx(DebugStatsView, { call: call, sessionId: sessionId, userId: userId, mediaStream: videoStream })] }))] })));
47
- };
48
- //# sourceMappingURL=DefaultParticipantViewUI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultParticipantViewUI.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/DefaultParticipantViewUI.tsx"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { createContext, forwardRef, useContext, useMemo, useState, } from 'react';
3
- import clsx from 'clsx';
4
- import { SfuModels, } from '@stream-io/video-client';
5
- import { Audio } from '../Audio';
6
- import { Video } from '../Video';
7
- import { useTrackElementVisibility } from '../../hooks';
8
- import { DefaultParticipantViewUI } from './DefaultParticipantViewUI';
9
- import { applyElementToRef, isComponentType } from '../../../utilities';
10
- const ParticipantViewContext = createContext(undefined);
11
- export const useParticipantViewContext = () => useContext(ParticipantViewContext);
12
- export const ParticipantView = forwardRef(({ participant, trackType = 'videoTrack', muteAudio, refs: { setVideoElement, setVideoPlaceholderElement } = {}, className, VideoPlaceholder, ParticipantViewUI = DefaultParticipantViewUI, }, ref) => {
13
- const { isLocalParticipant, isSpeaking, isDominantSpeaker, publishedTracks, sessionId, } = participant;
14
- const hasAudio = publishedTracks.includes(SfuModels.TrackType.AUDIO);
15
- const hasVideo = publishedTracks.includes(SfuModels.TrackType.VIDEO);
16
- const hasScreenShareAudio = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE_AUDIO);
17
- const [trackedElement, setTrackedElement] = useState(null);
18
- const [contextVideoElement, setContextVideoElement] = useState(null);
19
- const [contextVideoPlaceholderElement, setContextVideoPlaceholderElement] = useState(null);
20
- // TODO: allow to pass custom ViewportTracker instance from props
21
- useTrackElementVisibility({
22
- sessionId,
23
- trackedElement,
24
- trackType,
25
- });
26
- const participantViewContextValue = useMemo(() => ({
27
- participant,
28
- participantViewElement: trackedElement,
29
- videoElement: contextVideoElement,
30
- videoPlaceholderElement: contextVideoPlaceholderElement,
31
- trackType,
32
- }), [
33
- contextVideoElement,
34
- contextVideoPlaceholderElement,
35
- participant,
36
- trackedElement,
37
- trackType,
38
- ]);
39
- const videoRefs = useMemo(() => ({
40
- setVideoElement: (element) => {
41
- setVideoElement === null || setVideoElement === void 0 ? void 0 : setVideoElement(element);
42
- setContextVideoElement(element);
43
- },
44
- setVideoPlaceholderElement: (element) => {
45
- setVideoPlaceholderElement === null || setVideoPlaceholderElement === void 0 ? void 0 : setVideoPlaceholderElement(element);
46
- setContextVideoPlaceholderElement(element);
47
- },
48
- }), [setVideoElement, setVideoPlaceholderElement]);
49
- return (_jsx("div", Object.assign({ "data-testid": "participant-view", ref: (element) => {
50
- applyElementToRef(ref, element);
51
- setTrackedElement(element);
52
- }, className: clsx('str-video__participant-view', isDominantSpeaker && 'str-video__participant-view--dominant-speaker', isSpeaking && 'str-video__participant-view--speaking', !hasVideo && 'str-video__participant-view--no-video', !hasAudio && 'str-video__participant-view--no-audio', className) }, { children: _jsxs(ParticipantViewContext.Provider, Object.assign({ value: participantViewContextValue }, { children: [!isLocalParticipant && !muteAudio && (_jsxs(_Fragment, { children: [hasAudio && (_jsx(Audio, { participant: participant, trackType: "audioTrack" })), hasScreenShareAudio && (_jsx(Audio, { participant: participant, trackType: "screenShareAudioTrack" }))] })), _jsx(Video, { VideoPlaceholder: VideoPlaceholder, participant: participant, trackType: trackType, refs: videoRefs, autoPlay: true }), isComponentType(ParticipantViewUI) ? (_jsx(ParticipantViewUI, {})) : (ParticipantViewUI)] })) })));
53
- });
54
- //# sourceMappingURL=ParticipantView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ParticipantView.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/ParticipantView.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './ParticipantView';
2
- export * from './DefaultParticipantViewUI';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC"}
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { StreamCallProvider } from '@stream-io/video-react-bindings';
3
- import { MediaDevicesProvider, } from '../../contexts';
4
- export const StreamCall = ({ children, call, mediaDevicesProviderProps, }) => {
5
- return (_jsx(StreamCallProvider, Object.assign({ call: call }, { children: _jsx(MediaDevicesProvider, Object.assign({}, mediaDevicesProviderProps, { children: children })) })));
6
- };
7
- //# sourceMappingURL=StreamCall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StreamCall.js","sourceRoot":"","sources":["../../../../../src/core/components/StreamCall/StreamCall.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EACL,oBAAoB,GAErB,MAAM,gBAAgB,CAAC;AAWxB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,QAAQ,EACR,IAAI,EACJ,yBAAyB,GACU,EAAE,EAAE;IACvC,OAAO,CACL,KAAC,kBAAkB,kBAAC,IAAI,EAAE,IAAI,gBAC5B,KAAC,oBAAoB,oBAAK,yBAAyB,cAChD,QAAQ,IACY,IACJ,CACtB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './StreamCall';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/StreamCall/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { StreamVideoProvider, } from '@stream-io/video-react-bindings';
3
- import { translations } from '../../../translations';
4
- export const StreamVideo = (props) => {
5
- return (_jsx(StreamVideoProvider, Object.assign({ translationsOverrides: translations }, props)));
6
- };
7
- //# sourceMappingURL=StreamVideo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StreamVideo.js","sourceRoot":"","sources":["../../../../../src/core/components/StreamVideo/StreamVideo.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAA0C,EAAE,EAAE;IACxE,OAAO,CACL,KAAC,mBAAmB,kBAAC,qBAAqB,EAAE,YAAY,IAAM,KAAK,EAAI,CACxE,CAAC;AACJ,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './StreamVideo';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/StreamVideo/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}