@100mslive/roomkit-react 0.2.8-alpha.10 → 0.2.8-alpha.11
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/{HLSView-FBEGJ3L7.js → HLSView-EDROW5VZ.js} +36 -21
- package/dist/HLSView-EDROW5VZ.js.map +7 -0
- package/dist/{chunk-R2JJJQR3.js → chunk-YFJQ4B6X.js} +10 -6
- package/dist/{chunk-R2JJJQR3.js.map → chunk-YFJQ4B6X.js.map} +2 -2
- package/dist/index.cjs.js +39 -22
- package/dist/index.cjs.js.map +2 -2
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +9 -9
- package/dist/meta.esbuild.json +20 -19
- package/package.json +6 -6
- package/src/Prebuilt/components/Footer/RoleOptions.tsx +4 -1
- package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +1 -0
- package/src/Prebuilt/layouts/HLSView.jsx +57 -38
- package/dist/HLSView-FBEGJ3L7.js.map +0 -7
package/dist/index.js
CHANGED
package/dist/meta.cjs.json
CHANGED
@@ -5935,7 +5935,7 @@
|
|
5935
5935
|
"format": "esm"
|
5936
5936
|
},
|
5937
5937
|
"src/Prebuilt/components/Footer/RoleOptions.tsx": {
|
5938
|
-
"bytes":
|
5938
|
+
"bytes": 7089,
|
5939
5939
|
"imports": [
|
5940
5940
|
{
|
5941
5941
|
"path": "react",
|
@@ -10846,7 +10846,7 @@
|
|
10846
10846
|
"format": "esm"
|
10847
10847
|
},
|
10848
10848
|
"src/Prebuilt/components/HMSVideo/HMSVideo.jsx": {
|
10849
|
-
"bytes":
|
10849
|
+
"bytes": 1333,
|
10850
10850
|
"imports": [
|
10851
10851
|
{
|
10852
10852
|
"path": "react",
|
@@ -11315,7 +11315,7 @@
|
|
11315
11315
|
"format": "esm"
|
11316
11316
|
},
|
11317
11317
|
"src/Prebuilt/layouts/HLSView.jsx": {
|
11318
|
-
"bytes":
|
11318
|
+
"bytes": 26172,
|
11319
11319
|
"imports": [
|
11320
11320
|
{
|
11321
11321
|
"path": "react",
|
@@ -13602,7 +13602,7 @@
|
|
13602
13602
|
"imports": [],
|
13603
13603
|
"exports": [],
|
13604
13604
|
"inputs": {},
|
13605
|
-
"bytes":
|
13605
|
+
"bytes": 3260721
|
13606
13606
|
},
|
13607
13607
|
"dist/index.cjs.js": {
|
13608
13608
|
"imports": [
|
@@ -16506,7 +16506,7 @@
|
|
16506
16506
|
"entryPoint": "src/index.ts",
|
16507
16507
|
"inputs": {
|
16508
16508
|
"<define:process.env>": {
|
16509
|
-
"bytesInOutput":
|
16509
|
+
"bytesInOutput": 18242
|
16510
16510
|
},
|
16511
16511
|
"src/Theme/base.config.ts": {
|
16512
16512
|
"bytesInOutput": 6104
|
@@ -17079,7 +17079,7 @@
|
|
17079
17079
|
"bytesInOutput": 1694
|
17080
17080
|
},
|
17081
17081
|
"src/Prebuilt/components/Footer/RoleOptions.tsx": {
|
17082
|
-
"bytesInOutput":
|
17082
|
+
"bytesInOutput": 8531
|
17083
17083
|
},
|
17084
17084
|
"src/Prebuilt/components/Footer/RoleAccordion.tsx": {
|
17085
17085
|
"bytesInOutput": 5338
|
@@ -17370,7 +17370,7 @@
|
|
17370
17370
|
"bytesInOutput": 656
|
17371
17371
|
},
|
17372
17372
|
"src/Prebuilt/components/HMSVideo/HMSVideo.jsx": {
|
17373
|
-
"bytesInOutput":
|
17373
|
+
"bytesInOutput": 1903
|
17374
17374
|
},
|
17375
17375
|
"src/Prebuilt/components/HMSVideo/PlayerContext.tsx": {
|
17376
17376
|
"bytesInOutput": 489
|
@@ -17412,7 +17412,7 @@
|
|
17412
17412
|
"bytesInOutput": 2852
|
17413
17413
|
},
|
17414
17414
|
"src/Prebuilt/layouts/HLSView.jsx": {
|
17415
|
-
"bytesInOutput":
|
17415
|
+
"bytesInOutput": 30579
|
17416
17416
|
},
|
17417
17417
|
"src/Prebuilt/layouts/VideoStreamingSection.tsx": {
|
17418
17418
|
"bytesInOutput": 5017
|
@@ -17550,7 +17550,7 @@
|
|
17550
17550
|
"bytesInOutput": 2980
|
17551
17551
|
}
|
17552
17552
|
},
|
17553
|
-
"bytes":
|
17553
|
+
"bytes": 1548526
|
17554
17554
|
}
|
17555
17555
|
}
|
17556
17556
|
}
|
package/dist/meta.esbuild.json
CHANGED
@@ -5935,7 +5935,7 @@
|
|
5935
5935
|
"format": "esm"
|
5936
5936
|
},
|
5937
5937
|
"src/Prebuilt/components/Footer/RoleOptions.tsx": {
|
5938
|
-
"bytes":
|
5938
|
+
"bytes": 7089,
|
5939
5939
|
"imports": [
|
5940
5940
|
{
|
5941
5941
|
"path": "react",
|
@@ -10846,7 +10846,7 @@
|
|
10846
10846
|
"format": "esm"
|
10847
10847
|
},
|
10848
10848
|
"src/Prebuilt/components/HMSVideo/HMSVideo.jsx": {
|
10849
|
-
"bytes":
|
10849
|
+
"bytes": 1333,
|
10850
10850
|
"imports": [
|
10851
10851
|
{
|
10852
10852
|
"path": "react",
|
@@ -11315,7 +11315,7 @@
|
|
11315
11315
|
"format": "esm"
|
11316
11316
|
},
|
11317
11317
|
"src/Prebuilt/layouts/HLSView.jsx": {
|
11318
|
-
"bytes":
|
11318
|
+
"bytes": 26172,
|
11319
11319
|
"imports": [
|
11320
11320
|
{
|
11321
11321
|
"path": "react",
|
@@ -13607,7 +13607,7 @@
|
|
13607
13607
|
"dist/index.js": {
|
13608
13608
|
"imports": [
|
13609
13609
|
{
|
13610
|
-
"path": "dist/chunk-
|
13610
|
+
"path": "dist/chunk-YFJQ4B6X.js",
|
13611
13611
|
"kind": "import-statement"
|
13612
13612
|
}
|
13613
13613
|
],
|
@@ -13680,16 +13680,16 @@
|
|
13680
13680
|
"inputs": {},
|
13681
13681
|
"bytes": 1822
|
13682
13682
|
},
|
13683
|
-
"dist/HLSView-
|
13683
|
+
"dist/HLSView-EDROW5VZ.js.map": {
|
13684
13684
|
"imports": [],
|
13685
13685
|
"exports": [],
|
13686
13686
|
"inputs": {},
|
13687
|
-
"bytes":
|
13687
|
+
"bytes": 88190
|
13688
13688
|
},
|
13689
|
-
"dist/HLSView-
|
13689
|
+
"dist/HLSView-EDROW5VZ.js": {
|
13690
13690
|
"imports": [
|
13691
13691
|
{
|
13692
|
-
"path": "dist/chunk-
|
13692
|
+
"path": "dist/chunk-YFJQ4B6X.js",
|
13693
13693
|
"kind": "import-statement"
|
13694
13694
|
},
|
13695
13695
|
{
|
@@ -13849,7 +13849,7 @@
|
|
13849
13849
|
"entryPoint": "src/Prebuilt/layouts/HLSView.jsx",
|
13850
13850
|
"inputs": {
|
13851
13851
|
"src/Prebuilt/layouts/HLSView.jsx": {
|
13852
|
-
"bytesInOutput":
|
13852
|
+
"bytesInOutput": 25088
|
13853
13853
|
},
|
13854
13854
|
"src/Prebuilt/components/HlsStatsOverlay.jsx": {
|
13855
13855
|
"bytesInOutput": 3521
|
@@ -13861,7 +13861,7 @@
|
|
13861
13861
|
"bytesInOutput": 416
|
13862
13862
|
},
|
13863
13863
|
"src/Prebuilt/components/HMSVideo/HMSVideo.jsx": {
|
13864
|
-
"bytesInOutput":
|
13864
|
+
"bytesInOutput": 1464
|
13865
13865
|
},
|
13866
13866
|
"src/Prebuilt/components/HMSVideo/PlayPauseButton.tsx": {
|
13867
13867
|
"bytesInOutput": 851
|
@@ -13900,15 +13900,15 @@
|
|
13900
13900
|
"bytesInOutput": 2067
|
13901
13901
|
}
|
13902
13902
|
},
|
13903
|
-
"bytes":
|
13903
|
+
"bytes": 54098
|
13904
13904
|
},
|
13905
|
-
"dist/chunk-
|
13905
|
+
"dist/chunk-YFJQ4B6X.js.map": {
|
13906
13906
|
"imports": [],
|
13907
13907
|
"exports": [],
|
13908
13908
|
"inputs": {},
|
13909
|
-
"bytes":
|
13909
|
+
"bytes": 3167979
|
13910
13910
|
},
|
13911
|
-
"dist/chunk-
|
13911
|
+
"dist/chunk-YFJQ4B6X.js": {
|
13912
13912
|
"imports": [
|
13913
13913
|
{
|
13914
13914
|
"path": "react",
|
@@ -16276,7 +16276,7 @@
|
|
16276
16276
|
"external": true
|
16277
16277
|
},
|
16278
16278
|
{
|
16279
|
-
"path": "dist/HLSView-
|
16279
|
+
"path": "dist/HLSView-EDROW5VZ.js",
|
16280
16280
|
"kind": "dynamic-import"
|
16281
16281
|
},
|
16282
16282
|
{
|
@@ -16691,6 +16691,8 @@
|
|
16691
16691
|
"Link",
|
16692
16692
|
"Loading",
|
16693
16693
|
"Logo",
|
16694
|
+
"POLL_STATE",
|
16695
|
+
"POLL_VIEWS",
|
16694
16696
|
"PasswordInput",
|
16695
16697
|
"Popover",
|
16696
16698
|
"Progress",
|
@@ -16741,7 +16743,6 @@
|
|
16741
16743
|
"useBorderAudioLevel",
|
16742
16744
|
"useIsLandscape",
|
16743
16745
|
"useIsSidepaneTypeOpen",
|
16744
|
-
"usePollViewToggle",
|
16745
16746
|
"useRoomLayoutConferencingScreen",
|
16746
16747
|
"useRoomLayoutHeader",
|
16747
16748
|
"useSidepaneToggle",
|
@@ -16749,7 +16750,7 @@
|
|
16749
16750
|
],
|
16750
16751
|
"inputs": {
|
16751
16752
|
"<define:process.env>": {
|
16752
|
-
"bytesInOutput":
|
16753
|
+
"bytesInOutput": 18242
|
16753
16754
|
},
|
16754
16755
|
"../../node_modules/lodash/lodash.js": {
|
16755
16756
|
"bytesInOutput": 224291
|
@@ -17304,7 +17305,7 @@
|
|
17304
17305
|
"bytesInOutput": 4229
|
17305
17306
|
},
|
17306
17307
|
"src/Prebuilt/components/Footer/RoleOptions.tsx": {
|
17307
|
-
"bytesInOutput":
|
17308
|
+
"bytesInOutput": 7326
|
17308
17309
|
},
|
17309
17310
|
"src/Prebuilt/components/Footer/PollsToggle.tsx": {
|
17310
17311
|
"bytesInOutput": 1073
|
@@ -17703,7 +17704,7 @@
|
|
17703
17704
|
"bytesInOutput": 651
|
17704
17705
|
}
|
17705
17706
|
},
|
17706
|
-
"bytes":
|
17707
|
+
"bytes": 1298020
|
17707
17708
|
}
|
17708
17709
|
}
|
17709
17710
|
}
|
package/package.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
"prebuilt",
|
11
11
|
"roomkit"
|
12
12
|
],
|
13
|
-
"version": "0.2.8-alpha.
|
13
|
+
"version": "0.2.8-alpha.11",
|
14
14
|
"author": "100ms",
|
15
15
|
"license": "MIT",
|
16
16
|
"repository": {
|
@@ -82,11 +82,11 @@
|
|
82
82
|
"react": ">=17.0.2 <19.0.0"
|
83
83
|
},
|
84
84
|
"dependencies": {
|
85
|
-
"@100mslive/hls-player": "0.2.8-alpha.
|
85
|
+
"@100mslive/hls-player": "0.2.8-alpha.11",
|
86
86
|
"@100mslive/hms-noise-cancellation": "0.0.0-alpha.1",
|
87
|
-
"@100mslive/hms-virtual-background": "1.12.8-alpha.
|
88
|
-
"@100mslive/react-icons": "0.9.8-alpha.
|
89
|
-
"@100mslive/react-sdk": "0.9.8-alpha.
|
87
|
+
"@100mslive/hms-virtual-background": "1.12.8-alpha.11",
|
88
|
+
"@100mslive/react-icons": "0.9.8-alpha.11",
|
89
|
+
"@100mslive/react-sdk": "0.9.8-alpha.11",
|
90
90
|
"@100mslive/types-prebuilt": "0.12.7",
|
91
91
|
"@emoji-mart/data": "^1.0.6",
|
92
92
|
"@emoji-mart/react": "^1.0.1",
|
@@ -122,5 +122,5 @@
|
|
122
122
|
"uuid": "^8.3.2",
|
123
123
|
"worker-timers": "^7.0.40"
|
124
124
|
},
|
125
|
-
"gitHead": "
|
125
|
+
"gitHead": "c02dfafa58072004d8d90ee521240e46452b564c"
|
126
126
|
}
|
@@ -80,9 +80,12 @@ export const RoleOptions = ({ roleName, peerList }: { roleName: string; peerList
|
|
80
80
|
const { on_stage_role, off_stage_roles = [] } = (elements as DefaultConferencingScreen_Elements)?.on_stage_exp || {};
|
81
81
|
const canRemoveRoleFromStage = permissions?.changeRole && roleName === on_stage_role;
|
82
82
|
const role = useHMSStore(selectRoleByRoleName(roleName));
|
83
|
+
const tracks = useHMSStore(selectTracksMap);
|
84
|
+
if (!role) {
|
85
|
+
return null;
|
86
|
+
}
|
83
87
|
const canPublishAudio = role.publishParams.allowed.includes('audio');
|
84
88
|
const canPublishVideo = role.publishParams.allowed.includes('video');
|
85
|
-
const tracks = useHMSStore(selectTracksMap);
|
86
89
|
|
87
90
|
let isVideoOnForSomePeers = false;
|
88
91
|
let isAudioOnForSomePeers = false;
|
@@ -33,20 +33,32 @@ import { Loading } from '../../Loading';
|
|
33
33
|
import { Text } from '../../Text';
|
34
34
|
import { config, theme, useTheme } from '../../Theme';
|
35
35
|
import { Tooltip } from '../../Tooltip';
|
36
|
-
import {
|
36
|
+
import { useSidepaneToggle } from '../components/AppData/useSidepane';
|
37
37
|
import { useRoomLayoutConferencingScreen } from '../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';
|
38
38
|
import { useIsLandscape } from '../common/hooks';
|
39
|
-
import { APP_DATA, EMOJI_REACTION_TYPE, SIDE_PANE_OPTIONS } from '../common/constants';
|
39
|
+
import { APP_DATA, EMOJI_REACTION_TYPE, POLL_STATE, POLL_VIEWS, SIDE_PANE_OPTIONS } from '../common/constants';
|
40
40
|
|
41
41
|
let hlsPlayer;
|
42
42
|
const toastMap = {};
|
43
43
|
|
44
|
+
const ToggleChat = () => {
|
45
|
+
const { elements } = useRoomLayoutConferencingScreen();
|
46
|
+
const sidepane = useHMSStore(selectAppData(APP_DATA.sidePane));
|
47
|
+
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
48
|
+
const showChat = !!elements?.chat;
|
49
|
+
const isMobile = useMedia(config.media.md);
|
50
|
+
useEffect(() => {
|
51
|
+
if (!sidepane && isMobile && showChat) {
|
52
|
+
toggleChat();
|
53
|
+
}
|
54
|
+
}, [sidepane, isMobile, toggleChat, showChat]);
|
55
|
+
return null;
|
56
|
+
};
|
44
57
|
const HLSView = () => {
|
45
58
|
const videoRef = useRef(null);
|
46
59
|
const hlsViewRef = useRef();
|
47
60
|
const hlsState = useHMSStore(selectHLSState);
|
48
61
|
const enablHlsStats = useHMSStore(selectAppData(APP_DATA.hlsStats));
|
49
|
-
const { elements, screenType } = useRoomLayoutConferencingScreen();
|
50
62
|
const notification = useHMSNotifications(HMSNotificationTypes.POLL_STOPPED);
|
51
63
|
const hmsActions = useHMSActions();
|
52
64
|
const { themeType } = useTheme();
|
@@ -63,17 +75,13 @@ const HLSView = () => {
|
|
63
75
|
const [isPaused, setIsPaused] = useState(false);
|
64
76
|
const [show, toggle] = useToggle(false);
|
65
77
|
const lastHlsUrl = usePrevious(hlsUrl);
|
66
|
-
const togglePollView = usePollViewToggle();
|
67
78
|
const vanillaStore = useHMSVanillaStore();
|
68
79
|
const [controlsVisible, setControlsVisible] = useState(true);
|
69
80
|
const [isUserSelectedAuto, setIsUserSelectedAuto] = useState(true);
|
70
81
|
const [qualityDropDownOpen, setQualityDropDownOpen] = useState(false);
|
71
82
|
const controlsRef = useRef(null);
|
72
83
|
const controlsTimerRef = useRef();
|
73
|
-
const sidepane = useHMSStore(selectAppData(APP_DATA.sidePane));
|
74
|
-
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
75
84
|
const [seekProgress, setSeekProgress] = useState(false);
|
76
|
-
const showChat = !!elements?.chat;
|
77
85
|
const isFullScreenSupported = screenfull.isEnabled;
|
78
86
|
|
79
87
|
const isMobile = useMedia(config.media.md);
|
@@ -84,13 +92,6 @@ const HLSView = () => {
|
|
84
92
|
});
|
85
93
|
const [showLoader, setShowLoader] = useState(false);
|
86
94
|
|
87
|
-
const isMwebHLSStream = screenType === 'hls_live_streaming' && isMobile;
|
88
|
-
|
89
|
-
useEffect(() => {
|
90
|
-
if (sidepane === '' && isMwebHLSStream && showChat) {
|
91
|
-
toggleChat();
|
92
|
-
}
|
93
|
-
}, [sidepane, isMwebHLSStream, toggleChat, showChat]);
|
94
95
|
// FIXME: move this logic to player controller in next release
|
95
96
|
useEffect(() => {
|
96
97
|
/**
|
@@ -176,7 +177,12 @@ const HLSView = () => {
|
|
176
177
|
title: `${pollStartedBy} started a ${poll.type}: ${poll.title}`,
|
177
178
|
action: (
|
178
179
|
<Button
|
179
|
-
onClick={() =>
|
180
|
+
onClick={() => {
|
181
|
+
hmsActions.setAppData({
|
182
|
+
[POLL_STATE.pollInView]: pollId,
|
183
|
+
[POLL_STATE.view]: POLL_VIEWS.VOTE,
|
184
|
+
});
|
185
|
+
}}
|
180
186
|
variant="standard"
|
181
187
|
css={{
|
182
188
|
backgroundColor: '$surface_bright',
|
@@ -246,7 +252,7 @@ const HLSView = () => {
|
|
246
252
|
hlsPlayer.reset();
|
247
253
|
};
|
248
254
|
}
|
249
|
-
}, [hlsUrl,
|
255
|
+
}, [hlsUrl, vanillaStore, hmsActions]);
|
250
256
|
|
251
257
|
/**
|
252
258
|
* initialize and subscribe to hlsState
|
@@ -352,28 +358,36 @@ const HLSView = () => {
|
|
352
358
|
|
353
359
|
if (!hlsUrl || streamEnded) {
|
354
360
|
return (
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
361
|
+
<>
|
362
|
+
<ToggleChat />
|
363
|
+
{hlsViewRef.current && (isMobile || isLandscape) && (
|
364
|
+
<Box css={{ position: 'fixed', left: '$4', top: '$4', zIndex: 11 }}>
|
365
|
+
<LeaveRoom screenType="hls_live_streaming" container={hlsViewRef.current} />
|
366
|
+
</Box>
|
367
|
+
)}
|
368
|
+
<Flex
|
369
|
+
key="hls-viewer"
|
370
|
+
id={`hls-viewer-${themeType}`}
|
371
|
+
ref={hlsViewRef}
|
372
|
+
direction={isMobile || isLandscape ? 'column' : 'row'}
|
373
|
+
justify="center"
|
374
|
+
css={{
|
375
|
+
flex: isLandscape ? '2 1 0' : '1 1 0',
|
376
|
+
}}
|
377
|
+
>
|
378
|
+
<Flex align="center" justify="center" direction="column" css={{ size: '100%', px: '$10' }}>
|
379
|
+
<Flex css={{ c: '$on_surface_high', r: '$round', bg: '$surface_default', p: '$2' }}>
|
380
|
+
{streamEnded ? <ColoredHandIcon height={56} width={56} /> : <GoLiveIcon height={56} width={56} />}
|
381
|
+
</Flex>
|
382
|
+
<Text variant="h5" css={{ c: '$on_surface_high', mt: '$10', mb: 0, textAlign: 'center' }}>
|
383
|
+
{streamEnded ? 'Stream has ended' : 'Stream yet to start'}
|
384
|
+
</Text>
|
385
|
+
<Text variant="md" css={{ textAlign: 'center', mt: '$4', c: '$on_surface_medium' }}>
|
386
|
+
{streamEnded ? 'Have a nice day!' : 'Sit back and relax'}
|
387
|
+
</Text>
|
368
388
|
</Flex>
|
369
|
-
<Text variant="h5" css={{ c: '$on_surface_high', mt: '$10', mb: 0, textAlign: 'center' }}>
|
370
|
-
{streamEnded ? 'Stream has ended' : 'Stream yet to start'}
|
371
|
-
</Text>
|
372
|
-
<Text variant="md" css={{ textAlign: 'center', mt: '$4', c: '$on_surface_medium' }}>
|
373
|
-
{streamEnded ? 'Have a nice day!' : 'Sit back and relax'}
|
374
|
-
</Text>
|
375
389
|
</Flex>
|
376
|
-
|
390
|
+
</>
|
377
391
|
);
|
378
392
|
}
|
379
393
|
return (
|
@@ -385,11 +399,16 @@ const HLSView = () => {
|
|
385
399
|
justify="center"
|
386
400
|
css={{
|
387
401
|
flex: isLandscape ? '2 1 0' : '1 1 0',
|
402
|
+
'&:fullscreen': {
|
403
|
+
'& video': {
|
404
|
+
height: 'unset !important',
|
405
|
+
},
|
406
|
+
},
|
388
407
|
}}
|
389
408
|
>
|
390
409
|
{hlsViewRef.current && (isMobile || isLandscape) && (
|
391
410
|
<Box css={{ position: 'fixed', left: '$4', top: '$4', zIndex: 11 }}>
|
392
|
-
<LeaveRoom screenType=
|
411
|
+
<LeaveRoom screenType="hls_live_streaming" container={hlsViewRef.current} />
|
393
412
|
</Box>
|
394
413
|
)}
|
395
414
|
|
@@ -638,7 +657,7 @@ const HLSView = () => {
|
|
638
657
|
</HMSVideoPlayer.Root>
|
639
658
|
</Flex>
|
640
659
|
</HMSPlayerContext.Provider>
|
641
|
-
|
660
|
+
<ToggleChat />
|
642
661
|
{isMobile && !isFullScreen && <HLSViewTitle />}
|
643
662
|
</Flex>
|
644
663
|
);
|