@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,172 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { useEffect, useState } from 'react';
11
- import { pairwise } from 'rxjs';
12
- import { getAudioDevices, getAudioOutputDevices, getVideoDevices, } from '@stream-io/video-client';
13
- export const useHasBrowserPermissions = (permissionName) => {
14
- const [canSubscribe, enableSubscription] = useState(false);
15
- useEffect(() => {
16
- let permissionState;
17
- const handlePermissionChange = (e) => {
18
- const { state } = e.target;
19
- enableSubscription(state === 'granted');
20
- };
21
- const checkPermissions = () => __awaiter(void 0, void 0, void 0, function* () {
22
- try {
23
- permissionState = yield navigator.permissions.query({
24
- name: permissionName,
25
- });
26
- permissionState.addEventListener('change', handlePermissionChange);
27
- enableSubscription(permissionState.state === 'granted');
28
- }
29
- catch (e) {
30
- // permission does not exist - cannot be queried
31
- // an example would be Firefox - camera, neither microphone perms can be queried
32
- enableSubscription(true);
33
- }
34
- });
35
- checkPermissions();
36
- return () => {
37
- permissionState === null || permissionState === void 0 ? void 0 : permissionState.removeEventListener('change', handlePermissionChange);
38
- };
39
- }, [permissionName]);
40
- return canSubscribe;
41
- };
42
- /**
43
- * Observes changes in connected devices and maintains an up-to-date array of connected MediaDeviceInfo objects.
44
- * @param observeDevices
45
- * @category Device Management
46
- */
47
- export const useDevices = (observeDevices) => {
48
- const [devices, setDevices] = useState([]);
49
- useEffect(() => {
50
- const subscription = observeDevices().subscribe(setDevices);
51
- return () => {
52
- subscription.unsubscribe();
53
- };
54
- }, [observeDevices]);
55
- return devices;
56
- };
57
- /**
58
- * Observes changes and maintains an array of connected video input devices
59
- * @category Device Management
60
- */
61
- export const useVideoDevices = () => useDevices(getVideoDevices);
62
- /**
63
- * Observes changes and maintains an array of connected audio input devices
64
- * @category Device Management
65
- */
66
- export const useAudioInputDevices = () => useDevices(getAudioDevices);
67
- /**
68
- * Observes changes and maintains an array of connected audio output devices
69
- * @category Device Management
70
- */
71
- export const useAudioOutputDevices = () => useDevices(getAudioOutputDevices);
72
- /**
73
- * Verifies that newly selected device id exists among the registered devices.
74
- * If the selected device id is not found among existing devices, switches to the default device.
75
- * The media devices are observed only if a given permission ('camera' resp. 'microphone') is granted in browser.
76
- * Regardless of current permissions settings, an intent to observe devices will take place in Firefox.
77
- * This is due to the fact that Firefox does not allow to query for 'camera' and 'microphone' permissions.
78
- * @param canObserve
79
- * @param devices$
80
- * @param switchToDefaultDevice
81
- * @param selectedDeviceId
82
- * @category Device Management
83
- */
84
- export const useDeviceFallback = (canObserve, devices$, switchToDefaultDevice, selectedDeviceId) => {
85
- useEffect(() => {
86
- if (!canObserve)
87
- return;
88
- const validateDeviceId = devices$.pipe().subscribe((devices) => {
89
- const deviceFound = devices.find((device) => device.deviceId === selectedDeviceId);
90
- if (!deviceFound)
91
- switchToDefaultDevice();
92
- });
93
- return () => {
94
- validateDeviceId.unsubscribe();
95
- };
96
- }, [canObserve, devices$, selectedDeviceId, switchToDefaultDevice]);
97
- };
98
- /**
99
- * Verifies that newly selected video device id exists among the registered devices.
100
- * If the selected device id is not found among existing devices, switches to the default video device.
101
- * The media devices are observed only if 'camera' permission is granted in browser.
102
- * It is integrators responsibility to instruct users how to enable required permissions.
103
- * Regardless of current permissions settings, an intent to observe devices will take place in Firefox.
104
- * This is due to the fact that Firefox does not allow to query for 'camera' and 'microphone' permissions.
105
- * @param switchToDefaultDevice
106
- * @param canObserve
107
- * @param selectedDeviceId
108
- * @category Device Management
109
- */
110
- export const useVideoDeviceFallback = (switchToDefaultDevice, canObserve, selectedDeviceId) => useDeviceFallback(canObserve, getVideoDevices(), switchToDefaultDevice, selectedDeviceId);
111
- /**
112
- * Verifies that newly selected audio input device id exists among the registered devices.
113
- * If the selected device id is not found among existing devices, switches to the default audio input device.
114
- * The media devices are observed only if 'microphone' permission is granted in browser.
115
- * It is integrators responsibility to instruct users how to enable required permissions.
116
- * Regardless of current permissions settings, an intent to observe devices will take place in Firefox.
117
- * This is due to the fact that Firefox does not allow to query for 'camera' and 'microphone' permissions.
118
- * @param switchToDefaultDevice
119
- * @param canObserve
120
- * @param selectedDeviceId
121
- * @category Device Management
122
- */
123
- export const useAudioInputDeviceFallback = (switchToDefaultDevice, canObserve, selectedDeviceId) => useDeviceFallback(canObserve, getAudioDevices(), switchToDefaultDevice, selectedDeviceId);
124
- /**
125
- * Verifies that newly selected audio output device id exists among the registered devices.
126
- * If the selected device id is not found among existing devices, switches to the default audio output device.
127
- * The media devices are observed only if 'microphone' permission is granted in browser.
128
- * It is integrators responsibility to instruct users how to enable required permissions.
129
- * Regardless of current permissions settings, an intent to observe devices will take place in Firefox.
130
- * This is due to the fact that Firefox does not allow to query for 'camera' and 'microphone' permissions.
131
- * @param switchToDefaultDevice
132
- * @param canObserve
133
- * @param selectedDeviceId
134
- * @category Device Management
135
- */
136
- export const useAudioOutputDeviceFallback = (switchToDefaultDevice, canObserve, selectedDeviceId) => useDeviceFallback(canObserve, getAudioOutputDevices(), switchToDefaultDevice, selectedDeviceId);
137
- /**
138
- * Observes devices of certain kind are made unavailable and executes onDisconnect callback.
139
- * @param observeDevices
140
- * @param onDisconnect
141
- * @category Device Management
142
- */
143
- export const useOnUnavailableDevices = (observeDevices, onDisconnect) => {
144
- useEffect(() => {
145
- const subscription = observeDevices
146
- .pipe(pairwise())
147
- .subscribe(([prev, current]) => {
148
- if (prev.length > 0 && current.length === 0)
149
- onDisconnect();
150
- });
151
- return () => subscription.unsubscribe();
152
- }, [observeDevices, onDisconnect]);
153
- };
154
- /**
155
- * Observes disconnect of all video devices and executes onDisconnect callback.
156
- * @param onDisconnect
157
- * @category Device Management
158
- */
159
- export const useOnUnavailableVideoDevices = (onDisconnect) => useOnUnavailableDevices(getVideoDevices(), onDisconnect);
160
- /**
161
- * Observes disconnect of all audio input devices and executes onDisconnect callback.
162
- * @param onDisconnect
163
- * @category Device Management
164
- */
165
- export const useOnUnavailableAudioInputDevices = (onDisconnect) => useOnUnavailableDevices(getAudioDevices(), onDisconnect);
166
- /**
167
- * Observes disconnect of all audio output devices and executes onDisconnect callback.
168
- * @param onDisconnect
169
- * @category Device Management
170
- */
171
- export const useOnUnavailableAudioOutputDevices = (onDisconnect) => useOnUnavailableDevices(getAudioOutputDevices(), onDisconnect);
172
- //# sourceMappingURL=useDevices.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDevices.js","sourceRoot":"","sources":["../../../../src/core/hooks/useDevices.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { useCall } from '@stream-io/video-react-bindings';
3
- export const useTrackElementVisibility = ({ trackedElement, dynascaleManager: propsDynascaleManager, sessionId, trackType, }) => {
4
- const call = useCall();
5
- const manager = propsDynascaleManager !== null && propsDynascaleManager !== void 0 ? propsDynascaleManager : call === null || call === void 0 ? void 0 : call.dynascaleManager;
6
- useEffect(() => {
7
- if (!trackedElement || !manager || !call || trackType === 'none')
8
- return;
9
- const unobserve = manager.trackElementVisibility(trackedElement, sessionId, trackType);
10
- return () => {
11
- unobserve();
12
- };
13
- }, [trackedElement, manager, call, sessionId, trackType]);
14
- };
15
- //# sourceMappingURL=useTrackElementVisibility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTrackElementVisibility.js","sourceRoot":"","sources":["../../../../src/core/hooks/useTrackElementVisibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE1D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAwB,EAC/D,cAAc,EACd,gBAAgB,EAAE,qBAAqB,EACvC,SAAS,EACT,SAAS,GAMV,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAC;IAChE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO;QACzE,MAAM,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAC9C,cAAc,EACd,SAAS,EACT,SAAS,CACV,CAAC;QACF,OAAO,GAAG,EAAE;YACV,SAAS,EAAE,CAAC;QACd,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC"}
@@ -1,139 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { useCallback, useEffect, useRef } from 'react';
11
- import { map } from 'rxjs/operators';
12
- import { CallingState, getVideoStream, OwnCapability, SfuModels, VideoSettingsCameraFacingEnum, watchForAddedDefaultVideoDevice, watchForDisconnectedVideoDevice, } from '@stream-io/video-client';
13
- import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
14
- import { useDebugPreferredVideoCodec } from '../../components/Debug/useIsDebugMode';
15
- import { useHasBrowserPermissions } from './useDevices';
16
- /**
17
- * @internal
18
- * @category Device Management
19
- */
20
- export const useVideoPublisher = ({ initialVideoMuted, videoDeviceId, }) => {
21
- const call = useCall();
22
- const { useCallState, useCallCallingState, useLocalParticipant, useCallSettings, } = useCallStateHooks();
23
- const callState = useCallState();
24
- const callingState = useCallCallingState();
25
- const participant = useLocalParticipant();
26
- const hasBrowserPermissionVideoInput = useHasBrowserPermissions('camera');
27
- const { localParticipant$ } = callState;
28
- const preferredCodec = useDebugPreferredVideoCodec();
29
- const isPublishingVideo = participant === null || participant === void 0 ? void 0 : participant.publishedTracks.includes(SfuModels.TrackType.VIDEO);
30
- const settings = useCallSettings();
31
- const videoSettings = settings === null || settings === void 0 ? void 0 : settings.video;
32
- const targetResolution = videoSettings === null || videoSettings === void 0 ? void 0 : videoSettings.target_resolution;
33
- const publishVideoStream = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
34
- if (!call)
35
- return;
36
- if (!call.permissionsContext.hasPermission(OwnCapability.SEND_VIDEO)) {
37
- throw new Error(`No permission to publish video`);
38
- }
39
- try {
40
- const videoStream = yield getVideoStream({
41
- deviceId: videoDeviceId,
42
- width: targetResolution === null || targetResolution === void 0 ? void 0 : targetResolution.width,
43
- height: targetResolution === null || targetResolution === void 0 ? void 0 : targetResolution.height,
44
- facingMode: toFacingMode(videoSettings === null || videoSettings === void 0 ? void 0 : videoSettings.camera_facing),
45
- });
46
- yield call.publishVideoStream(videoStream, { preferredCodec });
47
- }
48
- catch (e) {
49
- console.log('Failed to publish video stream', e);
50
- }
51
- }), [
52
- call,
53
- preferredCodec,
54
- targetResolution === null || targetResolution === void 0 ? void 0 : targetResolution.height,
55
- targetResolution === null || targetResolution === void 0 ? void 0 : targetResolution.width,
56
- videoDeviceId,
57
- videoSettings === null || videoSettings === void 0 ? void 0 : videoSettings.camera_facing,
58
- ]);
59
- const lastVideoDeviceId = useRef(videoDeviceId);
60
- useEffect(() => {
61
- if (callingState === CallingState.JOINED &&
62
- videoDeviceId !== lastVideoDeviceId.current) {
63
- lastVideoDeviceId.current = videoDeviceId;
64
- publishVideoStream().catch((e) => {
65
- console.error('Failed to publish video stream', e);
66
- });
67
- }
68
- }, [publishVideoStream, videoDeviceId, callingState]);
69
- const initialPublishRun = useRef(false);
70
- useEffect(() => {
71
- if (callingState === CallingState.JOINED &&
72
- !initialPublishRun.current &&
73
- !initialVideoMuted) {
74
- // automatic publishing should happen only when joining the call
75
- // from the lobby, and the video is not muted
76
- publishVideoStream().catch((e) => {
77
- console.error('Failed to publish video stream', e);
78
- });
79
- initialPublishRun.current = true;
80
- }
81
- }, [callingState, initialVideoMuted, publishVideoStream]);
82
- useEffect(() => {
83
- if (!localParticipant$ || !hasBrowserPermissionVideoInput)
84
- return;
85
- const subscription = watchForDisconnectedVideoDevice(localParticipant$.pipe(map((p) => p === null || p === void 0 ? void 0 : p.videoDeviceId))).subscribe(() => __awaiter(void 0, void 0, void 0, function* () {
86
- if (!call)
87
- return;
88
- call.setVideoDevice(undefined);
89
- yield call.stopPublish(SfuModels.TrackType.VIDEO);
90
- }));
91
- return () => {
92
- subscription.unsubscribe();
93
- };
94
- }, [hasBrowserPermissionVideoInput, localParticipant$, call]);
95
- useEffect(() => {
96
- if (!(participant === null || participant === void 0 ? void 0 : participant.videoStream) || !call || !isPublishingVideo)
97
- return;
98
- const [track] = participant.videoStream.getVideoTracks();
99
- const selectedVideoDeviceId = track.getSettings().deviceId;
100
- const republishDefaultDevice = watchForAddedDefaultVideoDevice().subscribe(() => __awaiter(void 0, void 0, void 0, function* () {
101
- if (!(call &&
102
- participant.videoStream &&
103
- selectedVideoDeviceId === 'default'))
104
- return;
105
- // We need to stop the original track first in order
106
- // we can retrieve the new default device stream
107
- track.stop();
108
- const videoStream = yield getVideoStream({
109
- deviceId: 'default',
110
- });
111
- yield call.publishVideoStream(videoStream);
112
- }));
113
- const handleTrackEnded = () => __awaiter(void 0, void 0, void 0, function* () {
114
- if (selectedVideoDeviceId === videoDeviceId) {
115
- const videoStream = yield getVideoStream({
116
- deviceId: videoDeviceId,
117
- });
118
- yield call.publishVideoStream(videoStream);
119
- }
120
- });
121
- track.addEventListener('ended', handleTrackEnded);
122
- return () => {
123
- track.removeEventListener('ended', handleTrackEnded);
124
- republishDefaultDevice.unsubscribe();
125
- };
126
- }, [videoDeviceId, call, participant === null || participant === void 0 ? void 0 : participant.videoStream, isPublishingVideo]);
127
- return publishVideoStream;
128
- };
129
- const toFacingMode = (value) => {
130
- switch (value) {
131
- case VideoSettingsCameraFacingEnum.FRONT:
132
- return 'user';
133
- case VideoSettingsCameraFacingEnum.BACK:
134
- return 'environment';
135
- default:
136
- return undefined;
137
- }
138
- };
139
- //# sourceMappingURL=useVideoPublisher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useVideoPublisher.js","sourceRoot":"","sources":["../../../../src/core/hooks/useVideoPublisher.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './components';
2
- export * from './contexts';
3
- export * from './hooks';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -1,8 +0,0 @@
1
- export * from './useFloatingUIPreset';
2
- export * from './useScrollPosition';
3
- export * from './useToggleAudioMuteState';
4
- export * from './useToggleVideoMuteState';
5
- export * from './useToggleScreenShare';
6
- export * from './useToggleCallRecording';
7
- export * from './useRequestPermission';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC"}
@@ -1,30 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { offset, autoUpdate, size, useFloating, shift, flip, } from '@floating-ui/react';
3
- export const useFloatingUIPreset = ({ placement, strategy, }) => {
4
- const { refs, x, y, update, elements: { domReference, floating }, } = useFloating({
5
- placement,
6
- strategy,
7
- middleware: [
8
- offset(10),
9
- shift(),
10
- flip(),
11
- size({
12
- padding: 10,
13
- apply: ({ availableHeight, elements }) => {
14
- Object.assign(elements.floating.style, {
15
- maxHeight: `${availableHeight}px`,
16
- });
17
- },
18
- }),
19
- ],
20
- });
21
- // handle window resizing
22
- useEffect(() => {
23
- if (!domReference || !floating)
24
- return;
25
- const cleanup = autoUpdate(domReference, floating, update);
26
- return () => cleanup();
27
- }, [domReference, floating, update]);
28
- return { refs, x, y, domReference, floating, strategy };
29
- };
30
- //# sourceMappingURL=useFloatingUIPreset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFloatingUIPreset.js","sourceRoot":"","sources":["../../../src/hooks/useFloatingUIPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,MAAM,EACN,UAAU,EACV,IAAI,EACJ,WAAW,EACX,KAAK,EACL,IAAI,GACL,MAAM,oBAAoB,CAAC;AAG5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,SAAS,EACT,QAAQ,GACyC,EAAE,EAAE;IACrD,MAAM,EACJ,IAAI,EACJ,CAAC,EACD,CAAC,EACD,MAAM,EACN,QAAQ,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,GACrC,GAAG,WAAW,CAAC;QACd,SAAS;QACT,QAAQ;QACR,UAAU,EAAE;YACV,MAAM,CAAC,EAAE,CAAC;YACV,KAAK,EAAE;YACP,IAAI,EAAE;YACN,IAAI,CAAC;gBACH,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;oBACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE;wBACrC,SAAS,EAAE,GAAG,eAAe,IAAI;qBAClC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;SACH;KACF,CAAC,CAAC;IAEH,yBAAyB;IACzB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEvC,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE3D,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAErC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC,CAAC"}
@@ -1,46 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { useCallback, useEffect, useState } from 'react';
11
- import { useCall, useHasPermissions } from '@stream-io/video-react-bindings';
12
- export const useRequestPermission = (permission) => {
13
- const call = useCall();
14
- const hasPermission = useHasPermissions(permission);
15
- const [isAwaitingPermission, setIsAwaitingPermission] = useState(false); // TODO: load with possibly pending state
16
- useEffect(() => {
17
- const reset = () => setIsAwaitingPermission(false);
18
- if (hasPermission)
19
- reset();
20
- }, [hasPermission]);
21
- const requestPermission = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
22
- if (hasPermission)
23
- return true;
24
- const canRequestPermission = !!(call === null || call === void 0 ? void 0 : call.permissionsContext.canRequest(permission));
25
- if (isAwaitingPermission || !canRequestPermission)
26
- return false;
27
- setIsAwaitingPermission(true);
28
- try {
29
- yield (call === null || call === void 0 ? void 0 : call.requestPermissions({
30
- permissions: [permission],
31
- }));
32
- }
33
- catch (error) {
34
- setIsAwaitingPermission(false);
35
- throw new Error(`requestPermission failed: ${error}`);
36
- }
37
- return false;
38
- }), [call, hasPermission, isAwaitingPermission, permission]);
39
- return {
40
- requestPermission,
41
- hasPermission,
42
- canRequestPermission: !!(call === null || call === void 0 ? void 0 : call.permissionsContext.canRequest(permission)),
43
- isAwaitingPermission,
44
- };
45
- };
46
- //# sourceMappingURL=useRequestPermission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRequestPermission.js","sourceRoot":"","sources":["../../../src/hooks/useRequestPermission.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAyB,EAAE,EAAE;IAChE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,yCAAyC;IAElH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,aAAa;YAAE,KAAK,EAAE,CAAC;IAC7B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAS,EAAE;QAC/C,IAAI,aAAa;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,oBAAoB,GACxB,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA,CAAC;QACpD,IAAI,oBAAoB,IAAI,CAAC,oBAAoB;YAAE,OAAO,KAAK,CAAC;QAEhE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI;YACF,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,CAAC;gBAC7B,WAAW,EAAE,CAAC,UAAU,CAAC;aAC1B,CAAC,CAAA,CAAC;SACJ;QAAC,OAAO,KAAK,EAAE;YACd,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;SACvD;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAA,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;IAE5D,OAAO;QACL,iBAAiB;QACjB,aAAa;QACb,oBAAoB,EAAE,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QACvE,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,63 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- const SCROLL_THRESHOLD = 10;
3
- /**
4
- * Hook which observes element's scroll position and returns text value based on the
5
- * position of the scrollbar (`top`, `bottom`, `between` and `null` if no scrollbar is available)
6
- */
7
- export const useVerticalScrollPosition = (scrollElement, threshold = SCROLL_THRESHOLD) => {
8
- const [scrollPosition, setScrollPosition] = useState(null);
9
- useEffect(() => {
10
- if (!scrollElement)
11
- return;
12
- const scrollHandler = () => {
13
- const element = scrollElement;
14
- const hasVerticalScrollbar = element.scrollHeight > element.clientHeight;
15
- if (!hasVerticalScrollbar)
16
- return setScrollPosition(null);
17
- const isAtTheTop = element.scrollTop <= threshold;
18
- if (isAtTheTop)
19
- return setScrollPosition('top');
20
- const isAtTheBottom = Math.abs(element.scrollHeight - element.scrollTop - element.clientHeight) <= threshold;
21
- if (isAtTheBottom)
22
- return setScrollPosition('bottom');
23
- setScrollPosition('between');
24
- };
25
- const resizeObserver = new ResizeObserver(scrollHandler);
26
- resizeObserver.observe(scrollElement);
27
- scrollElement.addEventListener('scroll', scrollHandler);
28
- return () => {
29
- scrollElement.removeEventListener('scroll', scrollHandler);
30
- resizeObserver.disconnect();
31
- };
32
- }, [scrollElement, threshold]);
33
- return scrollPosition;
34
- };
35
- export const useHorizontalScrollPosition = (scrollElement, threshold = SCROLL_THRESHOLD) => {
36
- const [scrollPosition, setScrollPosition] = useState(null);
37
- useEffect(() => {
38
- if (!scrollElement)
39
- return;
40
- const scrollHandler = () => {
41
- const element = scrollElement;
42
- const hasHorizontalScrollbar = element.scrollWidth > element.clientWidth;
43
- if (!hasHorizontalScrollbar)
44
- return setScrollPosition(null);
45
- const isAtTheStart = element.scrollLeft <= threshold;
46
- if (isAtTheStart)
47
- return setScrollPosition('start');
48
- const isAtTheEnd = Math.abs(element.scrollWidth - element.scrollLeft - element.clientWidth) <= threshold;
49
- if (isAtTheEnd)
50
- return setScrollPosition('end');
51
- setScrollPosition('between');
52
- };
53
- const resizeObserver = new ResizeObserver(scrollHandler);
54
- resizeObserver.observe(scrollElement);
55
- scrollElement.addEventListener('scroll', scrollHandler);
56
- return () => {
57
- scrollElement.removeEventListener('scroll', scrollHandler);
58
- resizeObserver.disconnect();
59
- };
60
- }, [scrollElement, threshold]);
61
- return scrollPosition;
62
- };
63
- //# sourceMappingURL=useScrollPosition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useScrollPosition.js","sourceRoot":"","sources":["../../../src/hooks/useScrollPosition.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { useCallback, useRef } from 'react';
11
- import { useCallStateHooks } from '@stream-io/video-react-bindings';
12
- import { OwnCapability, SfuModels } from '@stream-io/video-client';
13
- import { useMediaDevices } from '../core';
14
- import { useRequestPermission } from './useRequestPermission';
15
- export const useToggleAudioMuteState = () => {
16
- const { publishAudioStream, stopPublishingAudio } = useMediaDevices();
17
- const { useLocalParticipant } = useCallStateHooks();
18
- const localParticipant = useLocalParticipant();
19
- const { isAwaitingPermission, requestPermission } = useRequestPermission(OwnCapability.SEND_AUDIO);
20
- // to keep the toggle function as stable as possible
21
- const isAudioMutedReference = useRef(false);
22
- isAudioMutedReference.current = !(localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.publishedTracks.includes(SfuModels.TrackType.AUDIO));
23
- const toggleAudioMuteState = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
24
- if (isAudioMutedReference.current) {
25
- const canPublish = yield requestPermission();
26
- if (canPublish)
27
- return publishAudioStream();
28
- }
29
- if (!isAudioMutedReference.current)
30
- yield stopPublishingAudio();
31
- }), [publishAudioStream, requestPermission, stopPublishingAudio]);
32
- return { toggleAudioMuteState, isAwaitingPermission };
33
- };
34
- //# sourceMappingURL=useToggleAudioMuteState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToggleAudioMuteState.js","sourceRoot":"","sources":["../../../src/hooks/useToggleAudioMuteState.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,eAAe,EAAE,CAAC;IACtE,MAAM,EAAE,mBAAmB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACpD,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAE/C,MAAM,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,GAAG,oBAAoB,CACtE,aAAa,CAAC,UAAU,CACzB,CAAC;IAEF,oDAAoD;IACpD,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5C,qBAAqB,CAAC,OAAO,GAAG,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,eAAe,CAAC,QAAQ,CACzE,SAAS,CAAC,SAAS,CAAC,KAAK,CAC1B,CAAA,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAS,EAAE;QAClD,IAAI,qBAAqB,CAAC,OAAO,EAAE;YACjC,MAAM,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;YAC7C,IAAI,UAAU;gBAAE,OAAO,kBAAkB,EAAE,CAAC;SAC7C;QAED,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAAE,MAAM,mBAAmB,EAAE,CAAC;IAClE,CAAC,CAAA,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEjE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;AACxD,CAAC,CAAC"}
@@ -1,44 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { useCallback, useEffect, useState } from 'react';
11
- import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
12
- export const useToggleCallRecording = () => {
13
- const call = useCall();
14
- const { useIsCallRecordingInProgress } = useCallStateHooks();
15
- const isCallRecordingInProgress = useIsCallRecordingInProgress();
16
- const [isAwaitingResponse, setIsAwaitingResponse] = useState(false);
17
- // TODO: add permissions
18
- useEffect(() => {
19
- // we wait until call.recording_started/stopped event to flips the
20
- // `isCallRecordingInProgress` state variable.
21
- // Once the flip happens, we remove the loading indicator
22
- setIsAwaitingResponse((isAwaiting) => {
23
- if (isAwaiting)
24
- return false;
25
- return isAwaiting;
26
- });
27
- }, [isCallRecordingInProgress]);
28
- const toggleCallRecording = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
29
- try {
30
- setIsAwaitingResponse(true);
31
- if (isCallRecordingInProgress) {
32
- yield (call === null || call === void 0 ? void 0 : call.stopRecording());
33
- }
34
- else {
35
- yield (call === null || call === void 0 ? void 0 : call.startRecording());
36
- }
37
- }
38
- catch (e) {
39
- console.error(`Failed start recording`, e);
40
- }
41
- }), [call, isCallRecordingInProgress]);
42
- return { toggleCallRecording, isAwaitingResponse, isCallRecordingInProgress };
43
- };
44
- //# sourceMappingURL=useToggleCallRecording.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useToggleCallRecording.js","sourceRoot":"","sources":["../../../src/hooks/useToggleCallRecording.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,4BAA4B,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC7D,MAAM,yBAAyB,GAAG,4BAA4B,EAAE,CAAC;IACjE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpE,wBAAwB;IAExB,SAAS,CAAC,GAAG,EAAE;QACb,kEAAkE;QAClE,8CAA8C;QAC9C,yDAAyD;QACzD,qBAAqB,CAAC,CAAC,UAAU,EAAE,EAAE;YACnC,IAAI,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC7B,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAEhC,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAS,EAAE;QACjD,IAAI;YACF,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,yBAAyB,EAAE;gBAC7B,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,EAAE,CAAA,CAAC;aAC7B;iBAAM;gBACL,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,EAAE,CAAA,CAAC;aAC9B;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;SAC5C;IACH,CAAC,CAAA,EAAE,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAEtC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,CAAC;AAChF,CAAC,CAAC"}