@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.
- package/CHANGELOG.md +23 -0
- package/README.md +1 -1
- package/dist/index.cjs.js +2737 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.es.js +2633 -0
- package/dist/index.es.js.map +1 -0
- package/dist/src/components/Button/CompositeButton.d.ts +1 -1
- package/dist/src/core/components/ParticipantView/ParticipantView.d.ts +1 -1
- package/dist/src/hooks/useFloatingUIPreset.d.ts +1 -1
- package/index.ts +3 -3
- package/package.json +17 -15
- package/src/components/Permissions/PermissionRequests.tsx +1 -1
- package/dist/index.js +0 -18
- package/dist/index.js.map +0 -1
- package/dist/src/components/Avatar/Avatar.js +0 -24
- package/dist/src/components/Avatar/Avatar.js.map +0 -1
- package/dist/src/components/Avatar/index.js +0 -2
- package/dist/src/components/Avatar/index.js.map +0 -1
- package/dist/src/components/Button/CompositeButton.js +0 -13
- package/dist/src/components/Button/CompositeButton.js.map +0 -1
- package/dist/src/components/Button/CopyToClipboardButton.js +0 -54
- package/dist/src/components/Button/CopyToClipboardButton.js.map +0 -1
- package/dist/src/components/Button/IconButton.js +0 -26
- package/dist/src/components/Button/IconButton.js.map +0 -1
- package/dist/src/components/Button/TextButton.js +0 -17
- package/dist/src/components/Button/TextButton.js.map +0 -1
- package/dist/src/components/Button/index.js +0 -5
- package/dist/src/components/Button/index.js.map +0 -1
- package/dist/src/components/CallControls/AcceptCallButton.js +0 -27
- package/dist/src/components/CallControls/AcceptCallButton.js.map +0 -1
- package/dist/src/components/CallControls/CallControls.js +0 -5
- package/dist/src/components/CallControls/CallControls.js.map +0 -1
- package/dist/src/components/CallControls/CallStatsButton.js +0 -8
- package/dist/src/components/CallControls/CallStatsButton.js.map +0 -1
- package/dist/src/components/CallControls/CancelCallButton.js +0 -27
- package/dist/src/components/CallControls/CancelCallButton.js.map +0 -1
- package/dist/src/components/CallControls/ReactionsButton.js +0 -45
- package/dist/src/components/CallControls/ReactionsButton.js.map +0 -1
- package/dist/src/components/CallControls/RecordCallButton.js +0 -22
- package/dist/src/components/CallControls/RecordCallButton.js.map +0 -1
- package/dist/src/components/CallControls/ScreenShareButton.js +0 -15
- package/dist/src/components/CallControls/ScreenShareButton.js.map +0 -1
- package/dist/src/components/CallControls/ToggleAudioButton.js +0 -24
- package/dist/src/components/CallControls/ToggleAudioButton.js.map +0 -1
- package/dist/src/components/CallControls/ToggleAudioOutputButton.js +0 -10
- package/dist/src/components/CallControls/ToggleAudioOutputButton.js.map +0 -1
- package/dist/src/components/CallControls/ToggleVideoButton.js +0 -24
- package/dist/src/components/CallControls/ToggleVideoButton.js.map +0 -1
- package/dist/src/components/CallControls/index.js +0 -11
- package/dist/src/components/CallControls/index.js.map +0 -1
- package/dist/src/components/CallParticipantsList/BlockedUserListing.js +0 -18
- package/dist/src/components/CallParticipantsList/BlockedUserListing.js.map +0 -1
- package/dist/src/components/CallParticipantsList/CallParticipantListHeader.js +0 -10
- package/dist/src/components/CallParticipantsList/CallParticipantListHeader.js.map +0 -1
- package/dist/src/components/CallParticipantsList/CallParticipantListing.js +0 -4
- package/dist/src/components/CallParticipantsList/CallParticipantListing.js.map +0 -1
- package/dist/src/components/CallParticipantsList/CallParticipantListingItem.js +0 -128
- package/dist/src/components/CallParticipantsList/CallParticipantListingItem.js.map +0 -1
- package/dist/src/components/CallParticipantsList/CallParticipantsList.js +0 -83
- package/dist/src/components/CallParticipantsList/CallParticipantsList.js.map +0 -1
- package/dist/src/components/CallParticipantsList/EmptyParticipantSearchList.js +0 -7
- package/dist/src/components/CallParticipantsList/EmptyParticipantSearchList.js.map +0 -1
- package/dist/src/components/CallParticipantsList/index.js +0 -4
- package/dist/src/components/CallParticipantsList/index.js.map +0 -1
- package/dist/src/components/CallPreview/CallPreview.js +0 -21
- package/dist/src/components/CallPreview/CallPreview.js.map +0 -1
- package/dist/src/components/CallPreview/index.js +0 -2
- package/dist/src/components/CallPreview/index.js.map +0 -1
- package/dist/src/components/CallRecordingList/CallRecordingList.js +0 -9
- package/dist/src/components/CallRecordingList/CallRecordingList.js.map +0 -1
- package/dist/src/components/CallRecordingList/CallRecordingListHeader.js +0 -6
- package/dist/src/components/CallRecordingList/CallRecordingListHeader.js.map +0 -1
- package/dist/src/components/CallRecordingList/CallRecordingListItem.js +0 -11
- package/dist/src/components/CallRecordingList/CallRecordingListItem.js.map +0 -1
- package/dist/src/components/CallRecordingList/EmptyCallRecordingListing.js +0 -5
- package/dist/src/components/CallRecordingList/EmptyCallRecordingListing.js.map +0 -1
- package/dist/src/components/CallRecordingList/LoadingCallRecordingListing.js +0 -7
- package/dist/src/components/CallRecordingList/LoadingCallRecordingListing.js.map +0 -1
- package/dist/src/components/CallRecordingList/index.js +0 -6
- package/dist/src/components/CallRecordingList/index.js.map +0 -1
- package/dist/src/components/CallStats/CallStats.js +0 -70
- package/dist/src/components/CallStats/CallStats.js.map +0 -1
- package/dist/src/components/CallStats/CallStatsLatencyChart.js +0 -39
- package/dist/src/components/CallStats/CallStatsLatencyChart.js.map +0 -1
- package/dist/src/components/CallStats/index.js +0 -3
- package/dist/src/components/CallStats/index.js.map +0 -1
- package/dist/src/components/Debug/DebugParticipantPublishQuality.js +0 -46
- package/dist/src/components/Debug/DebugParticipantPublishQuality.js.map +0 -1
- package/dist/src/components/Debug/DebugStatsView.js +0 -66
- package/dist/src/components/Debug/DebugStatsView.js.map +0 -1
- package/dist/src/components/Debug/useIsDebugMode.js +0 -18
- package/dist/src/components/Debug/useIsDebugMode.js.map +0 -1
- package/dist/src/components/DeviceSettings/DeviceSelector.js +0 -26
- package/dist/src/components/DeviceSettings/DeviceSelector.js.map +0 -1
- package/dist/src/components/DeviceSettings/DeviceSelectorAudio.js +0 -20
- package/dist/src/components/DeviceSettings/DeviceSelectorAudio.js.map +0 -1
- package/dist/src/components/DeviceSettings/DeviceSelectorVideo.js +0 -11
- package/dist/src/components/DeviceSettings/DeviceSelectorVideo.js.map +0 -1
- package/dist/src/components/DeviceSettings/DeviceSettings.js +0 -15
- package/dist/src/components/DeviceSettings/DeviceSettings.js.map +0 -1
- package/dist/src/components/DeviceSettings/index.js +0 -5
- package/dist/src/components/DeviceSettings/index.js.map +0 -1
- package/dist/src/components/Icon/Icon.js +0 -4
- package/dist/src/components/Icon/Icon.js.map +0 -1
- package/dist/src/components/Icon/index.js +0 -2
- package/dist/src/components/Icon/index.js.map +0 -1
- package/dist/src/components/LoadingIndicator/LoadingIndicator.js +0 -6
- package/dist/src/components/LoadingIndicator/LoadingIndicator.js.map +0 -1
- package/dist/src/components/LoadingIndicator/index.js +0 -2
- package/dist/src/components/LoadingIndicator/index.js.map +0 -1
- package/dist/src/components/Menu/GenericMenu.js +0 -20
- package/dist/src/components/Menu/GenericMenu.js.map +0 -1
- package/dist/src/components/Menu/MenuToggle.js +0 -40
- package/dist/src/components/Menu/MenuToggle.js.map +0 -1
- package/dist/src/components/Menu/index.js +0 -3
- package/dist/src/components/Menu/index.js.map +0 -1
- package/dist/src/components/Notification/Notification.js +0 -25
- package/dist/src/components/Notification/Notification.js.map +0 -1
- package/dist/src/components/Notification/PermissionNotification.js +0 -26
- package/dist/src/components/Notification/PermissionNotification.js.map +0 -1
- package/dist/src/components/Notification/SpeakingWhileMutedNotification.js +0 -50
- package/dist/src/components/Notification/SpeakingWhileMutedNotification.js.map +0 -1
- package/dist/src/components/Notification/index.js +0 -4
- package/dist/src/components/Notification/index.js.map +0 -1
- package/dist/src/components/Permissions/PermissionRequests.js +0 -122
- package/dist/src/components/Permissions/PermissionRequests.js.map +0 -1
- package/dist/src/components/Permissions/index.js +0 -2
- package/dist/src/components/Permissions/index.js.map +0 -1
- package/dist/src/components/Reaction/Reaction.js +0 -29
- package/dist/src/components/Reaction/Reaction.js.map +0 -1
- package/dist/src/components/Reaction/index.js +0 -2
- package/dist/src/components/Reaction/index.js.map +0 -1
- package/dist/src/components/RingingCall/RingingCall.js +0 -45
- package/dist/src/components/RingingCall/RingingCall.js.map +0 -1
- package/dist/src/components/RingingCall/RingingCallControls.js +0 -14
- package/dist/src/components/RingingCall/RingingCallControls.js.map +0 -1
- package/dist/src/components/RingingCall/index.js +0 -3
- package/dist/src/components/RingingCall/index.js.map +0 -1
- package/dist/src/components/Search/SearchInput.js +0 -34
- package/dist/src/components/Search/SearchInput.js.map +0 -1
- package/dist/src/components/Search/SearchResults.js +0 -12
- package/dist/src/components/Search/SearchResults.js.map +0 -1
- package/dist/src/components/Search/hooks/index.js +0 -2
- package/dist/src/components/Search/hooks/index.js.map +0 -1
- package/dist/src/components/Search/hooks/useSearch.js +0 -39
- package/dist/src/components/Search/hooks/useSearch.js.map +0 -1
- package/dist/src/components/Search/index.js +0 -3
- package/dist/src/components/Search/index.js.map +0 -1
- package/dist/src/components/StreamTheme/StreamTheme.js +0 -18
- package/dist/src/components/StreamTheme/StreamTheme.js.map +0 -1
- package/dist/src/components/StreamTheme/index.js +0 -2
- package/dist/src/components/StreamTheme/index.js.map +0 -1
- package/dist/src/components/Tooltip/Tooltip.js +0 -22
- package/dist/src/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/src/components/Tooltip/WithTooltip.js +0 -23
- package/dist/src/components/Tooltip/WithTooltip.js.map +0 -1
- package/dist/src/components/Tooltip/hooks/index.js +0 -2
- package/dist/src/components/Tooltip/hooks/index.js.map +0 -1
- package/dist/src/components/Tooltip/hooks/useEnterLeaveHandlers.js +0 -14
- package/dist/src/components/Tooltip/hooks/useEnterLeaveHandlers.js.map +0 -1
- package/dist/src/components/Tooltip/index.js +0 -3
- package/dist/src/components/Tooltip/index.js.map +0 -1
- package/dist/src/components/Video/VideoPreview.js +0 -75
- package/dist/src/components/Video/VideoPreview.js.map +0 -1
- package/dist/src/components/Video/index.js +0 -5
- package/dist/src/components/Video/index.js.map +0 -1
- package/dist/src/components/index.js +0 -18
- package/dist/src/components/index.js.map +0 -1
- package/dist/src/core/components/Audio/Audio.js +0 -30
- package/dist/src/core/components/Audio/Audio.js.map +0 -1
- package/dist/src/core/components/Audio/ParticipantsAudio.js +0 -21
- package/dist/src/core/components/Audio/ParticipantsAudio.js.map +0 -1
- package/dist/src/core/components/Audio/index.js +0 -3
- package/dist/src/core/components/Audio/index.js.map +0 -1
- package/dist/src/core/components/CallLayout/LivestreamLayout.js +0 -89
- package/dist/src/core/components/CallLayout/LivestreamLayout.js.map +0 -1
- package/dist/src/core/components/CallLayout/PaginatedGridLayout.js +0 -47
- package/dist/src/core/components/CallLayout/PaginatedGridLayout.js.map +0 -1
- package/dist/src/core/components/CallLayout/SpeakerLayout.js +0 -71
- package/dist/src/core/components/CallLayout/SpeakerLayout.js.map +0 -1
- package/dist/src/core/components/CallLayout/hooks.js +0 -41
- package/dist/src/core/components/CallLayout/hooks.js.map +0 -1
- package/dist/src/core/components/CallLayout/index.js +0 -4
- package/dist/src/core/components/CallLayout/index.js.map +0 -1
- package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.js +0 -48
- package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.js.map +0 -1
- package/dist/src/core/components/ParticipantView/ParticipantView.js +0 -54
- package/dist/src/core/components/ParticipantView/ParticipantView.js.map +0 -1
- package/dist/src/core/components/ParticipantView/index.js +0 -3
- package/dist/src/core/components/ParticipantView/index.js.map +0 -1
- package/dist/src/core/components/StreamCall/StreamCall.js +0 -7
- package/dist/src/core/components/StreamCall/StreamCall.js.map +0 -1
- package/dist/src/core/components/StreamCall/index.js +0 -2
- package/dist/src/core/components/StreamCall/index.js.map +0 -1
- package/dist/src/core/components/StreamVideo/StreamVideo.js +0 -7
- package/dist/src/core/components/StreamVideo/StreamVideo.js.map +0 -1
- package/dist/src/core/components/StreamVideo/index.js +0 -2
- package/dist/src/core/components/StreamVideo/index.js.map +0 -1
- package/dist/src/core/components/Video/BaseVideo.js +0 -48
- package/dist/src/core/components/Video/BaseVideo.js.map +0 -1
- package/dist/src/core/components/Video/DefaultVideoPlaceholder.js +0 -9
- package/dist/src/core/components/Video/DefaultVideoPlaceholder.js.map +0 -1
- package/dist/src/core/components/Video/Video.js +0 -82
- package/dist/src/core/components/Video/Video.js.map +0 -1
- package/dist/src/core/components/Video/index.js +0 -3
- package/dist/src/core/components/Video/index.js.map +0 -1
- package/dist/src/core/components/index.js +0 -7
- package/dist/src/core/components/index.js.map +0 -1
- package/dist/src/core/contexts/MediaDevicesContext.js +0 -178
- package/dist/src/core/contexts/MediaDevicesContext.js.map +0 -1
- package/dist/src/core/contexts/index.js +0 -2
- package/dist/src/core/contexts/index.js.map +0 -1
- package/dist/src/core/hooks/index.js +0 -5
- package/dist/src/core/hooks/index.js.map +0 -1
- package/dist/src/core/hooks/useAudioPublisher.js +0 -114
- package/dist/src/core/hooks/useAudioPublisher.js.map +0 -1
- package/dist/src/core/hooks/useCalculateHardLimit.js +0 -56
- package/dist/src/core/hooks/useCalculateHardLimit.js.map +0 -1
- package/dist/src/core/hooks/useDevices.js +0 -172
- package/dist/src/core/hooks/useDevices.js.map +0 -1
- package/dist/src/core/hooks/useTrackElementVisibility.js +0 -15
- package/dist/src/core/hooks/useTrackElementVisibility.js.map +0 -1
- package/dist/src/core/hooks/useVideoPublisher.js +0 -139
- package/dist/src/core/hooks/useVideoPublisher.js.map +0 -1
- package/dist/src/core/index.js +0 -4
- package/dist/src/core/index.js.map +0 -1
- package/dist/src/hooks/index.js +0 -8
- package/dist/src/hooks/index.js.map +0 -1
- package/dist/src/hooks/useFloatingUIPreset.js +0 -30
- package/dist/src/hooks/useFloatingUIPreset.js.map +0 -1
- package/dist/src/hooks/useRequestPermission.js +0 -46
- package/dist/src/hooks/useRequestPermission.js.map +0 -1
- package/dist/src/hooks/useScrollPosition.js +0 -63
- package/dist/src/hooks/useScrollPosition.js.map +0 -1
- package/dist/src/hooks/useToggleAudioMuteState.js +0 -34
- package/dist/src/hooks/useToggleAudioMuteState.js.map +0 -1
- package/dist/src/hooks/useToggleCallRecording.js +0 -44
- package/dist/src/hooks/useToggleCallRecording.js.map +0 -1
- package/dist/src/hooks/useToggleScreenShare.js +0 -38
- package/dist/src/hooks/useToggleScreenShare.js.map +0 -1
- package/dist/src/hooks/useToggleVideoMuteState.js +0 -34
- package/dist/src/hooks/useToggleVideoMuteState.js.map +0 -1
- package/dist/src/translations/en.json +0 -73
- package/dist/src/translations/index.js +0 -3
- package/dist/src/translations/index.js.map +0 -1
- package/dist/src/types/components.js +0 -2
- package/dist/src/types/components.js.map +0 -1
- package/dist/src/types/index.js +0 -2
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/utilities/applyElementToRef.js +0 -8
- package/dist/src/utilities/applyElementToRef.js.map +0 -1
- package/dist/src/utilities/chunk.js +0 -5
- package/dist/src/utilities/chunk.js.map +0 -1
- package/dist/src/utilities/index.js +0 -4
- package/dist/src/utilities/index.js.map +0 -1
- package/dist/src/utilities/isComponentType.js +0 -7
- package/dist/src/utilities/isComponentType.js.map +0 -1
- package/dist/version.d.ts +0 -1
- package/dist/version.js +0 -2
- package/dist/version.js.map +0 -1
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Restricted, useCallStateHooks, useI18n, } from '@stream-io/video-react-bindings';
|
|
3
|
-
import { OwnCapability, SfuModels } from '@stream-io/video-client';
|
|
4
|
-
import { CompositeButton, IconButton } from '../Button/';
|
|
5
|
-
import { useMediaDevices } from '../../core';
|
|
6
|
-
import { DeviceSelectorVideo } from '../DeviceSettings';
|
|
7
|
-
import { PermissionNotification } from '../Notification';
|
|
8
|
-
import { useToggleVideoMuteState } from '../../hooks';
|
|
9
|
-
export const ToggleVideoPreviewButton = (props) => {
|
|
10
|
-
const { toggleInitialVideoMuteState, initialVideoState } = useMediaDevices();
|
|
11
|
-
const { t } = useI18n();
|
|
12
|
-
const { caption = t('Video'), Menu = DeviceSelectorVideo } = props;
|
|
13
|
-
return (_jsx(CompositeButton, Object.assign({ Menu: Menu, active: !initialVideoState.enabled, caption: caption }, { children: _jsx(IconButton, { icon: initialVideoState.enabled ? 'camera' : 'camera-off', onClick: toggleInitialVideoMuteState }) })));
|
|
14
|
-
};
|
|
15
|
-
export const ToggleVideoPublishingButton = (props) => {
|
|
16
|
-
const { useLocalParticipant } = useCallStateHooks();
|
|
17
|
-
const localParticipant = useLocalParticipant();
|
|
18
|
-
const { t } = useI18n();
|
|
19
|
-
const { caption = t('Video'), Menu = DeviceSelectorVideo } = props;
|
|
20
|
-
const isVideoMute = !(localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.publishedTracks.includes(SfuModels.TrackType.VIDEO));
|
|
21
|
-
const { toggleVideoMuteState: handleClick, isAwaitingPermission } = useToggleVideoMuteState();
|
|
22
|
-
return (_jsx(Restricted, Object.assign({ requiredGrants: [OwnCapability.SEND_VIDEO] }, { children: _jsx(PermissionNotification, Object.assign({ permission: OwnCapability.SEND_VIDEO, isAwaitingApproval: isAwaitingPermission, messageApproved: t('You can now share your video.'), messageAwaitingApproval: t('Awaiting for an approval to share your video.'), messageRevoked: t('You can no longer share your video.') }, { children: _jsx(CompositeButton, Object.assign({ Menu: Menu, active: isVideoMute, caption: caption }, { children: _jsx(IconButton, { icon: isVideoMute ? 'camera-off' : 'camera', onClick: handleClick }) })) })) })));
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=ToggleVideoButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleVideoButton.js","sourceRoot":"","sources":["../../../../src/components/CallControls/ToggleVideoButton.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,OAAO,GACR,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAOtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,KAAoC,EACpC,EAAE;IACF,MAAM,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,GAAG,eAAe,EAAE,CAAC;IAC7E,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IACxB,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE,GAAG,KAAK,CAAC;IAEnE,OAAO,CACL,KAAC,eAAe,kBACd,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAClC,OAAO,EAAE,OAAO,gBAEhB,KAAC,UAAU,IACT,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,EACzD,OAAO,EAAE,2BAA2B,GACpC,IACc,CACnB,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,KAAuC,EACvC,EAAE;IACF,MAAM,EAAE,mBAAmB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACpD,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE,GAAG,KAAK,CAAC;IAEnE,MAAM,WAAW,GAAG,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,eAAe,CAAC,QAAQ,CAC7D,SAAS,CAAC,SAAS,CAAC,KAAK,CAC1B,CAAA,CAAC;IAEF,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAC/D,uBAAuB,EAAE,CAAC;IAE5B,OAAO,CACL,KAAC,UAAU,kBAAC,cAAc,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,gBACpD,KAAC,sBAAsB,kBACrB,UAAU,EAAE,aAAa,CAAC,UAAU,EACpC,kBAAkB,EAAE,oBAAoB,EACxC,eAAe,EAAE,CAAC,CAAC,+BAA+B,CAAC,EACnD,uBAAuB,EAAE,CAAC,CACxB,+CAA+C,CAChD,EACD,cAAc,EAAE,CAAC,CAAC,qCAAqC,CAAC,gBAExD,KAAC,eAAe,kBAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,gBAChE,KAAC,UAAU,IACT,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAC3C,OAAO,EAAE,WAAW,GACpB,IACc,IACK,IACd,CACd,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export * from './AcceptCallButton';
|
|
2
|
-
export * from './CallControls';
|
|
3
|
-
export * from './CallStatsButton';
|
|
4
|
-
export * from './CancelCallButton';
|
|
5
|
-
export * from './ReactionsButton';
|
|
6
|
-
export * from './RecordCallButton';
|
|
7
|
-
export * from './ScreenShareButton';
|
|
8
|
-
export * from './ToggleAudioButton';
|
|
9
|
-
export * from './ToggleAudioOutputButton';
|
|
10
|
-
export * from './ToggleVideoButton';
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CallControls/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Restricted, useCall } from '@stream-io/video-react-bindings';
|
|
3
|
-
import { OwnCapability } from '@stream-io/video-client';
|
|
4
|
-
import { TextButton } from '../Button';
|
|
5
|
-
export const BlockedUserListing = ({ data }) => {
|
|
6
|
-
if (!data.length)
|
|
7
|
-
return null;
|
|
8
|
-
return (_jsx(_Fragment, { children: _jsx("div", Object.assign({ className: "str-video__participant-listing" }, { children: data.map((userId) => (_jsx(BlockedUserListingItem, { userId: userId }, userId))) })) }));
|
|
9
|
-
};
|
|
10
|
-
const BlockedUserListingItem = ({ userId }) => {
|
|
11
|
-
const call = useCall();
|
|
12
|
-
const unblockUserClickHandler = () => {
|
|
13
|
-
if (userId)
|
|
14
|
-
call === null || call === void 0 ? void 0 : call.unblockUser(userId);
|
|
15
|
-
};
|
|
16
|
-
return (_jsxs("div", Object.assign({ className: "str-video__participant-listing-item" }, { children: [_jsx("div", Object.assign({ className: "str-video__participant-listing-item__display-name" }, { children: userId })), _jsx(Restricted, Object.assign({ requiredGrants: [OwnCapability.BLOCK_USERS] }, { children: _jsx(TextButton, Object.assign({ onClick: unblockUserClickHandler }, { children: "Unblock" })) }))] })));
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=BlockedUserListing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BlockedUserListing.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/BlockedUserListing.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAsB,EAAE,EAAE;IACjE,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO,CACL,4BACE,4BAAK,SAAS,EAAC,gCAAgC,gBAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACpB,KAAC,sBAAsB,IAAc,MAAM,EAAE,MAAM,IAAtB,MAAM,CAAoB,CACxD,CAAC,IACE,GACL,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;IAChE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACnC,IAAI,MAAM;YAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,qCAAqC,iBAClD,4BAAK,SAAS,EAAC,mDAAmD,gBAC/D,MAAM,IACH,EACN,KAAC,UAAU,kBAAC,cAAc,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,gBACrD,KAAC,UAAU,kBAAC,OAAO,EAAE,uBAAuB,6BAAsB,IACvD,KACT,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useCallStateHooks, useI18n } from '@stream-io/video-react-bindings';
|
|
3
|
-
export const CallParticipantListHeader = ({ onClose, }) => {
|
|
4
|
-
const { useParticipants, useAnonymousParticipantCount } = useCallStateHooks();
|
|
5
|
-
const participants = useParticipants();
|
|
6
|
-
const anonymousParticipantCount = useAnonymousParticipantCount();
|
|
7
|
-
const { t } = useI18n();
|
|
8
|
-
return (_jsxs("div", Object.assign({ className: "str-video__participant-list-header" }, { children: [_jsxs("div", Object.assign({ className: "str-video__participant-list-header__title" }, { children: [t('Participants'), ' ', _jsxs("span", Object.assign({ className: "str-video__participant-list-header__title-count" }, { children: ["(", participants.length, ")"] })), anonymousParticipantCount > 0 && (_jsx("span", Object.assign({ className: "str-video__participant-list-header__title-anonymous" }, { children: t('Anonymous', { count: anonymousParticipantCount }) })))] })), _jsx("button", Object.assign({ onClick: onClose, className: "str-video__participant-list-header__close-button" }, { children: _jsx("span", { className: "str-video__participant-list-header__close-button--icon" }) }))] })));
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=CallParticipantListHeader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallParticipantListHeader.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/CallParticipantListHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAO7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,OAAO,GACwB,EAAE,EAAE;IACnC,MAAM,EAAE,eAAe,EAAE,4BAA4B,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC9E,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,yBAAyB,GAAG,4BAA4B,EAAE,CAAC;IACjE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,OAAO,CACL,6BAAK,SAAS,EAAC,oCAAoC,iBACjD,6BAAK,SAAS,EAAC,2CAA2C,iBACvD,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,EACvB,8BAAM,SAAS,EAAC,iDAAiD,sBAC7D,YAAY,CAAC,MAAM,UAChB,EACN,yBAAyB,GAAG,CAAC,IAAI,CAChC,6BAAM,SAAS,EAAC,qDAAqD,gBAClE,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,IAChD,CACR,KACG,EACN,+BACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,kDAAkD,gBAE5D,eAAM,SAAS,EAAC,wDAAwD,GAAG,IACpE,KACL,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { CallParticipantListingItem } from './CallParticipantListingItem';
|
|
3
|
-
export const CallParticipantListing = ({ data, }) => (_jsx("div", Object.assign({ className: "str-video__participant-listing" }, { children: data.map((participant) => (_jsx(CallParticipantListingItem, { participant: participant }, participant.sessionId))) })));
|
|
4
|
-
//# sourceMappingURL=CallParticipantListing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallParticipantListing.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/CallParticipantListing.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAQ1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,IAAI,GACwB,EAAE,EAAE,CAAC,CACjC,4BAAK,SAAS,EAAC,gCAAgC,gBAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CACzB,KAAC,0BAA0B,IAEzB,WAAW,EAAE,WAAW,IADnB,WAAW,CAAC,SAAS,CAE1B,CACH,CAAC,IACE,CACP,CAAC"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import clsx from 'clsx';
|
|
3
|
-
import { forwardRef, useEffect, useState, } from 'react';
|
|
4
|
-
import { Restricted, useCall, useConnectedUser, useI18n, } from '@stream-io/video-react-bindings';
|
|
5
|
-
import { OwnCapability, SfuModels, } from '@stream-io/video-client';
|
|
6
|
-
import { IconButton } from '../Button';
|
|
7
|
-
import { GenericMenu, GenericMenuButtonItem, MenuToggle, } from '../Menu';
|
|
8
|
-
import { WithTooltip } from '../Tooltip';
|
|
9
|
-
import { Icon } from '../Icon';
|
|
10
|
-
export const CallParticipantListingItem = ({ participant, DisplayName = DefaultDisplayName, }) => {
|
|
11
|
-
const isAudioOn = participant.publishedTracks.includes(SfuModels.TrackType.AUDIO);
|
|
12
|
-
const isVideoOn = participant.publishedTracks.includes(SfuModels.TrackType.VIDEO);
|
|
13
|
-
const isPinned = !!participant.pin;
|
|
14
|
-
const { t } = useI18n();
|
|
15
|
-
return (_jsxs("div", Object.assign({ className: "str-video__participant-listing-item" }, { children: [_jsx(DisplayName, { participant: participant }), _jsxs("div", Object.assign({ className: "str-video__participant-listing-item__media-indicator-group" }, { children: [_jsx(MediaIndicator, { title: isAudioOn ? t('Microphone on') : t('Microphone off'), className: clsx('str-video__participant-listing-item__icon', `str-video__participant-listing-item__icon-${isAudioOn ? 'mic' : 'mic-off'}`) }), _jsx(MediaIndicator, { title: isVideoOn ? t('Camera on') : t('Camera off'), className: clsx('str-video__participant-listing-item__icon', `str-video__participant-listing-item__icon-${isVideoOn ? 'camera' : 'camera-off'}`) }), isPinned && (_jsx(MediaIndicator, { title: t('Pinned'), className: clsx('str-video__participant-listing-item__icon', 'str-video__participant-listing-item__icon-pinned') })), _jsx(MenuToggle, Object.assign({ placement: "bottom-end", ToggleButton: ToggleButton }, { children: _jsx(ParticipantActionsContextMenu, { participant: participant }) }))] }))] })));
|
|
16
|
-
};
|
|
17
|
-
const MediaIndicator = (props) => (_jsx(WithTooltip, Object.assign({}, props)));
|
|
18
|
-
// todo: implement display device flag
|
|
19
|
-
const DefaultDisplayName = ({ participant }) => {
|
|
20
|
-
const connectedUser = useConnectedUser();
|
|
21
|
-
const { t } = useI18n();
|
|
22
|
-
const meFlag = participant.userId === (connectedUser === null || connectedUser === void 0 ? void 0 : connectedUser.id) ? t('Me') : '';
|
|
23
|
-
const nameOrId = participant.name || participant.userId || t('Unknown');
|
|
24
|
-
let displayName;
|
|
25
|
-
if (!participant.name) {
|
|
26
|
-
displayName = meFlag || nameOrId || t('Unknown');
|
|
27
|
-
}
|
|
28
|
-
else if (meFlag) {
|
|
29
|
-
displayName = `${nameOrId} (${meFlag})`;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
displayName = nameOrId;
|
|
33
|
-
}
|
|
34
|
-
return (_jsx(WithTooltip, Object.assign({ className: "str-video__participant-listing-item__display-name", title: displayName }, { children: displayName })));
|
|
35
|
-
};
|
|
36
|
-
const ToggleButton = forwardRef((props, ref) => {
|
|
37
|
-
return _jsx(IconButton, { enabled: props.menuShown, icon: "ellipsis", ref: ref });
|
|
38
|
-
});
|
|
39
|
-
export const ParticipantActionsContextMenu = ({ participant, participantViewElement, videoElement, }) => {
|
|
40
|
-
const [fullscreenModeOn, setFullscreenModeOn] = useState(!!document.fullscreenElement);
|
|
41
|
-
const [pictureInPictureElement, setPictureInPictureElement] = useState(document.pictureInPictureElement);
|
|
42
|
-
const call = useCall();
|
|
43
|
-
const { t } = useI18n();
|
|
44
|
-
const { pin, publishedTracks, sessionId, userId } = participant;
|
|
45
|
-
const hasAudio = publishedTracks.includes(SfuModels.TrackType.AUDIO);
|
|
46
|
-
const hasVideo = publishedTracks.includes(SfuModels.TrackType.VIDEO);
|
|
47
|
-
const hasScreenShare = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE);
|
|
48
|
-
const hasScreenShareAudio = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE_AUDIO);
|
|
49
|
-
const blockUser = () => call === null || call === void 0 ? void 0 : call.blockUser(userId);
|
|
50
|
-
const muteAudio = () => call === null || call === void 0 ? void 0 : call.muteUser(userId, 'audio');
|
|
51
|
-
const muteVideo = () => call === null || call === void 0 ? void 0 : call.muteUser(userId, 'video');
|
|
52
|
-
const muteScreenShare = () => call === null || call === void 0 ? void 0 : call.muteUser(userId, 'screenshare');
|
|
53
|
-
const muteScreenShareAudio = () => call === null || call === void 0 ? void 0 : call.muteUser(userId, 'screenshare_audio');
|
|
54
|
-
const grantPermission = (permission) => () => {
|
|
55
|
-
call === null || call === void 0 ? void 0 : call.updateUserPermissions({
|
|
56
|
-
user_id: userId,
|
|
57
|
-
grant_permissions: [permission],
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
const revokePermission = (permission) => () => {
|
|
61
|
-
call === null || call === void 0 ? void 0 : call.updateUserPermissions({
|
|
62
|
-
user_id: userId,
|
|
63
|
-
revoke_permissions: [permission],
|
|
64
|
-
});
|
|
65
|
-
};
|
|
66
|
-
const toggleParticipantPinnedAt = () => {
|
|
67
|
-
if (pin) {
|
|
68
|
-
call === null || call === void 0 ? void 0 : call.unpin(sessionId);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
call === null || call === void 0 ? void 0 : call.pin(sessionId);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
const pinForEveryone = () => {
|
|
75
|
-
call === null || call === void 0 ? void 0 : call.pinForEveryone({
|
|
76
|
-
user_id: userId,
|
|
77
|
-
session_id: sessionId,
|
|
78
|
-
}).catch((err) => {
|
|
79
|
-
console.error(`Failed to pin participant ${userId}`, err);
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
const unpinForEveryone = () => {
|
|
83
|
-
call === null || call === void 0 ? void 0 : call.unpinForEveryone({
|
|
84
|
-
user_id: userId,
|
|
85
|
-
session_id: sessionId,
|
|
86
|
-
}).catch((err) => {
|
|
87
|
-
console.error(`Failed to unpin participant ${userId}`, err);
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
|
-
const toggleFullscreenMode = () => {
|
|
91
|
-
if (!fullscreenModeOn) {
|
|
92
|
-
return participantViewElement === null || participantViewElement === void 0 ? void 0 : participantViewElement.requestFullscreen().then(() => setFullscreenModeOn(true)).catch(console.error);
|
|
93
|
-
}
|
|
94
|
-
document
|
|
95
|
-
.exitFullscreen()
|
|
96
|
-
.catch(console.error)
|
|
97
|
-
.finally(() => setFullscreenModeOn(false));
|
|
98
|
-
};
|
|
99
|
-
useEffect(() => {
|
|
100
|
-
if (!videoElement)
|
|
101
|
-
return;
|
|
102
|
-
const handlePictureInPicture = () => {
|
|
103
|
-
setPictureInPictureElement(document.pictureInPictureElement);
|
|
104
|
-
};
|
|
105
|
-
videoElement.addEventListener('enterpictureinpicture', handlePictureInPicture);
|
|
106
|
-
videoElement.addEventListener('leavepictureinpicture', handlePictureInPicture);
|
|
107
|
-
return () => {
|
|
108
|
-
videoElement.removeEventListener('enterpictureinpicture', handlePictureInPicture);
|
|
109
|
-
videoElement.removeEventListener('leavepictureinpicture', handlePictureInPicture);
|
|
110
|
-
};
|
|
111
|
-
}, [videoElement]);
|
|
112
|
-
const togglePictureInPicture = () => {
|
|
113
|
-
if (videoElement && pictureInPictureElement !== videoElement) {
|
|
114
|
-
return videoElement
|
|
115
|
-
.requestPictureInPicture()
|
|
116
|
-
.catch(console.error);
|
|
117
|
-
}
|
|
118
|
-
document.exitPictureInPicture().catch(console.error);
|
|
119
|
-
};
|
|
120
|
-
return (_jsxs(GenericMenu, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ onClick: toggleParticipantPinnedAt, disabled: pin && !pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), pin ? t('Unpin') : t('Pin')] })), _jsxs(Restricted, Object.assign({ requiredGrants: [OwnCapability.PIN_FOR_EVERYONE] }, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ onClick: pinForEveryone, disabled: pin && !pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), t('Pin for everyone')] })), _jsxs(GenericMenuButtonItem, Object.assign({ onClick: unpinForEveryone, disabled: !pin || pin.isLocalPin }, { children: [_jsx(Icon, { icon: "pin" }), t('Unpin for everyone')] }))] })), _jsx(Restricted, Object.assign({ requiredGrants: [OwnCapability.BLOCK_USERS] }, { children: _jsxs(GenericMenuButtonItem, Object.assign({ onClick: blockUser }, { children: [_jsx(Icon, { icon: "not-allowed" }), t('Block')] })) })), _jsxs(Restricted, Object.assign({ requiredGrants: [OwnCapability.MUTE_USERS] }, { children: [_jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasVideo, onClick: muteVideo }, { children: [_jsx(Icon, { icon: "camera-off-outline" }), t('Turn off video')] })), _jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasScreenShare, onClick: muteScreenShare }, { children: [_jsx(Icon, { icon: "screen-share-off" }), t('Turn off screen share')] })), _jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasAudio, onClick: muteAudio }, { children: [_jsx(Icon, { icon: "no-audio" }), t('Mute audio')] })), _jsxs(GenericMenuButtonItem, Object.assign({ disabled: !hasScreenShareAudio, onClick: muteScreenShareAudio }, { children: [_jsx(Icon, { icon: "no-audio" }), t('Mute screen share audio')] }))] })), participantViewElement && (_jsx(GenericMenuButtonItem, Object.assign({ onClick: toggleFullscreenMode }, { children: t('{{ direction }} fullscreen', {
|
|
121
|
-
direction: fullscreenModeOn ? t('Leave') : t('Enter'),
|
|
122
|
-
}) }))), videoElement && document.pictureInPictureEnabled && (_jsx(GenericMenuButtonItem, Object.assign({ onClick: togglePictureInPicture }, { children: t('{{ direction }} picture-in-picture', {
|
|
123
|
-
direction: pictureInPictureElement === videoElement
|
|
124
|
-
? t('Leave')
|
|
125
|
-
: t('Enter'),
|
|
126
|
-
}) }))), _jsxs(Restricted, Object.assign({ requiredGrants: [OwnCapability.UPDATE_CALL_PERMISSIONS] }, { children: [_jsx(GenericMenuButtonItem, Object.assign({ onClick: grantPermission(OwnCapability.SEND_AUDIO) }, { children: t('Allow audio') })), _jsx(GenericMenuButtonItem, Object.assign({ onClick: grantPermission(OwnCapability.SEND_VIDEO) }, { children: t('Allow video') })), _jsx(GenericMenuButtonItem, Object.assign({ onClick: grantPermission(OwnCapability.SCREENSHARE) }, { children: t('Allow screen sharing') })), _jsx(GenericMenuButtonItem, Object.assign({ onClick: revokePermission(OwnCapability.SEND_AUDIO) }, { children: t('Disable audio') })), _jsx(GenericMenuButtonItem, Object.assign({ onClick: revokePermission(OwnCapability.SEND_VIDEO) }, { children: t('Disable video') })), _jsx(GenericMenuButtonItem, Object.assign({ onClick: revokePermission(OwnCapability.SCREENSHARE) }, { children: t('Disable screen sharing') }))] }))] }));
|
|
127
|
-
};
|
|
128
|
-
//# sourceMappingURL=CallParticipantListingItem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallParticipantListingItem.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/CallParticipantListingItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,83 +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, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { forwardRef, useCallback, useState, } from 'react';
|
|
14
|
-
import { Restricted, useCall, useCallStateHooks, } from '@stream-io/video-react-bindings';
|
|
15
|
-
import { name, OwnCapability, } from '@stream-io/video-client';
|
|
16
|
-
import { clsx } from 'clsx';
|
|
17
|
-
import { BlockedUserListing } from './BlockedUserListing';
|
|
18
|
-
import { CopyToClipboardButtonWithPopup, IconButton, TextButton, } from '../Button';
|
|
19
|
-
import { CallParticipantListHeader } from './CallParticipantListHeader';
|
|
20
|
-
import { CallParticipantListing } from './CallParticipantListing';
|
|
21
|
-
import { EmptyParticipantSearchList } from './EmptyParticipantSearchList';
|
|
22
|
-
import { LoadingIndicator } from '../LoadingIndicator';
|
|
23
|
-
import { SearchInput, SearchResults } from '../Search';
|
|
24
|
-
import { useSearch } from '../Search/hooks';
|
|
25
|
-
import { GenericMenu, GenericMenuButtonItem, MenuToggle, } from '../Menu';
|
|
26
|
-
const UserListTypes = {
|
|
27
|
-
active: 'Active users',
|
|
28
|
-
blocked: 'Blocked users',
|
|
29
|
-
};
|
|
30
|
-
const DEFAULT_DEBOUNCE_SEARCH_INTERVAL = 200;
|
|
31
|
-
export const CallParticipantsList = ({ onClose, activeUsersSearchFn, blockedUsersSearchFn, debounceSearchInterval, }) => {
|
|
32
|
-
const [searchQuery, setSearchQuery] = useState('');
|
|
33
|
-
const [userListType, setUserListType] = useState('active');
|
|
34
|
-
const exitSearch = useCallback(() => setSearchQuery(''), []);
|
|
35
|
-
return (_jsxs("div", Object.assign({ className: "str-video__participant-list" }, { children: [_jsx(CallParticipantListHeader, { onClose: onClose }), _jsx(SearchInput, { value: searchQuery, onChange: ({ currentTarget }) => setSearchQuery(currentTarget.value), exitSearch: exitSearch, isActive: !!searchQuery }), _jsx(CallParticipantListContentHeader, { userListType: userListType, setUserListType: setUserListType }), _jsxs("div", Object.assign({ className: "str-video__participant-list__content" }, { children: [userListType === 'active' && (_jsx(ActiveUsersSearchResults, { searchQuery: searchQuery, activeUsersSearchFn: activeUsersSearchFn, debounceSearchInterval: debounceSearchInterval })), userListType === 'blocked' && (_jsx(BlockedUsersSearchResults, { searchQuery: searchQuery, blockedUsersSearchFn: blockedUsersSearchFn, debounceSearchInterval: debounceSearchInterval }))] })), _jsx("div", Object.assign({ className: "str-video__participant-list__footer" }, { children: _jsx(CopyToClipboardButtonWithPopup, { Button: InviteLinkButton, copyValue: typeof window !== 'undefined' ? window.location.href : '' }) }))] })));
|
|
36
|
-
};
|
|
37
|
-
const CallParticipantListContentHeader = ({ userListType, setUserListType, }) => {
|
|
38
|
-
const call = useCall();
|
|
39
|
-
const muteAll = () => {
|
|
40
|
-
call === null || call === void 0 ? void 0 : call.muteAllUsers('audio');
|
|
41
|
-
};
|
|
42
|
-
return (_jsxs("div", Object.assign({ className: "str-video__participant-list__content-header" }, { children: [_jsxs("div", Object.assign({ className: "str-video__participant-list__content-header-title" }, { children: [_jsx("span", { children: UserListTypes[userListType] }), userListType === 'active' && (_jsx(Restricted, Object.assign({ requiredGrants: [OwnCapability.MUTE_USERS], hasPermissionsOnly: true }, { children: _jsx(TextButton, Object.assign({ onClick: muteAll }, { children: "Mute all" })) })))] })), _jsx(MenuToggle, Object.assign({ placement: "bottom-end", ToggleButton: ToggleButton }, { children: _jsx(GenericMenu, { children: Object.keys(UserListTypes).map((lt) => (_jsx(GenericMenuButtonItem, Object.assign({ "aria-selected": lt === userListType, onClick: () => setUserListType(lt) }, { children: UserListTypes[lt] }), lt))) }) }))] })));
|
|
43
|
-
};
|
|
44
|
-
const ActiveUsersSearchResults = ({ searchQuery, activeUsersSearchFn: activeUsersSearchFnFromProps, debounceSearchInterval = DEFAULT_DEBOUNCE_SEARCH_INTERVAL, }) => {
|
|
45
|
-
const { useParticipants } = useCallStateHooks();
|
|
46
|
-
const participants = useParticipants({ sortBy: name });
|
|
47
|
-
const activeUsersSearchFn = useCallback((queryString) => {
|
|
48
|
-
const queryRegExp = new RegExp(queryString, 'i');
|
|
49
|
-
return Promise.resolve(participants.filter((participant) => {
|
|
50
|
-
return participant.name.match(queryRegExp);
|
|
51
|
-
}));
|
|
52
|
-
}, [participants]);
|
|
53
|
-
const { searchQueryInProgress, searchResults } = useSearch({
|
|
54
|
-
searchFn: activeUsersSearchFnFromProps !== null && activeUsersSearchFnFromProps !== void 0 ? activeUsersSearchFnFromProps : activeUsersSearchFn,
|
|
55
|
-
debounceInterval: debounceSearchInterval,
|
|
56
|
-
searchQuery,
|
|
57
|
-
});
|
|
58
|
-
return (_jsx(SearchResults, { EmptySearchResultComponent: EmptyParticipantSearchList, LoadingIndicator: LoadingIndicator, searchQueryInProgress: searchQueryInProgress, searchResults: searchQuery ? searchResults : participants, SearchResultList: CallParticipantListing }));
|
|
59
|
-
};
|
|
60
|
-
const BlockedUsersSearchResults = ({ blockedUsersSearchFn: blockedUsersSearchFnFromProps, debounceSearchInterval = DEFAULT_DEBOUNCE_SEARCH_INTERVAL, searchQuery, }) => {
|
|
61
|
-
const { useCallBlockedUserIds } = useCallStateHooks();
|
|
62
|
-
const blockedUsers = useCallBlockedUserIds();
|
|
63
|
-
const blockedUsersSearchFn = useCallback((queryString) => {
|
|
64
|
-
const queryRegExp = new RegExp(queryString, 'i');
|
|
65
|
-
return Promise.resolve(blockedUsers.filter((blockedUser) => {
|
|
66
|
-
return blockedUser.match(queryRegExp);
|
|
67
|
-
}));
|
|
68
|
-
}, [blockedUsers]);
|
|
69
|
-
const { searchQueryInProgress, searchResults } = useSearch({
|
|
70
|
-
searchFn: blockedUsersSearchFnFromProps !== null && blockedUsersSearchFnFromProps !== void 0 ? blockedUsersSearchFnFromProps : blockedUsersSearchFn,
|
|
71
|
-
debounceInterval: debounceSearchInterval,
|
|
72
|
-
searchQuery,
|
|
73
|
-
});
|
|
74
|
-
return (_jsx(SearchResults, { EmptySearchResultComponent: EmptyParticipantSearchList, LoadingIndicator: LoadingIndicator, searchQueryInProgress: searchQueryInProgress, searchResults: searchQuery ? searchResults : blockedUsers, SearchResultList: BlockedUserListing }));
|
|
75
|
-
};
|
|
76
|
-
const ToggleButton = forwardRef((props, ref) => {
|
|
77
|
-
return _jsx(IconButton, { enabled: props.menuShown, icon: "filter", ref: ref });
|
|
78
|
-
});
|
|
79
|
-
const InviteLinkButton = forwardRef((_a, ref) => {
|
|
80
|
-
var { className } = _a, props = __rest(_a, ["className"]);
|
|
81
|
-
return (_jsxs("button", Object.assign({}, props, { className: clsx('str-video__invite-link-button', className), ref: ref }, { children: [_jsx("div", { className: "str-video__invite-participant-icon" }), _jsx("div", Object.assign({ className: "str-video__invite-link-button__text" }, { children: "Invite Link" }))] })));
|
|
82
|
-
});
|
|
83
|
-
//# sourceMappingURL=CallParticipantsList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallParticipantsList.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/CallParticipantsList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useI18n } from '@stream-io/video-react-bindings';
|
|
3
|
-
export const EmptyParticipantSearchList = () => {
|
|
4
|
-
const { t } = useI18n();
|
|
5
|
-
return (_jsx("div", Object.assign({ className: "str-video__participant-list--empty" }, { children: t('No participants found') })));
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=EmptyParticipantSearchList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyParticipantSearchList.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/EmptyParticipantSearchList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE1D,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,EAAE;IAC7C,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IACxB,OAAO,CACL,4BAAK,SAAS,EAAC,oCAAoC,gBAChD,CAAC,CAAC,uBAAuB,CAAC,IACvB,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CallParticipantsList/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import clsx from 'clsx';
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
4
|
-
import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
|
|
5
|
-
export const CallPreview = (props) => {
|
|
6
|
-
const { className, style } = props;
|
|
7
|
-
const call = useCall();
|
|
8
|
-
const { useCallThumbnail } = useCallStateHooks();
|
|
9
|
-
const thumbnail = useCallThumbnail();
|
|
10
|
-
const [imageRef, setImageRef] = useState(null);
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
if (!imageRef || !call)
|
|
13
|
-
return;
|
|
14
|
-
const cleanup = call.bindCallThumbnailElement(imageRef);
|
|
15
|
-
return () => cleanup();
|
|
16
|
-
}, [imageRef, call]);
|
|
17
|
-
if (!thumbnail)
|
|
18
|
-
return null;
|
|
19
|
-
return (_jsx("img", { className: clsx('str-video__call-preview', className), style: style, alt: "Call Preview Thumbnail", ref: setImageRef }));
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=CallPreview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallPreview.js","sourceRoot":"","sources":["../../../../src/components/CallPreview/CallPreview.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAiB,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAc7E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;IACrD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IAErC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA0B,IAAI,CAAC,CAAC;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;YAAE,OAAO;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAErB,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO,CACL,cACE,SAAS,EAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,EACrD,KAAK,EAAE,KAAK,EACZ,GAAG,EAAC,wBAAwB,EAC5B,GAAG,EAAE,WAAW,GAChB,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CallPreview/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { CallRecordingListHeader as DefaultCallRecordingListHeader, } from './CallRecordingListHeader';
|
|
3
|
-
import { CallRecordingListItem as DefaultCallRecordingListItem, } from './CallRecordingListItem';
|
|
4
|
-
import { EmptyCallRecordingListing as DefaultEmptyCallRecordingList } from './EmptyCallRecordingListing';
|
|
5
|
-
import { LoadingCallRecordingListing as DefaultLoadingCallRecordingList, } from './LoadingCallRecordingListing';
|
|
6
|
-
export const CallRecordingList = ({ callRecordings, CallRecordingListHeader = DefaultCallRecordingListHeader, CallRecordingListItem = DefaultCallRecordingListItem, EmptyCallRecordingList = DefaultEmptyCallRecordingList, loading, LoadingCallRecordingList = DefaultLoadingCallRecordingList, onRefresh, }) => {
|
|
7
|
-
return (_jsxs("div", Object.assign({ className: "str-video__call-recording-list" }, { children: [_jsx(CallRecordingListHeader, { callRecordings: callRecordings, onRefresh: onRefresh }), _jsx("div", Object.assign({ className: "str-video__call-recording-list__listing" }, { children: loading ? (_jsx(LoadingCallRecordingList, { callRecordings: callRecordings })) : callRecordings.length ? (callRecordings.map((recording) => (_jsx(CallRecordingListItem, { recording: recording }, recording.filename)))) : (_jsx(EmptyCallRecordingList, {})) }))] })));
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=CallRecordingList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallRecordingList.js","sourceRoot":"","sources":["../../../../src/components/CallRecordingList/CallRecordingList.tsx"],"names":[],"mappings":";AAGA,OAAO,EACL,uBAAuB,IAAI,8BAA8B,GAE1D,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,IAAI,4BAA4B,GAEtD,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,yBAAyB,IAAI,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACzG,OAAO,EACL,2BAA2B,IAAI,+BAA+B,GAE/D,MAAM,+BAA+B,CAAC;AAmBvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,cAAc,EACd,uBAAuB,GAAG,8BAA8B,EACxD,qBAAqB,GAAG,4BAA4B,EACpD,sBAAsB,GAAG,6BAA6B,EACtD,OAAO,EACP,wBAAwB,GAAG,+BAA+B,EAC1D,SAAS,GACc,EAAE,EAAE;IAC3B,OAAO,CACL,6BAAK,SAAS,EAAC,gCAAgC,iBAC7C,KAAC,uBAAuB,IACtB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,GACpB,EACF,4BAAK,SAAS,EAAC,yCAAyC,gBACrD,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,wBAAwB,IAAC,cAAc,EAAE,cAAc,GAAI,CAC7D,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAChC,KAAC,qBAAqB,IACpB,SAAS,EAAE,SAAS,IACf,SAAS,CAAC,QAAQ,CACvB,CACH,CAAC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,sBAAsB,KAAG,CAC3B,IACG,KACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { IconButton } from '../Button';
|
|
3
|
-
export const CallRecordingListHeader = ({ callRecordings, onRefresh, }) => {
|
|
4
|
-
return (_jsxs("div", Object.assign({ className: "str-video__call-recording-list__header" }, { children: [_jsxs("div", Object.assign({ className: "str-video__call-recording-list__title" }, { children: [_jsx("span", { children: "Call Recordings" }), callRecordings.length ? _jsxs("span", { children: ["(", callRecordings.length, ")"] }) : null] })), _jsx(IconButton, { icon: "refresh", title: "Refresh", onClick: onRefresh })] })));
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=CallRecordingListHeader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallRecordingListHeader.js","sourceRoot":"","sources":["../../../../src/components/CallRecordingList/CallRecordingListHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AASvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,cAAc,EACd,SAAS,GACoB,EAAE,EAAE;IACjC,OAAO,CACL,6BAAK,SAAS,EAAC,wCAAwC,iBACrD,6BAAK,SAAS,EAAC,uCAAuC,iBACpD,6CAA4B,EAC3B,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,gCAAQ,cAAc,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,IAAI,KAClE,EACN,KAAC,UAAU,IAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,SAAS,GAAI,KAC7D,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import clsx from 'clsx';
|
|
3
|
-
import { forwardRef } from 'react';
|
|
4
|
-
import { CopyToClipboardButtonWithPopup } from '../Button';
|
|
5
|
-
export const CallRecordingListItem = ({ recording, }) => {
|
|
6
|
-
return (_jsxs("div", Object.assign({ className: "str-video__call-recording-list-item" }, { children: [_jsx("div", Object.assign({ className: "str-video__call-recording-list-item__info" }, { children: _jsx("div", Object.assign({ className: "str-video__call-recording-list-item__created" }, { children: new Date(recording.end_time).toLocaleString() })) })), _jsxs("div", Object.assign({ className: "str-video__call-recording-list-item__actions" }, { children: [_jsx("a", Object.assign({ className: clsx('str-video__call-recording-list-item__action-button', 'str-video__call-recording-list-item__action-button--download'), role: "button", href: recording.url, download: recording.filename, title: "Download the recording" }, { children: _jsx("span", { className: clsx('str-video__call-recording-list-item__action-button-icon', 'str-video__download-button--icon') }) })), _jsx(CopyToClipboardButtonWithPopup, { Button: CopyUrlButton, copyValue: recording.url })] }))] })));
|
|
7
|
-
};
|
|
8
|
-
const CopyUrlButton = forwardRef((props, ref) => {
|
|
9
|
-
return (_jsx("button", Object.assign({}, props, { className: clsx('str-video__call-recording-list-item__action-button', 'str-video__call-recording-list-item__action-button--copy-link'), ref: ref, title: "Copy the recording link" }, { children: _jsx("span", { className: clsx('str-video__call-recording-list-item__action-button-icon', 'str-video__copy-button--icon') }) })));
|
|
10
|
-
});
|
|
11
|
-
//# sourceMappingURL=CallRecordingListItem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallRecordingListItem.js","sourceRoot":"","sources":["../../../../src/components/CallRecordingList/CallRecordingListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAgC,UAAU,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAM3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,SAAS,GACkB,EAAE,EAAE;IAC/B,OAAO,CACL,6BAAK,SAAS,EAAC,qCAAqC,iBAClD,4BAAK,SAAS,EAAC,2CAA2C,gBACxD,4BAAK,SAAS,EAAC,8CAA8C,gBAC1D,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,IAC1C,IACF,EACN,6BAAK,SAAS,EAAC,8CAA8C,iBAC3D,0BACE,SAAS,EAAE,IAAI,CACb,oDAAoD,EACpD,8DAA8D,CAC/D,EACD,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,SAAS,CAAC,GAAG,EACnB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,KAAK,EAAC,wBAAwB,gBAE9B,eACE,SAAS,EAAE,IAAI,CACb,yDAAyD,EACzD,kCAAkC,CACnC,GACD,IACA,EACJ,KAAC,8BAA8B,IAC7B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,CAAC,GAAG,GACxB,KACE,KACF,CACP,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,aAAa,GAAG,UAAU,CAC9B,CAAC,KAA+B,EAAE,GAAoC,EAAE,EAAE;IACxE,OAAO,CACL,iCACM,KAAK,IACT,SAAS,EAAE,IAAI,CACb,oDAAoD,EACpD,+DAA+D,CAChE,EACD,GAAG,EAAE,GAAG,EACR,KAAK,EAAC,yBAAyB,gBAE/B,eACE,SAAS,EAAE,IAAI,CACb,yDAAyD,EACzD,8BAA8B,CAC/B,GACD,IACK,CACV,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export const EmptyCallRecordingListing = () => {
|
|
3
|
-
return (_jsxs("div", Object.assign({ className: "str-video__call-recording-list__listing str-video__call-recording-list__listing--empty" }, { children: [_jsx("div", { className: "str-video__call-recording-list__listing--icon-empty" }), _jsx("p", Object.assign({ className: "str-video__call-recording-list__listing--text-empty" }, { children: "No recordings available" }))] })));
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=EmptyCallRecordingListing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyCallRecordingListing.js","sourceRoot":"","sources":["../../../../src/components/CallRecordingList/EmptyCallRecordingListing.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,OAAO,CACL,6BAAK,SAAS,EAAC,wFAAwF,iBACrG,cAAK,SAAS,EAAC,qDAAqD,GAAG,EACvE,0BAAG,SAAS,EAAC,qDAAqD,6CAG9D,KACA,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { CallRecordingListItem } from './CallRecordingListItem';
|
|
3
|
-
import { LoadingIndicator } from '../LoadingIndicator';
|
|
4
|
-
export const LoadingCallRecordingListing = ({ callRecordings, }) => {
|
|
5
|
-
return (_jsxs(_Fragment, { children: [callRecordings.map((recording) => (_jsx(CallRecordingListItem, { recording: recording }, recording.filename))), _jsx(LoadingIndicator, { text: "Recording getting ready" })] }));
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=LoadingCallRecordingListing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingCallRecordingListing.js","sourceRoot":"","sources":["../../../../src/components/CallRecordingList/LoadingCallRecordingListing.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,cAAc,GACgB,EAAE,EAAE;IAClC,OAAO,CACL,8BACG,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CACjC,KAAC,qBAAqB,IAAC,SAAS,EAAE,SAAS,IAAO,SAAS,CAAC,QAAQ,CAAI,CACzE,CAAC,EACF,KAAC,gBAAgB,IAAC,IAAI,EAAC,yBAAyB,GAAG,IAClD,CACJ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CallRecordingList/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useRef, useState } from 'react';
|
|
3
|
-
import { useCallStateHooks } from '@stream-io/video-react-bindings';
|
|
4
|
-
import { CallStatsLatencyChart } from './CallStatsLatencyChart';
|
|
5
|
-
export const CallStats = () => {
|
|
6
|
-
const [latencyBuffer, setLatencyBuffer] = useState(() => {
|
|
7
|
-
const now = Date.now();
|
|
8
|
-
return Array.from({ length: 20 }, (_, i) => ({ x: now + i, y: 0 }));
|
|
9
|
-
});
|
|
10
|
-
const [publishBitrate, setPublishBitrate] = useState('-');
|
|
11
|
-
const [subscribeBitrate, setSubscribeBitrate] = useState('-');
|
|
12
|
-
const previousStats = useRef();
|
|
13
|
-
const { useCallStatsReport } = useCallStateHooks();
|
|
14
|
-
const callStatsReport = useCallStatsReport();
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (!callStatsReport)
|
|
17
|
-
return;
|
|
18
|
-
if (!previousStats.current) {
|
|
19
|
-
previousStats.current = callStatsReport;
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
const previousCallStatsReport = previousStats.current;
|
|
23
|
-
setPublishBitrate(() => {
|
|
24
|
-
return calculatePublishBitrate(previousCallStatsReport, callStatsReport);
|
|
25
|
-
});
|
|
26
|
-
setSubscribeBitrate(() => {
|
|
27
|
-
return calculateSubscribeBitrate(previousCallStatsReport, callStatsReport);
|
|
28
|
-
});
|
|
29
|
-
setLatencyBuffer((latencyBuf) => {
|
|
30
|
-
const newLatencyBuffer = latencyBuf.slice(-19);
|
|
31
|
-
newLatencyBuffer.push({
|
|
32
|
-
x: callStatsReport.timestamp,
|
|
33
|
-
y: callStatsReport.publisherStats.averageRoundTripTimeInMs,
|
|
34
|
-
});
|
|
35
|
-
return newLatencyBuffer;
|
|
36
|
-
});
|
|
37
|
-
previousStats.current = callStatsReport;
|
|
38
|
-
}, [callStatsReport]);
|
|
39
|
-
return (_jsx("div", Object.assign({ className: "str-video__call-stats" }, { children: callStatsReport && (_jsxs(_Fragment, { children: [_jsx("h3", { children: "Call Latency" }), _jsx(CallStatsLatencyChart, { values: latencyBuffer }), _jsx("h3", { children: "Call performance" }), _jsxs("div", Object.assign({ className: "str-video__call-stats__card-container" }, { children: [_jsx(StatCard, { label: "Region", value: callStatsReport.datacenter }), _jsx(StatCard, { label: "Latency", value: `${callStatsReport.publisherStats.averageRoundTripTimeInMs} ms.` }), _jsx(StatCard, { label: "Receive jitter", value: `${callStatsReport.subscriberStats.averageJitterInMs} ms.` }), _jsx(StatCard, { label: "Publish jitter", value: `${callStatsReport.publisherStats.averageJitterInMs} ms.` }), _jsx(StatCard, { label: "Publish resolution", value: toFrameSize(callStatsReport.publisherStats) }), _jsx(StatCard, { label: "Publish quality drop reason", value: callStatsReport.publisherStats.qualityLimitationReasons }), _jsx(StatCard, { label: "Receiving resolution", value: toFrameSize(callStatsReport.subscriberStats) }), _jsx(StatCard, { label: "Receive quality drop reason", value: callStatsReport.subscriberStats.qualityLimitationReasons }), _jsx(StatCard, { label: "Publish bitrate", value: publishBitrate }), _jsx(StatCard, { label: "Receiving bitrate", value: subscribeBitrate })] }))] })) })));
|
|
40
|
-
};
|
|
41
|
-
export const StatCard = (props) => {
|
|
42
|
-
const { label, value } = props;
|
|
43
|
-
return (_jsxs("div", Object.assign({ className: "str-video__call-stats__card" }, { children: [_jsx("div", Object.assign({ className: "str-video__call-stats__card_label" }, { children: label })), _jsx("div", Object.assign({ className: "str-video__call-stats__card_value" }, { children: value }))] })));
|
|
44
|
-
};
|
|
45
|
-
const toFrameSize = (stats) => {
|
|
46
|
-
const { highestFrameWidth: w, highestFrameHeight: h, highestFramesPerSecond: fps, } = stats;
|
|
47
|
-
let size = `-`;
|
|
48
|
-
if (w && h) {
|
|
49
|
-
size = `${w}x${h}`;
|
|
50
|
-
if (fps) {
|
|
51
|
-
size += `@${fps}fps.`;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return size;
|
|
55
|
-
};
|
|
56
|
-
const calculatePublishBitrate = (previousCallStatsReport, callStatsReport) => {
|
|
57
|
-
const { publisherStats: { totalBytesSent: previousTotalBytesSent, timestamp: previousTimestamp, }, } = previousCallStatsReport;
|
|
58
|
-
const { publisherStats: { totalBytesSent, timestamp }, } = callStatsReport;
|
|
59
|
-
const bytesSent = totalBytesSent - previousTotalBytesSent;
|
|
60
|
-
const timeElapsed = timestamp - previousTimestamp;
|
|
61
|
-
return `${((bytesSent * 8) / timeElapsed).toFixed(2)} kbps`;
|
|
62
|
-
};
|
|
63
|
-
const calculateSubscribeBitrate = (previousCallStatsReport, callStatsReport) => {
|
|
64
|
-
const { subscriberStats: { totalBytesReceived: previousTotalBytesReceived, timestamp: previousTimestamp, }, } = previousCallStatsReport;
|
|
65
|
-
const { subscriberStats: { totalBytesReceived, timestamp }, } = callStatsReport;
|
|
66
|
-
const bytesReceived = totalBytesReceived - previousTotalBytesReceived;
|
|
67
|
-
const timeElapsed = timestamp - previousTimestamp;
|
|
68
|
-
return `${((bytesReceived * 8) / timeElapsed).toFixed(2)} kbps`;
|
|
69
|
-
};
|
|
70
|
-
//# sourceMappingURL=CallStats.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CallStats.js","sourceRoot":"","sources":["../../../../src/components/CallStats/CallStats.tsx"],"names":[],"mappings":"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"}
|