@100mslive/roomkit-react 0.3.20-alpha.3 → 0.3.20
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/dist/{HLSView-YFTHW2VY.js → HLSView-6QAHWMQF.js} +47 -63
- package/dist/HLSView-6QAHWMQF.js.map +7 -0
- package/dist/{HLSView-KKVZM355.css → HLSView-E242LM6X.css} +3 -3
- package/dist/{HLSView-KKVZM355.css.map → HLSView-E242LM6X.css.map} +1 -1
- package/dist/Prebuilt/AppContext.d.ts +1 -1
- package/dist/Prebuilt/components/AuthToken.d.ts +1 -1
- package/dist/Prebuilt/components/VirtualBackground/VBHandler.d.ts +0 -1
- package/dist/{chunk-Y3UYAB6J.js → chunk-ACEDLM3B.js} +532 -561
- package/dist/chunk-ACEDLM3B.js.map +7 -0
- package/dist/index.cjs.css +2 -2
- package/dist/index.cjs.css.map +1 -1
- package/dist/index.cjs.js +573 -619
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +66 -86
- package/dist/meta.esbuild.json +78 -98
- package/package.json +7 -7
- package/src/Prebuilt/App.tsx +5 -5
- package/src/Prebuilt/AppContext.tsx +1 -1
- package/src/Prebuilt/components/AuthToken.tsx +1 -1
- package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +4 -24
- package/src/Prebuilt/components/MoreSettings/ChangeNameContent.tsx +3 -13
- package/src/Prebuilt/components/MoreSettings/ChangeNameModal.tsx +1 -1
- package/src/Prebuilt/components/Notifications/TrackUnmuteModal.tsx +1 -1
- package/src/Prebuilt/components/ScreenshareTile.tsx +2 -2
- package/src/Prebuilt/components/Settings/SettingsModal.jsx +2 -1
- package/src/Prebuilt/components/TileMenu/TileMenu.tsx +6 -7
- package/src/Prebuilt/components/TileMenu/TileMenuContent.tsx +3 -3
- package/src/Prebuilt/components/VideoLayouts/EqualProminence.tsx +2 -4
- package/src/Prebuilt/components/VideoTile.tsx +2 -2
- package/src/Prebuilt/components/VirtualBackground/VBHandler.tsx +1 -13
- package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +2 -3
- package/src/Prebuilt/components/{peerTileUtils.tsx → peerTileUtils.jsx} +6 -21
- package/src/Prebuilt/layouts/HLSView.jsx +5 -2
- package/dist/HLSView-YFTHW2VY.js.map +0 -7
- package/dist/Prebuilt/components/peerTileUtils.d.ts +0 -7
- package/dist/chunk-Y3UYAB6J.js.map +0 -7
|
@@ -1,28 +1,7 @@
|
|
|
1
|
-
import React, { forwardRef
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
2
|
import { Flex } from '../../../Layout';
|
|
3
3
|
|
|
4
4
|
export const HMSVideo = forwardRef(({ children, ...props }, videoRef) => {
|
|
5
|
-
const [width, setWidth] = useState('auto');
|
|
6
|
-
|
|
7
|
-
useEffect(() => {
|
|
8
|
-
const updatingVideoWidth = () => {
|
|
9
|
-
const videoEl = videoRef.current;
|
|
10
|
-
if (!videoEl) {
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
if (videoEl.videoWidth > videoEl.videoHeight && width !== '100%') {
|
|
14
|
-
setWidth('100%');
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
const videoEl = videoRef.current;
|
|
18
|
-
if (!videoEl) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
videoEl.addEventListener('loadedmetadata', updatingVideoWidth);
|
|
22
|
-
return () => {
|
|
23
|
-
videoEl.removeEventListener('loadedmetadata', updatingVideoWidth);
|
|
24
|
-
};
|
|
25
|
-
}, []);
|
|
26
5
|
return (
|
|
27
6
|
<Flex
|
|
28
7
|
data-testid="hms-video"
|
|
@@ -32,8 +11,9 @@ export const HMSVideo = forwardRef(({ children, ...props }, videoRef) => {
|
|
|
32
11
|
justifyContent: 'center',
|
|
33
12
|
transition: 'all 0.3s ease-in-out',
|
|
34
13
|
'@md': {
|
|
14
|
+
height: 'auto',
|
|
35
15
|
'& video': {
|
|
36
|
-
height:
|
|
16
|
+
height: '$60 !important',
|
|
37
17
|
},
|
|
38
18
|
},
|
|
39
19
|
'& video::cue': {
|
|
@@ -61,7 +41,7 @@ export const HMSVideo = forwardRef(({ children, ...props }, videoRef) => {
|
|
|
61
41
|
style={{
|
|
62
42
|
margin: '0 auto',
|
|
63
43
|
objectFit: 'contain',
|
|
64
|
-
width:
|
|
44
|
+
width: 'auto',
|
|
65
45
|
height: '100%',
|
|
66
46
|
maxWidth: '100%',
|
|
67
47
|
}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ChevronLeftIcon, CrossIcon } from '@100mslive/react-icons';
|
|
3
3
|
import { Button } from '../../../Button';
|
|
4
4
|
import { Input } from '../../../Input';
|
|
@@ -22,16 +22,6 @@ export const ChangeNameContent = ({
|
|
|
22
22
|
onExit: () => void;
|
|
23
23
|
onBackClick: () => void;
|
|
24
24
|
}) => {
|
|
25
|
-
const inputRef = useRef<HTMLInputElement>(null);
|
|
26
|
-
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
if (isMobile) {
|
|
29
|
-
setTimeout(() => {
|
|
30
|
-
inputRef.current?.focus();
|
|
31
|
-
}, 200);
|
|
32
|
-
}
|
|
33
|
-
}, [isMobile]);
|
|
34
|
-
|
|
35
25
|
return (
|
|
36
26
|
<form
|
|
37
27
|
onSubmit={async e => {
|
|
@@ -63,10 +53,10 @@ export const ChangeNameContent = ({
|
|
|
63
53
|
</Text>
|
|
64
54
|
<Flex justify="center" align="center" css={{ my: '$8', w: '100%', '@md': { px: '$8' } }}>
|
|
65
55
|
<Input
|
|
66
|
-
ref={inputRef}
|
|
67
56
|
css={{ width: '100%', bg: '$surface_default' }}
|
|
68
57
|
value={currentName}
|
|
69
|
-
|
|
58
|
+
// Prevents popup from showing up on chrome mweb
|
|
59
|
+
type={isMobile ? 'search' : 'text'}
|
|
70
60
|
onChange={e => {
|
|
71
61
|
setCurrentName(e.target.value);
|
|
72
62
|
}}
|
|
@@ -58,7 +58,7 @@ export const ChangeNameModal = ({
|
|
|
58
58
|
if (isMobile) {
|
|
59
59
|
return (
|
|
60
60
|
<Sheet.Root defaultOpen onOpenChange={onOpenChange}>
|
|
61
|
-
<Sheet.Content css={{ bg: '$surface_dim', p: '$8 0' }}
|
|
61
|
+
<Sheet.Content css={{ bg: '$surface_dim', p: '$8 0' }}>
|
|
62
62
|
<ChangeNameContent {...props} />
|
|
63
63
|
</Sheet.Content>
|
|
64
64
|
</Sheet.Root>
|
|
@@ -44,7 +44,7 @@ export const TrackUnmuteModal = () => {
|
|
|
44
44
|
<RequestDialog
|
|
45
45
|
title={`Unmute your ${track.type}?`}
|
|
46
46
|
onOpenChange={(value: boolean) => !value && setMuteNotification(null)}
|
|
47
|
-
body={`${peer?.name}
|
|
47
|
+
body={`${peer?.name}is requesting you to unmute your ${track?.type}.`}
|
|
48
48
|
onAction={() => {
|
|
49
49
|
hmsActions.setEnabledTrack(track.id, enabled);
|
|
50
50
|
setMuteNotification(null);
|
|
@@ -16,6 +16,7 @@ import { config as cssConfig, useTheme } from '../../Theme';
|
|
|
16
16
|
import { Video } from '../../Video';
|
|
17
17
|
import { StyledVideoTile } from '../../VideoTile';
|
|
18
18
|
import { LayoutModeSelector } from './LayoutModeSelector';
|
|
19
|
+
// @ts-ignore: No implicit Any
|
|
19
20
|
import { getVideoTileLabel } from './peerTileUtils';
|
|
20
21
|
import { ScreenshareDisplay } from './ScreenshareDisplay';
|
|
21
22
|
// @ts-ignore: No implicit Any
|
|
@@ -61,8 +62,7 @@ const Tile = ({ peerId, width = '100%', height = '100%' }: { peerId: string; wid
|
|
|
61
62
|
const label = getVideoTileLabel({
|
|
62
63
|
peerName: peer?.name,
|
|
63
64
|
isLocal: false,
|
|
64
|
-
|
|
65
|
-
audioTrack,
|
|
65
|
+
track,
|
|
66
66
|
});
|
|
67
67
|
|
|
68
68
|
return (
|
|
@@ -140,6 +140,7 @@ const MobileSettingModal = ({
|
|
|
140
140
|
<Flex
|
|
141
141
|
direction="column"
|
|
142
142
|
css={{
|
|
143
|
+
px: '$8',
|
|
143
144
|
pb: '$8',
|
|
144
145
|
overflowY: 'auto',
|
|
145
146
|
}}
|
|
@@ -158,7 +159,7 @@ const MobileSettingModal = ({
|
|
|
158
159
|
css={{
|
|
159
160
|
all: 'unset',
|
|
160
161
|
fontFamily: '$sans',
|
|
161
|
-
|
|
162
|
+
py: '$10',
|
|
162
163
|
display: 'flex',
|
|
163
164
|
alignItems: 'center',
|
|
164
165
|
fontSize: '$sm',
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { useMedia } from 'react-use';
|
|
3
3
|
import {
|
|
4
|
-
HMSAudioTrack,
|
|
5
4
|
HMSVideoTrack,
|
|
6
5
|
selectLocalPeerID,
|
|
7
6
|
selectPeerByID,
|
|
@@ -18,7 +17,6 @@ import { Text } from '../../../Text';
|
|
|
18
17
|
import { config as cssConfig, useTheme } from '../../../Theme';
|
|
19
18
|
import { StyledMenuTile } from '../../../TileMenu';
|
|
20
19
|
import { ChangeNameModal } from '../MoreSettings/ChangeNameModal';
|
|
21
|
-
import { getVideoTileLabel } from '../peerTileUtils';
|
|
22
20
|
import { RoleChangeModal } from '../RoleChangeModal';
|
|
23
21
|
import { TileMenuContent } from './TileMenuContent';
|
|
24
22
|
import { useDropdownList } from '../hooks/useDropdownList';
|
|
@@ -54,8 +52,7 @@ const TileMenu = ({
|
|
|
54
52
|
const isPrimaryVideoTrack = useHMSStore(selectVideoTrackByPeerID(peerID))?.id === videoTrackID;
|
|
55
53
|
const showPinAction = !!(audioTrackID || (videoTrackID && isPrimaryVideoTrack));
|
|
56
54
|
|
|
57
|
-
const track = useHMSStore(selectTrackByID(videoTrackID)) as HMSVideoTrack
|
|
58
|
-
const audioTrack = useHMSStore(selectTrackByID(audioTrackID)) as HMSAudioTrack | null;
|
|
55
|
+
const track = useHMSStore(selectTrackByID(videoTrackID)) as HMSVideoTrack;
|
|
59
56
|
const hideSimulcastLayers = !track?.layerDefinitions?.length || track.degraded || !track.enabled;
|
|
60
57
|
const isMobile = useMedia(cssConfig.media.md);
|
|
61
58
|
const peer = useHMSStore(selectPeerByID(peerID));
|
|
@@ -64,19 +61,20 @@ const TileMenu = ({
|
|
|
64
61
|
useDropdownList({ open, name: 'TileMenu' });
|
|
65
62
|
const dragClassName = getDragClassName();
|
|
66
63
|
|
|
67
|
-
if (!
|
|
64
|
+
if (!(removeOthers || toggleAudio || toggleVideo || setVolume || showPinAction) && hideSimulcastLayers) {
|
|
68
65
|
return null;
|
|
69
66
|
}
|
|
70
67
|
|
|
71
68
|
const openNameChangeModal = () => setShowNameChangeModal(true);
|
|
72
69
|
const openRoleChangeModal = () => setShowRoleChangeModal(true);
|
|
73
70
|
|
|
74
|
-
const props
|
|
71
|
+
const props = {
|
|
75
72
|
isLocal,
|
|
76
73
|
isScreenshare,
|
|
77
74
|
audioTrackID,
|
|
78
75
|
videoTrackID,
|
|
79
76
|
peerID,
|
|
77
|
+
isPrimaryVideoTrack,
|
|
80
78
|
showSpotlight,
|
|
81
79
|
showPinAction,
|
|
82
80
|
canMinimise,
|
|
@@ -113,7 +111,8 @@ const TileMenu = ({
|
|
|
113
111
|
>
|
|
114
112
|
<Box>
|
|
115
113
|
<Text css={{ color: '$on_surface_high', fontWeight: '$semiBold' }}>
|
|
116
|
-
{
|
|
114
|
+
{peer?.name}
|
|
115
|
+
{isLocal ? ` (You)` : null}
|
|
117
116
|
</Text>
|
|
118
117
|
{peer?.roleName ? (
|
|
119
118
|
<Text variant="xs" css={{ color: '$on_surface_low', mt: '$2' }}>
|
|
@@ -41,7 +41,7 @@ import { useSetAppDataByKey } from '../AppData/useUISettings';
|
|
|
41
41
|
// @ts-ignore
|
|
42
42
|
import { useDropdownSelection } from '../hooks/useDropdownSelection';
|
|
43
43
|
import { getDragClassName } from './utils';
|
|
44
|
-
import { APP_DATA,
|
|
44
|
+
import { APP_DATA, REMOTE_STOP_SCREENSHARE_TYPE, SESSION_STORE_KEY } from '../../common/constants';
|
|
45
45
|
|
|
46
46
|
export const isSameTile = ({
|
|
47
47
|
trackId,
|
|
@@ -317,7 +317,7 @@ export const TileMenuContent = ({
|
|
|
317
317
|
</StyledMenuTile.ItemButton>
|
|
318
318
|
) : null}
|
|
319
319
|
|
|
320
|
-
{
|
|
320
|
+
{canChangeRole && roles.length > 1 ? (
|
|
321
321
|
<StyledMenuTile.ItemButton
|
|
322
322
|
className={dragClassName}
|
|
323
323
|
css={spacingCSS}
|
|
@@ -332,7 +332,7 @@ export const TileMenuContent = ({
|
|
|
332
332
|
</StyledMenuTile.ItemButton>
|
|
333
333
|
) : null}
|
|
334
334
|
|
|
335
|
-
{
|
|
335
|
+
{audioTrackID ? (
|
|
336
336
|
<StyledMenuTile.VolumeItem data-testid="participant_volume_slider" css={{ ...spacingCSS, mb: '$0' }}>
|
|
337
337
|
<Flex align="center" gap={1}>
|
|
338
338
|
<SpeakerIcon height={20} width={20} />
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import { useMedia } from 'react-use';
|
|
3
|
-
import { selectPeerCount, useHMSStore } from '@100mslive/react-sdk';
|
|
4
3
|
import { PeopleAddIcon } from '@100mslive/react-icons';
|
|
5
4
|
import { Flex } from '../../../Layout';
|
|
6
5
|
import { config as cssConfig } from '../../../Theme';
|
|
@@ -18,7 +17,6 @@ export function EqualProminence({ isInsetEnabled = false, peers, onPageChange, o
|
|
|
18
17
|
const isMobile = useMedia(cssConfig.media.md);
|
|
19
18
|
let maxTileCount = useUISettings(UI_SETTINGS.maxTileCount);
|
|
20
19
|
maxTileCount = isMobile ? Math.min(maxTileCount, 6) : maxTileCount;
|
|
21
|
-
const peerCount = useHMSStore(selectPeerCount);
|
|
22
20
|
const pageList = usePagesWithTiles({
|
|
23
21
|
peers,
|
|
24
22
|
maxTileCount,
|
|
@@ -53,8 +51,8 @@ export function EqualProminence({ isInsetEnabled = false, peers, onPageChange, o
|
|
|
53
51
|
)}
|
|
54
52
|
{pageList.length === 0 ? (
|
|
55
53
|
<WaitingView
|
|
56
|
-
title=
|
|
57
|
-
subtitle=
|
|
54
|
+
title="You're the first to join"
|
|
55
|
+
subtitle="Sit back and relax till others join"
|
|
58
56
|
icon={<PeopleAddIcon width="56px" height="56px" style={{ color: 'white' }} />}
|
|
59
57
|
/>
|
|
60
58
|
) : null}
|
|
@@ -20,6 +20,7 @@ import { VideoTileStats } from '../../Stats';
|
|
|
20
20
|
import { CSS } from '../../Theme';
|
|
21
21
|
import { Video } from '../../Video';
|
|
22
22
|
import { StyledVideoTile } from '../../VideoTile';
|
|
23
|
+
// @ts-ignore: No implicit Any
|
|
23
24
|
import { getVideoTileLabel } from './peerTileUtils';
|
|
24
25
|
// @ts-ignore: No implicit Any
|
|
25
26
|
import { useSetAppDataByKey, useUISettings } from './AppData/useUISettings';
|
|
@@ -100,9 +101,8 @@ const Tile = ({
|
|
|
100
101
|
});
|
|
101
102
|
const label = getVideoTileLabel({
|
|
102
103
|
peerName,
|
|
104
|
+
track,
|
|
103
105
|
isLocal,
|
|
104
|
-
videoTrack: track,
|
|
105
|
-
audioTrack,
|
|
106
106
|
});
|
|
107
107
|
const onHoverHandler = useCallback((event: React.MouseEvent) => {
|
|
108
108
|
setIsMouseHovered(event.type === 'mouseenter');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// eslint-disable-next-line
|
|
3
3
|
import { HMSVBPlugin, HMSVirtualBackgroundTypes } from '@100mslive/hms-virtual-background/hmsvbplugin';
|
|
4
4
|
import { parsedUserAgent } from '@100mslive/react-sdk';
|
|
5
|
-
import {
|
|
5
|
+
import { isSafari } from '../../common/constants';
|
|
6
6
|
export class VBPlugin {
|
|
7
7
|
private hmsPlugin?: HMSVBPlugin;
|
|
8
8
|
private effectsPlugin?: any;
|
|
@@ -103,18 +103,6 @@ export class VBPlugin {
|
|
|
103
103
|
this.hmsPlugin = undefined;
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
isBlurSupported = () => {
|
|
107
|
-
if ((isSafari || isIOS) && this.hmsPlugin) {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
if (this.effectsPlugin) {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return false;
|
|
116
|
-
};
|
|
117
|
-
|
|
118
106
|
isEffectsSupported = () => {
|
|
119
107
|
if (!isSafari) {
|
|
120
108
|
return true;
|
|
@@ -57,7 +57,6 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
|
57
57
|
const background = useHMSStore(selectAppData(APP_DATA.background));
|
|
58
58
|
const mediaList = backgroundMedia.map((media: VirtualBackgroundMedia) => media.url || '');
|
|
59
59
|
const pluginLoadingRef = useRef(false);
|
|
60
|
-
const isBlurSupported = VBHandler?.isBlurSupported();
|
|
61
60
|
|
|
62
61
|
const inPreview = roomState === HMSRoomState.Preview;
|
|
63
62
|
// Hidden in preview as the effect will be visible in the preview tile
|
|
@@ -191,7 +190,7 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
|
191
190
|
await VBHandler?.setBlur(blurAmount);
|
|
192
191
|
hmsActions.setAppData(APP_DATA.background, HMSVirtualBackgroundTypes.BLUR);
|
|
193
192
|
},
|
|
194
|
-
supported:
|
|
193
|
+
supported: isEffectsSupported && isEffectsEnabled,
|
|
195
194
|
},
|
|
196
195
|
]}
|
|
197
196
|
activeBackground={background}
|
|
@@ -199,7 +198,7 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
|
199
198
|
|
|
200
199
|
{/* Slider */}
|
|
201
200
|
<Flex direction="column" css={{ w: '100%', gap: '$8', mt: '$8' }}>
|
|
202
|
-
{background === HMSVirtualBackgroundTypes.BLUR &&
|
|
201
|
+
{background === HMSVirtualBackgroundTypes.BLUR && isEffectsEnabled && effectsKey ? (
|
|
203
202
|
<Box>
|
|
204
203
|
<Text variant="sm" css={{ color: '$on_surface_high', fontWeight: '$semiBold', mb: '$4' }}>
|
|
205
204
|
Blur intensity
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { HMSAudioTrack, HMSVideoTrack } from '@100mslive/react-sdk';
|
|
2
|
-
|
|
3
1
|
const PEER_NAME_PLACEHOLDER = 'peerName';
|
|
4
|
-
|
|
5
|
-
// Map [isLocal, videoSource] to the label to be displayed.
|
|
6
2
|
const labelMap = new Map([
|
|
7
3
|
[[true, 'screen'].toString(), 'Your Screen'],
|
|
8
4
|
[[true, 'regular'].toString(), `You (${PEER_NAME_PLACEHOLDER})`],
|
|
@@ -12,30 +8,19 @@ const labelMap = new Map([
|
|
|
12
8
|
[[false, undefined].toString(), `${PEER_NAME_PLACEHOLDER}`],
|
|
13
9
|
]);
|
|
14
10
|
|
|
15
|
-
export const getVideoTileLabel = ({
|
|
16
|
-
peerName,
|
|
17
|
-
isLocal,
|
|
18
|
-
videoTrack,
|
|
19
|
-
audioTrack,
|
|
20
|
-
}: {
|
|
21
|
-
isLocal: boolean;
|
|
22
|
-
peerName?: string;
|
|
23
|
-
videoTrack?: HMSVideoTrack | null;
|
|
24
|
-
audioTrack?: HMSAudioTrack | null;
|
|
25
|
-
}) => {
|
|
11
|
+
export const getVideoTileLabel = ({ peerName, isLocal, track }) => {
|
|
26
12
|
const isPeerPresent = peerName !== undefined;
|
|
27
|
-
if (!isPeerPresent || !
|
|
13
|
+
if (!isPeerPresent || !track) {
|
|
28
14
|
// for peers with only audio track
|
|
29
|
-
|
|
30
|
-
return isPeerPresent && label ? label.replace(PEER_NAME_PLACEHOLDER, peerName) : '';
|
|
15
|
+
return isPeerPresent ? labelMap.get([isLocal, undefined].toString()).replace(PEER_NAME_PLACEHOLDER, peerName) : '';
|
|
31
16
|
}
|
|
32
|
-
const isLocallyMuted =
|
|
17
|
+
const isLocallyMuted = track.volume === 0;
|
|
33
18
|
// Map [isLocal, videoSource] to the label to be displayed.
|
|
34
|
-
let label = labelMap.get([isLocal,
|
|
19
|
+
let label = labelMap.get([isLocal, track.source].toString());
|
|
35
20
|
if (label) {
|
|
36
21
|
label = label.replace(PEER_NAME_PLACEHOLDER, peerName);
|
|
37
22
|
} else {
|
|
38
|
-
label = `${peerName} ${
|
|
23
|
+
label = `${peerName} ${track.source}`;
|
|
39
24
|
}
|
|
40
25
|
// label = `${label}${track.degraded ? '(Degraded)' : ''}`;
|
|
41
26
|
return `${label}${isLocallyMuted ? ' (Muted for you)' : ''}`;
|
|
@@ -485,6 +485,11 @@ const HLSView = () => {
|
|
|
485
485
|
css={{
|
|
486
486
|
flex: isLandscape ? '2 1 0' : '1 1 0',
|
|
487
487
|
transition: 'all 0.3s ease-in-out',
|
|
488
|
+
'&:fullscreen': {
|
|
489
|
+
'& video': {
|
|
490
|
+
height: 'unset !important',
|
|
491
|
+
},
|
|
492
|
+
},
|
|
488
493
|
}}
|
|
489
494
|
>
|
|
490
495
|
{hlsViewRef.current && (isMobile || isLandscape) && (
|
|
@@ -536,7 +541,6 @@ const HLSView = () => {
|
|
|
536
541
|
onMouseMove={onHoverHandler}
|
|
537
542
|
onMouseLeave={onHoverHandler}
|
|
538
543
|
onClick={onClickHandler}
|
|
539
|
-
isFullScreen={isFullScreen}
|
|
540
544
|
onDoubleClick={e => {
|
|
541
545
|
onDoubleClickHandler(e);
|
|
542
546
|
}}
|
|
@@ -724,7 +728,6 @@ const HLSView = () => {
|
|
|
724
728
|
selection={currentSelectedQuality}
|
|
725
729
|
onQualityChange={handleQuality}
|
|
726
730
|
isAuto={isUserSelectedAuto}
|
|
727
|
-
containerRef={hlsViewRef.current}
|
|
728
731
|
/>
|
|
729
732
|
) : null}
|
|
730
733
|
{isFullScreenSupported ? (
|