@100mslive/roomkit-react 0.2.8-alpha.7 → 0.2.8-alpha.9
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-MYKM5AXS.js → HLSView-TOMPA4E4.js} +191 -188
- package/dist/HLSView-TOMPA4E4.js.map +7 -0
- package/dist/Prebuilt/components/HMSVideo/HLSQualitySelector.d.ts +3 -2
- package/dist/Prebuilt/components/HMSVideo/VideoProgress.d.ts +1 -3
- package/dist/Prebuilt/components/HMSVideo/index.d.ts +1 -3
- package/dist/Prebuilt/components/HMSVideo/utils.d.ts +0 -1
- package/dist/Prebuilt/components/Leave/DesktopLeaveRoom.d.ts +2 -1
- package/dist/Prebuilt/components/Leave/LeaveRoom.d.ts +2 -1
- package/dist/Prebuilt/components/Leave/MwebLeaveRoom.d.ts +2 -1
- package/dist/Prebuilt/components/RaiseHand.d.ts +4 -1
- package/dist/Sheet/Sheet.d.ts +1 -0
- package/dist/{chunk-DRBTAFKN.js → chunk-FUDX3LDB.js} +820 -723
- package/dist/chunk-FUDX3LDB.js.map +7 -0
- package/dist/index.cjs.js +1324 -1220
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +274 -209
- package/dist/meta.esbuild.json +283 -216
- package/package.json +6 -6
- package/src/Button/Button.tsx +4 -4
- package/src/Fieldset/Fieldset.tsx +1 -1
- package/src/Input/PasswordInput.stories.tsx +1 -1
- package/src/Pagination/StyledPagination.stories.tsx +2 -2
- package/src/Prebuilt/IconButton.tsx +1 -1
- package/src/Prebuilt/components/Chat/Chat.tsx +41 -1
- package/src/Prebuilt/components/Chat/ChatFooter.tsx +19 -15
- package/src/Prebuilt/components/EmojiReaction.jsx +32 -22
- package/src/Prebuilt/components/Footer/RoleOptions.tsx +125 -126
- package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.tsx +85 -78
- package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +3 -4
- package/src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx +49 -56
- package/src/Prebuilt/components/HMSVideo/VideoProgress.tsx +6 -6
- package/src/Prebuilt/components/HMSVideo/VideoTime.tsx +2 -1
- package/src/Prebuilt/components/HMSVideo/utils.ts +0 -8
- package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.tsx +1 -1
- package/src/Prebuilt/components/Leave/DesktopLeaveRoom.tsx +50 -46
- package/src/Prebuilt/components/Leave/LeaveRoom.tsx +10 -5
- package/src/Prebuilt/components/Leave/MwebLeaveRoom.tsx +12 -6
- package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +5 -2
- package/src/Prebuilt/components/Notifications/HandRaisedNotifications.tsx +4 -1
- package/src/Prebuilt/components/Polls/Voting/Voting.tsx +3 -2
- package/src/Prebuilt/components/Polls/common/OptionInputWithDelete.tsx +1 -1
- package/src/Prebuilt/components/Polls/common/utils.ts +2 -2
- package/src/Prebuilt/components/RaiseHand.tsx +8 -2
- package/src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx +41 -14
- package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +2 -2
- package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +1 -1
- package/src/Prebuilt/layouts/HLSView.jsx +58 -47
- package/src/Prebuilt/layouts/SidePane.tsx +1 -2
- package/src/Prebuilt/layouts/VideoStreamingSection.tsx +3 -2
- package/src/Prebuilt/primitives/DialogContent.jsx +1 -1
- package/src/Sheet/Sheet.tsx +3 -3
- package/dist/HLSView-MYKM5AXS.js.map +0 -7
- package/dist/chunk-DRBTAFKN.js.map +0 -7
@@ -14,6 +14,7 @@ import {
|
|
14
14
|
LeaveRoom,
|
15
15
|
Loading,
|
16
16
|
Logo,
|
17
|
+
RoomDetailsRow,
|
17
18
|
SIDE_PANE_OPTIONS,
|
18
19
|
Sheet,
|
19
20
|
Slider,
|
@@ -24,20 +25,21 @@ import {
|
|
24
25
|
__objRest,
|
25
26
|
__spreadValues,
|
26
27
|
config,
|
27
|
-
getFormattedCount,
|
28
28
|
init_define_process_env,
|
29
29
|
styled,
|
30
30
|
theme,
|
31
31
|
useIsLandscape,
|
32
|
+
useIsSidepaneTypeOpen,
|
32
33
|
usePollViewToggle,
|
33
34
|
useRoomLayoutConferencingScreen,
|
35
|
+
useRoomLayoutHeader,
|
34
36
|
useSidepaneToggle,
|
35
37
|
useTheme
|
36
|
-
} from "./chunk-
|
38
|
+
} from "./chunk-FUDX3LDB.js";
|
37
39
|
|
38
40
|
// src/Prebuilt/layouts/HLSView.jsx
|
39
41
|
init_define_process_env();
|
40
|
-
import React14, { useCallback
|
42
|
+
import React14, { useCallback, useEffect as useEffect3, useRef, useState as useState4 } from "react";
|
41
43
|
import { useFullscreen, useMedia as useMedia4, usePrevious, useToggle } from "react-use";
|
42
44
|
import { HLSPlaybackState, HMSHLSPlayer, HMSHLSPlayerEvents as HMSHLSPlayerEvents2 } from "@100mslive/hls-player";
|
43
45
|
import screenfull from "screenfull";
|
@@ -45,12 +47,12 @@ import {
|
|
45
47
|
HLSPlaylistType,
|
46
48
|
HMSNotificationTypes,
|
47
49
|
selectAppData,
|
48
|
-
selectHLSState
|
50
|
+
selectHLSState,
|
49
51
|
selectPeerNameByID,
|
50
52
|
selectPollByID,
|
51
53
|
useHMSActions,
|
52
54
|
useHMSNotifications,
|
53
|
-
useHMSStore
|
55
|
+
useHMSStore,
|
54
56
|
useHMSVanillaStore
|
55
57
|
} from "@100mslive/react-sdk";
|
56
58
|
import { BackwardArrowIcon, ColoredHandIcon, ForwardArrowIcon, GoLiveIcon } from "@100mslive/react-icons";
|
@@ -178,13 +180,12 @@ var HMSVideo = forwardRef((_a, videoRef) => {
|
|
178
180
|
position: "relative",
|
179
181
|
"& video::cue": {
|
180
182
|
color: "white",
|
181
|
-
// textShadow: '0px 0px 4px #000',
|
182
183
|
whiteSpace: "pre-line",
|
183
|
-
fontSize: "$
|
184
|
+
fontSize: "$sm",
|
184
185
|
fontStyle: "normal",
|
185
|
-
fontWeight: "$
|
186
|
+
fontWeight: "$regular",
|
186
187
|
lineHeight: "$sm",
|
187
|
-
letterSpacing: "0.
|
188
|
+
letterSpacing: "0.25px"
|
188
189
|
},
|
189
190
|
"& video::-webkit-media-text-track-display": {
|
190
191
|
padding: "0 $4",
|
@@ -282,16 +283,9 @@ function getDurationFromSeconds2(timeInSeconds) {
|
|
282
283
|
}
|
283
284
|
return videoTimeStr;
|
284
285
|
}
|
285
|
-
function getTime(timeInMilles) {
|
286
|
-
const timeInSeconds = Math.floor(timeInMilles / 1e3);
|
287
|
-
const hours = Math.floor(timeInSeconds / 3600);
|
288
|
-
const minutes = Math.floor(timeInSeconds % 3600 / 60);
|
289
|
-
const hour = hours !== 0 ? `${hours < 10 ? "0" : ""}${hours}` : "";
|
290
|
-
return hour + `${hour ? "h:" : ""}` + minutes + "m";
|
291
|
-
}
|
292
286
|
|
293
287
|
// src/Prebuilt/components/HMSVideo/VideoProgress.tsx
|
294
|
-
var VideoProgress = (
|
288
|
+
var VideoProgress = () => {
|
295
289
|
const { hlsPlayer: hlsPlayer2 } = useHMSPlayerContext();
|
296
290
|
const [videoProgress, setVideoProgress] = useState(0);
|
297
291
|
const [bufferProgress, setBufferProgress] = useState(0);
|
@@ -304,14 +298,15 @@ var VideoProgress = ({ isDvr = true }) => {
|
|
304
298
|
return;
|
305
299
|
}
|
306
300
|
const timeupdateHandler = () => {
|
307
|
-
var _a;
|
301
|
+
var _a, _b;
|
308
302
|
if (!videoEl) {
|
309
303
|
return;
|
310
304
|
}
|
311
|
-
const
|
305
|
+
const duration = isFinite(videoEl.duration) ? videoEl.duration : ((_a = videoEl.seekable) == null ? void 0 : _a.end(0)) || 0;
|
306
|
+
const videoProgress2 = Math.floor(getPercentage(videoEl.currentTime, duration));
|
312
307
|
let bufferProgress2 = 0;
|
313
308
|
if (videoEl.buffered.length > 0) {
|
314
|
-
bufferProgress2 = Math.floor(getPercentage((
|
309
|
+
bufferProgress2 = Math.floor(getPercentage((_b = videoEl.buffered) == null ? void 0 : _b.end(0), duration));
|
315
310
|
}
|
316
311
|
setVideoProgress(isNaN(videoProgress2) ? 0 : videoProgress2);
|
317
312
|
setBufferProgress(isNaN(bufferProgress2) ? 0 : bufferProgress2);
|
@@ -332,7 +327,7 @@ var VideoProgress = ({ isDvr = true }) => {
|
|
332
327
|
if (!videoEl) {
|
333
328
|
return null;
|
334
329
|
}
|
335
|
-
return /* @__PURE__ */ React6.createElement(Flex, { align: "center", css: { cursor: "pointer", h: "$2", alignSelf: "stretch"
|
330
|
+
return /* @__PURE__ */ React6.createElement(Flex, { align: "center", css: { cursor: "pointer", h: "$2", alignSelf: "stretch" } }, /* @__PURE__ */ React6.createElement(
|
336
331
|
Slider,
|
337
332
|
{
|
338
333
|
id: "video-actual-rest",
|
@@ -340,8 +335,7 @@ var VideoProgress = ({ isDvr = true }) => {
|
|
340
335
|
cursor: "pointer",
|
341
336
|
h: "$2",
|
342
337
|
zIndex: 1,
|
343
|
-
transition: `all .2s ease .5s
|
344
|
-
pointerEvents: isDvr ? "" : "none"
|
338
|
+
transition: `all .2s ease .5s`
|
345
339
|
},
|
346
340
|
min: 0,
|
347
341
|
max: 100,
|
@@ -349,7 +343,7 @@ var VideoProgress = ({ isDvr = true }) => {
|
|
349
343
|
value: [videoProgress],
|
350
344
|
showTooltip: false,
|
351
345
|
onValueChange: onProgress,
|
352
|
-
thumbStyles: { w: "$6", h: "$6"
|
346
|
+
thumbStyles: { w: "$6", h: "$6" }
|
353
347
|
}
|
354
348
|
), /* @__PURE__ */ React6.createElement(
|
355
349
|
Box,
|
@@ -378,7 +372,8 @@ var VideoTime = () => {
|
|
378
372
|
const timeupdateHandler = (currentTime) => {
|
379
373
|
const videoEl = hlsPlayer2 == null ? void 0 : hlsPlayer2.getVideoElement();
|
380
374
|
if (videoEl) {
|
381
|
-
|
375
|
+
const duration = isFinite(videoEl.duration) ? videoEl.duration : videoEl.seekable.end(0) || 0;
|
376
|
+
setVideoTime(getDurationFromSeconds2(duration - currentTime));
|
382
377
|
} else {
|
383
378
|
setVideoTime(getDurationFromSeconds2(currentTime));
|
384
379
|
}
|
@@ -584,10 +579,14 @@ function HLSQualitySelector({
|
|
584
579
|
layers,
|
585
580
|
onQualityChange,
|
586
581
|
selection,
|
587
|
-
isAuto
|
582
|
+
isAuto,
|
583
|
+
containerRef
|
588
584
|
}) {
|
589
585
|
const isMobile = useMedia3(config.media.md);
|
590
586
|
const isLandscape = useIsLandscape();
|
587
|
+
if (layers.length === 0) {
|
588
|
+
return null;
|
589
|
+
}
|
591
590
|
if (isMobile || isLandscape) {
|
592
591
|
return /* @__PURE__ */ React12.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React12.createElement(Sheet.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React12.createElement(
|
593
592
|
Flex,
|
@@ -600,26 +599,57 @@ function HLSQualitySelector({
|
|
600
599
|
}
|
601
600
|
},
|
602
601
|
/* @__PURE__ */ React12.createElement(SettingsIcon, null)
|
603
|
-
)),
|
604
|
-
Sheet.
|
602
|
+
)), /* @__PURE__ */ React12.createElement(
|
603
|
+
Sheet.Content,
|
605
604
|
{
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
w: "100%",
|
610
|
-
justifyContent: "space-between",
|
611
|
-
mt: "$8",
|
612
|
-
fontSize: "$md",
|
613
|
-
px: "$10",
|
614
|
-
pb: "$8",
|
615
|
-
borderBottom: "1px solid $border_bright",
|
616
|
-
alignItems: "center"
|
617
|
-
}
|
605
|
+
container: containerRef,
|
606
|
+
css: { bg: "$surface_default", pb: "$1" },
|
607
|
+
onClick: () => onOpenChange(false)
|
618
608
|
},
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
609
|
+
/* @__PURE__ */ React12.createElement(
|
610
|
+
Sheet.Title,
|
611
|
+
{
|
612
|
+
css: {
|
613
|
+
display: "flex",
|
614
|
+
color: "$on_surface_high",
|
615
|
+
w: "100%",
|
616
|
+
justifyContent: "space-between",
|
617
|
+
mt: "$8",
|
618
|
+
fontSize: "$md",
|
619
|
+
px: "$10",
|
620
|
+
pb: "$8",
|
621
|
+
borderBottom: "1px solid $border_bright",
|
622
|
+
alignItems: "center"
|
623
|
+
}
|
624
|
+
},
|
625
|
+
"Quality",
|
626
|
+
/* @__PURE__ */ React12.createElement(Sheet.Close, { css: { color: "$on_surface_high" }, onClick: () => onOpenChange(false) }, /* @__PURE__ */ React12.createElement(CrossIcon2, null))
|
627
|
+
),
|
628
|
+
layers.map((layer) => {
|
629
|
+
return /* @__PURE__ */ React12.createElement(
|
630
|
+
Flex,
|
631
|
+
{
|
632
|
+
align: "center",
|
633
|
+
css: {
|
634
|
+
w: "100%",
|
635
|
+
bg: "$surface_default",
|
636
|
+
"&:hover": {
|
637
|
+
bg: "$surface_brighter"
|
638
|
+
},
|
639
|
+
cursor: "pointer",
|
640
|
+
gap: "$4",
|
641
|
+
py: "$8",
|
642
|
+
px: "$10"
|
643
|
+
},
|
644
|
+
key: layer.width,
|
645
|
+
onClick: () => onQualityChange(layer)
|
646
|
+
},
|
647
|
+
/* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } }, getQualityText(layer)),
|
648
|
+
/* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { flex: "1 1 0", c: "$on_surface_low", pl: "$2" } }, getBitrateText(layer)),
|
649
|
+
!isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React12.createElement(CheckIcon, { width: "16px", height: "16px" })
|
650
|
+
);
|
651
|
+
}),
|
652
|
+
/* @__PURE__ */ React12.createElement(
|
623
653
|
Flex,
|
624
654
|
{
|
625
655
|
align: "center",
|
@@ -634,36 +664,15 @@ function HLSQualitySelector({
|
|
634
664
|
py: "$8",
|
635
665
|
px: "$10"
|
636
666
|
},
|
637
|
-
key:
|
638
|
-
onClick: () => onQualityChange(
|
667
|
+
key: "auto",
|
668
|
+
onClick: () => onQualityChange({ height: "auto" })
|
639
669
|
},
|
640
|
-
/* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } },
|
641
|
-
/* @__PURE__ */ React12.createElement(
|
642
|
-
|
643
|
-
|
644
|
-
}), /* @__PURE__ */ React12.createElement(
|
645
|
-
Flex,
|
646
|
-
{
|
647
|
-
align: "center",
|
648
|
-
css: {
|
649
|
-
w: "100%",
|
650
|
-
bg: "$surface_default",
|
651
|
-
"&:hover": {
|
652
|
-
bg: "$surface_brighter"
|
653
|
-
},
|
654
|
-
cursor: "pointer",
|
655
|
-
gap: "$4",
|
656
|
-
py: "$8",
|
657
|
-
px: "$10"
|
658
|
-
},
|
659
|
-
key: "auto",
|
660
|
-
onClick: () => onQualityChange({ height: "auto" })
|
661
|
-
},
|
662
|
-
/* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
|
663
|
-
isAuto && /* @__PURE__ */ React12.createElement(CheckIcon, { width: "16px", height: "16px" })
|
664
|
-
)));
|
670
|
+
/* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
|
671
|
+
isAuto && /* @__PURE__ */ React12.createElement(CheckIcon, { width: "16px", height: "16px" })
|
672
|
+
)
|
673
|
+
));
|
665
674
|
}
|
666
|
-
return /* @__PURE__ */ React12.createElement(Dropdown.Root, { open, onOpenChange: (value) => onOpenChange(value) }, /* @__PURE__ */ React12.createElement(Dropdown.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React12.createElement(
|
675
|
+
return /* @__PURE__ */ React12.createElement(Dropdown.Root, { open, onOpenChange: (value) => onOpenChange(value), modal: false }, /* @__PURE__ */ React12.createElement(Dropdown.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React12.createElement(
|
667
676
|
Flex,
|
668
677
|
{
|
669
678
|
css: {
|
@@ -710,7 +719,7 @@ function HLSQualitySelector({
|
|
710
719
|
selection && Math.min(selection.width || 0, selection.height || 0),
|
711
720
|
"p"
|
712
721
|
)))
|
713
|
-
)),
|
722
|
+
)), /* @__PURE__ */ React12.createElement(Dropdown.Portal, { container: containerRef }, /* @__PURE__ */ React12.createElement(
|
714
723
|
Dropdown.Content,
|
715
724
|
{
|
716
725
|
sideOffset: 5,
|
@@ -764,48 +773,50 @@ function HLSQualitySelector({
|
|
764
773
|
/* @__PURE__ */ React12.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
|
765
774
|
isAuto && /* @__PURE__ */ React12.createElement(CheckIcon, { width: "16px", height: "16px" })
|
766
775
|
)
|
767
|
-
));
|
776
|
+
)));
|
768
777
|
}
|
769
778
|
var getQualityText = (layer) => `${Math.min(layer.height || 0, layer.width || 0)}p `;
|
770
779
|
var getBitrateText = (layer) => `(${(Number(layer.bitrate / 1e3) / 1e3).toFixed(2)} Mbps)`;
|
771
780
|
|
772
781
|
// src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx
|
773
782
|
init_define_process_env();
|
774
|
-
import React13
|
775
|
-
import {
|
783
|
+
import React13 from "react";
|
784
|
+
import { ChevronDownIcon } from "@100mslive/react-icons";
|
776
785
|
var HLSViewTitle = () => {
|
777
|
-
const
|
778
|
-
const
|
779
|
-
const
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
786
|
+
const { title, details } = useRoomLayoutHeader();
|
787
|
+
const toggleDetailsPane = useSidepaneToggle(SIDE_PANE_OPTIONS.ROOM_DETAILS);
|
788
|
+
const isDetailSidepaneOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.ROOM_DETAILS);
|
789
|
+
if (isDetailSidepaneOpen) {
|
790
|
+
return /* @__PURE__ */ React13.createElement(
|
791
|
+
Flex,
|
792
|
+
{
|
793
|
+
gap: "4",
|
794
|
+
align: "center",
|
795
|
+
justify: "between",
|
796
|
+
css: {
|
797
|
+
position: "relative",
|
798
|
+
h: "fit-content",
|
799
|
+
w: "100%",
|
800
|
+
borderBottom: "1px solid $border_bright",
|
801
|
+
p: "$8",
|
802
|
+
backgroundColor: "$surface_dim"
|
803
|
+
}
|
804
|
+
},
|
805
|
+
/* @__PURE__ */ React13.createElement(Text, { variant: "sub2", css: { fontWeight: "$semiBold" } }, "About Session"),
|
806
|
+
/* @__PURE__ */ React13.createElement(
|
807
|
+
Flex,
|
808
|
+
{
|
809
|
+
onClick: toggleDetailsPane,
|
810
|
+
css: {
|
811
|
+
color: "$on_surface_high",
|
812
|
+
cursor: "pointer",
|
813
|
+
"&:hover": { opacity: "0.8" }
|
814
|
+
}
|
815
|
+
},
|
816
|
+
/* @__PURE__ */ React13.createElement(ChevronDownIcon, null)
|
817
|
+
)
|
818
|
+
);
|
819
|
+
}
|
809
820
|
return /* @__PURE__ */ React13.createElement(
|
810
821
|
Flex,
|
811
822
|
{
|
@@ -821,19 +832,7 @@ var HLSViewTitle = () => {
|
|
821
832
|
}
|
822
833
|
},
|
823
834
|
/* @__PURE__ */ React13.createElement(Logo, null),
|
824
|
-
/* @__PURE__ */ React13.createElement(Flex, { direction: "column" }, /* @__PURE__ */ React13.createElement(Text, { variant: "sub2", css: { fontWeight: "$semiBold" } },
|
825
|
-
Flex,
|
826
|
-
{
|
827
|
-
direction: "column",
|
828
|
-
css: {
|
829
|
-
w: "$3",
|
830
|
-
h: "$3",
|
831
|
-
backgroundColor: "$on_surface_medium",
|
832
|
-
borderRadius: "50%",
|
833
|
-
alignSelf: "center"
|
834
|
-
}
|
835
|
-
}
|
836
|
-
), /* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { color: "$on_surface_medium" } }, "Started " + getTime(liveTime) + " ago")))
|
835
|
+
/* @__PURE__ */ React13.createElement(Flex, { direction: "column" }, title ? /* @__PURE__ */ React13.createElement(Text, { variant: "sub2", css: { fontWeight: "$semiBold" } }, title) : null, /* @__PURE__ */ React13.createElement(Flex, null, /* @__PURE__ */ React13.createElement(RoomDetailsRow, { details }), /* @__PURE__ */ React13.createElement(Text, { variant: "caption", css: { color: "$on_surface_medium" }, onClick: toggleDetailsPane }, "\xA0...more")))
|
837
836
|
);
|
838
837
|
};
|
839
838
|
|
@@ -841,36 +840,36 @@ var HLSViewTitle = () => {
|
|
841
840
|
var hlsPlayer;
|
842
841
|
var toastMap = {};
|
843
842
|
var HLSView = () => {
|
844
|
-
var _a, _b;
|
845
|
-
const videoRef =
|
846
|
-
const hlsViewRef =
|
847
|
-
const hlsState =
|
848
|
-
const enablHlsStats =
|
843
|
+
var _a, _b, _c, _d, _e, _f;
|
844
|
+
const videoRef = useRef(null);
|
845
|
+
const hlsViewRef = useRef();
|
846
|
+
const hlsState = useHMSStore(selectHLSState);
|
847
|
+
const enablHlsStats = useHMSStore(selectAppData(APP_DATA.hlsStats));
|
849
848
|
const { elements, screenType } = useRoomLayoutConferencingScreen();
|
850
849
|
const notification = useHMSNotifications(HMSNotificationTypes.POLL_STOPPED);
|
851
850
|
const hmsActions = useHMSActions();
|
852
851
|
const { themeType } = useTheme();
|
853
|
-
const [streamEnded, setStreamEnded] =
|
854
|
-
let [hlsStatsState, setHlsStatsState] =
|
852
|
+
const [streamEnded, setStreamEnded] = useState4(false);
|
853
|
+
let [hlsStatsState, setHlsStatsState] = useState4(null);
|
855
854
|
const hlsUrl = (_a = hlsState.variants[0]) == null ? void 0 : _a.url;
|
856
|
-
const [availableLayers, setAvailableLayers] =
|
857
|
-
const [isVideoLive, setIsVideoLive] =
|
858
|
-
const [isCaptionEnabled, setIsCaptionEnabled] =
|
859
|
-
const [hasCaptions, setHasCaptions] =
|
860
|
-
const [currentSelectedQuality, setCurrentSelectedQuality] =
|
861
|
-
const [isHlsAutoplayBlocked, setIsHlsAutoplayBlocked] =
|
862
|
-
const [isSeekEnabled, setIsSeekEnabled] =
|
863
|
-
const [isPaused, setIsPaused] =
|
855
|
+
const [availableLayers, setAvailableLayers] = useState4([]);
|
856
|
+
const [isVideoLive, setIsVideoLive] = useState4(true);
|
857
|
+
const [isCaptionEnabled, setIsCaptionEnabled] = useState4(true);
|
858
|
+
const [hasCaptions, setHasCaptions] = useState4(false);
|
859
|
+
const [currentSelectedQuality, setCurrentSelectedQuality] = useState4(null);
|
860
|
+
const [isHlsAutoplayBlocked, setIsHlsAutoplayBlocked] = useState4(false);
|
861
|
+
const [isSeekEnabled, setIsSeekEnabled] = useState4(false);
|
862
|
+
const [isPaused, setIsPaused] = useState4(false);
|
864
863
|
const [show, toggle] = useToggle(false);
|
865
864
|
const lastHlsUrl = usePrevious(hlsUrl);
|
866
865
|
const togglePollView = usePollViewToggle();
|
867
866
|
const vanillaStore = useHMSVanillaStore();
|
868
|
-
const [controlsVisible, setControlsVisible] =
|
869
|
-
const [isUserSelectedAuto, setIsUserSelectedAuto] =
|
870
|
-
const [qualityDropDownOpen, setQualityDropDownOpen] =
|
871
|
-
const controlsRef =
|
872
|
-
const controlsTimerRef =
|
873
|
-
const sidepane =
|
867
|
+
const [controlsVisible, setControlsVisible] = useState4(true);
|
868
|
+
const [isUserSelectedAuto, setIsUserSelectedAuto] = useState4(true);
|
869
|
+
const [qualityDropDownOpen, setQualityDropDownOpen] = useState4(false);
|
870
|
+
const controlsRef = useRef(null);
|
871
|
+
const controlsTimerRef = useRef();
|
872
|
+
const sidepane = useHMSStore(selectAppData(APP_DATA.sidePane));
|
874
873
|
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
875
874
|
const showChat = !!(elements == null ? void 0 : elements.chat);
|
876
875
|
const isFullScreenSupported = screenfull.isEnabled;
|
@@ -879,14 +878,14 @@ var HLSView = () => {
|
|
879
878
|
const isFullScreen = useFullscreen(hlsViewRef, show, {
|
880
879
|
onClose: () => toggle(false)
|
881
880
|
});
|
882
|
-
const [showLoader, setShowLoader] =
|
881
|
+
const [showLoader, setShowLoader] = useState4(false);
|
883
882
|
const isMwebHLSStream = screenType === "hls_live_streaming" && isMobile;
|
884
|
-
|
883
|
+
useEffect3(() => {
|
885
884
|
if (sidepane === "" && isMwebHLSStream && showChat) {
|
886
885
|
toggleChat();
|
887
886
|
}
|
888
887
|
}, [sidepane, isMwebHLSStream, toggleChat, showChat]);
|
889
|
-
|
888
|
+
useEffect3(() => {
|
890
889
|
const videoEl = videoRef.current;
|
891
890
|
const showLoader2 = () => setShowLoader(true);
|
892
891
|
const hideLoader = () => setShowLoader(false);
|
@@ -897,12 +896,12 @@ var HLSView = () => {
|
|
897
896
|
videoEl == null ? void 0 : videoEl.removeEventListener("waiting", showLoader2);
|
898
897
|
};
|
899
898
|
}, []);
|
900
|
-
|
899
|
+
useEffect3(() => {
|
901
900
|
if (streamEnded && lastHlsUrl !== hlsUrl) {
|
902
901
|
setStreamEnded(false);
|
903
902
|
}
|
904
903
|
}, [hlsUrl, streamEnded, lastHlsUrl]);
|
905
|
-
|
904
|
+
useEffect3(() => {
|
906
905
|
if (!notification)
|
907
906
|
return;
|
908
907
|
const toastID = toastMap == null ? void 0 : toastMap[notification.data.id];
|
@@ -911,7 +910,7 @@ var HLSView = () => {
|
|
911
910
|
delete toastMap[notification.data.id];
|
912
911
|
}
|
913
912
|
}, [notification]);
|
914
|
-
|
913
|
+
useEffect3(() => {
|
915
914
|
const videoElem = videoRef.current;
|
916
915
|
const setStreamEndedCallback = () => {
|
917
916
|
setStreamEnded(true);
|
@@ -922,7 +921,7 @@ var HLSView = () => {
|
|
922
921
|
videoElem == null ? void 0 : videoElem.removeEventListener("ended", setStreamEndedCallback);
|
923
922
|
};
|
924
923
|
}, [hlsUrl]);
|
925
|
-
const handleQuality =
|
924
|
+
const handleQuality = useCallback(
|
926
925
|
(quality) => {
|
927
926
|
var _a2;
|
928
927
|
if (hlsPlayer) {
|
@@ -933,7 +932,7 @@ var HLSView = () => {
|
|
933
932
|
[availableLayers]
|
934
933
|
//eslint-disable-line
|
935
934
|
);
|
936
|
-
|
935
|
+
useEffect3(() => {
|
937
936
|
let videoEl = videoRef.current;
|
938
937
|
const manifestLoadedHandler = ({ layers }) => {
|
939
938
|
setAvailableLayers(layers);
|
@@ -958,25 +957,27 @@ var HLSView = () => {
|
|
958
957
|
const pollId = parsedPayload.substr(parsedPayload.indexOf(":") + 1);
|
959
958
|
const poll = vanillaStore.getState(selectPollByID(pollId));
|
960
959
|
const pollStartedBy = vanillaStore.getState(selectPeerNameByID(poll.startedBy)) || "Participant";
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
960
|
+
if (!toastMap[pollId]) {
|
961
|
+
const toastID = ToastManager.addToast({
|
962
|
+
title: `${pollStartedBy} started a ${poll.type}: ${poll.title}`,
|
963
|
+
action: /* @__PURE__ */ React14.createElement(
|
964
|
+
Button,
|
965
|
+
{
|
966
|
+
onClick: () => togglePollView(pollId),
|
967
|
+
variant: "standard",
|
968
|
+
css: {
|
969
|
+
backgroundColor: "$surface_bright",
|
970
|
+
fontWeight: "$semiBold",
|
971
|
+
color: "$on_surface_high",
|
972
|
+
p: "$xs $md"
|
973
|
+
}
|
974
|
+
},
|
975
|
+
poll.type === "quiz" ? "Answer" : "Vote"
|
976
|
+
),
|
977
|
+
duration: Infinity
|
978
|
+
});
|
979
|
+
toastMap[pollId] = toastID;
|
980
|
+
}
|
980
981
|
return;
|
981
982
|
}
|
982
983
|
switch (parsedPayload.type) {
|
@@ -1028,7 +1029,7 @@ var HLSView = () => {
|
|
1028
1029
|
};
|
1029
1030
|
}
|
1030
1031
|
}, [hlsUrl, togglePollView, vanillaStore]);
|
1031
|
-
|
1032
|
+
useEffect3(() => {
|
1032
1033
|
const onHLSStats = (state) => setHlsStatsState(state);
|
1033
1034
|
if (enablHlsStats) {
|
1034
1035
|
hlsPlayer == null ? void 0 : hlsPlayer.on(HMSHLSPlayerEvents2.STATS, onHLSStats);
|
@@ -1050,7 +1051,7 @@ var HLSView = () => {
|
|
1050
1051
|
const sfnOverlayClose = () => {
|
1051
1052
|
hmsActions.setAppData(APP_DATA.hlsStats, !enablHlsStats);
|
1052
1053
|
};
|
1053
|
-
|
1054
|
+
useEffect3(() => {
|
1054
1055
|
if (controlsVisible && isFullScreen && !qualityDropDownOpen) {
|
1055
1056
|
if (controlsTimerRef.current) {
|
1056
1057
|
clearTimeout(controlsTimerRef.current);
|
@@ -1068,13 +1069,14 @@ var HLSView = () => {
|
|
1068
1069
|
}
|
1069
1070
|
};
|
1070
1071
|
}, [controlsVisible, isFullScreen, qualityDropDownOpen]);
|
1071
|
-
const onSeekTo =
|
1072
|
+
const onSeekTo = useCallback((seek) => {
|
1072
1073
|
var _a2;
|
1073
1074
|
hlsPlayer == null ? void 0 : hlsPlayer.seekTo(((_a2 = videoRef.current) == null ? void 0 : _a2.currentTime) + seek);
|
1074
1075
|
}, []);
|
1075
|
-
const onDoubleClickHandler =
|
1076
|
+
const onDoubleClickHandler = useCallback(
|
1076
1077
|
(event) => {
|
1077
|
-
|
1078
|
+
var _a2;
|
1079
|
+
if (!(isMobile || isLandscape) || ((_a2 = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _a2.playlist_type) !== HLSPlaylistType.DVR) {
|
1078
1080
|
return;
|
1079
1081
|
}
|
1080
1082
|
const sidePercentage = event.screenX * 100 / event.target.clientWidth;
|
@@ -1088,9 +1090,9 @@ var HLSView = () => {
|
|
1088
1090
|
setIsSeekEnabled(false);
|
1089
1091
|
}, 200);
|
1090
1092
|
},
|
1091
|
-
[isLandscape, isMobile, onSeekTo]
|
1093
|
+
[hlsState == null ? void 0 : hlsState.variants, isLandscape, isMobile, onSeekTo]
|
1092
1094
|
);
|
1093
|
-
const onClickHandler =
|
1095
|
+
const onClickHandler = useCallback(() => {
|
1094
1096
|
if (!(isMobile || isLandscape)) {
|
1095
1097
|
return;
|
1096
1098
|
}
|
@@ -1099,7 +1101,7 @@ var HLSView = () => {
|
|
1099
1101
|
clearTimeout(controlsTimerRef.current);
|
1100
1102
|
}
|
1101
1103
|
}, [isLandscape, isMobile]);
|
1102
|
-
const onHoverHandler =
|
1104
|
+
const onHoverHandler = useCallback(
|
1103
1105
|
(event) => {
|
1104
1106
|
event.preventDefault();
|
1105
1107
|
if (isMobile || isLandscape) {
|
@@ -1168,7 +1170,7 @@ var HLSView = () => {
|
|
1168
1170
|
onDoubleClickHandler(e);
|
1169
1171
|
}
|
1170
1172
|
},
|
1171
|
-
/* @__PURE__ */ React14.createElement(React14.Fragment, null, isMobile || isLandscape ? /* @__PURE__ */ React14.createElement(React14.Fragment, null, !showLoader && /* @__PURE__ */ React14.createElement(
|
1173
|
+
/* @__PURE__ */ React14.createElement(React14.Fragment, null, isMobile || isLandscape ? /* @__PURE__ */ React14.createElement(React14.Fragment, null, !showLoader && ((_b = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _b.playlist_type) === HLSPlaylistType.DVR && /* @__PURE__ */ React14.createElement(
|
1172
1174
|
Flex,
|
1173
1175
|
{
|
1174
1176
|
align: "center",
|
@@ -1240,8 +1242,8 @@ var HLSView = () => {
|
|
1240
1242
|
p: "$4 $8"
|
1241
1243
|
}
|
1242
1244
|
},
|
1243
|
-
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Left, null, /* @__PURE__ */ React14.createElement(LeaveRoom, { screenType })),
|
1244
|
-
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Right, null, isLandscape && /* @__PURE__ */ React14.createElement(ChatToggle, null), hasCaptions && !isHlsAutoplayBlocked && /* @__PURE__ */ React14.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), availableLayers.length > 0 && !isHlsAutoplayBlocked ? /* @__PURE__ */ React14.createElement(
|
1245
|
+
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Left, null, hlsViewRef.current && /* @__PURE__ */ React14.createElement(LeaveRoom, { screenType, container: hlsViewRef.current })),
|
1246
|
+
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Right, null, isLandscape && /* @__PURE__ */ React14.createElement(ChatToggle, null), hasCaptions && !isHlsAutoplayBlocked && /* @__PURE__ */ React14.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), hlsViewRef.current && availableLayers.length > 0 && !isHlsAutoplayBlocked ? /* @__PURE__ */ React14.createElement(
|
1245
1247
|
HLSQualitySelector,
|
1246
1248
|
{
|
1247
1249
|
layers: availableLayers,
|
@@ -1249,7 +1251,8 @@ var HLSView = () => {
|
|
1249
1251
|
open: qualityDropDownOpen,
|
1250
1252
|
selection: currentSelectedQuality,
|
1251
1253
|
onQualityChange: handleQuality,
|
1252
|
-
isAuto: isUserSelectedAuto
|
1254
|
+
isAuto: isUserSelectedAuto,
|
1255
|
+
containerRef: hlsViewRef.current
|
1253
1256
|
}
|
1254
1257
|
) : null, /* @__PURE__ */ React14.createElement(HLSAutoplayBlockedPrompt, { open: isHlsAutoplayBlocked, unblockAutoPlay }))
|
1255
1258
|
)
|
@@ -1262,7 +1265,7 @@ var HLSView = () => {
|
|
1262
1265
|
align: "start",
|
1263
1266
|
css: {
|
1264
1267
|
position: "absolute",
|
1265
|
-
bottom: "0",
|
1268
|
+
bottom: isFullScreen && ((_c = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _c.playlist_type) === HLSPlaylistType.DVR ? "$8" : "0",
|
1266
1269
|
left: "0",
|
1267
1270
|
zIndex: 1,
|
1268
1271
|
background: isMobile || isLandscape ? "" : `linear-gradient(180deg, ${theme.colors.background_dim.value}00 29.46%, ${theme.colors.background_dim.value}A3 100%);`,
|
@@ -1274,7 +1277,7 @@ var HLSView = () => {
|
|
1274
1277
|
opacity: controlsVisible ? `1` : "0"
|
1275
1278
|
}
|
1276
1279
|
},
|
1277
|
-
|
1280
|
+
((_d = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _d.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Progress, null) : null,
|
1278
1281
|
/* @__PURE__ */ React14.createElement(
|
1279
1282
|
HMSVideoPlayer.Controls.Root,
|
1280
1283
|
{
|
@@ -1282,7 +1285,7 @@ var HLSView = () => {
|
|
1282
1285
|
p: "$4 $8"
|
1283
1286
|
}
|
1284
1287
|
},
|
1285
|
-
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Left, null, !(isMobile || isLandscape) && /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
|
1288
|
+
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Left, null, !(isMobile || isLandscape) && /* @__PURE__ */ React14.createElement(React14.Fragment, null, ((_e = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _e.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
|
1286
1289
|
HMSVideoPlayer.Seeker,
|
1287
1290
|
{
|
1288
1291
|
onClick: () => {
|
@@ -1300,7 +1303,7 @@ var HLSView = () => {
|
|
1300
1303
|
title: "forward"
|
1301
1304
|
},
|
1302
1305
|
/* @__PURE__ */ React14.createElement(ForwardArrowIcon, { width: 20, height: 20 })
|
1303
|
-
), !isVideoLive ? /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Duration, null) : null, /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Volume, null)), /* @__PURE__ */ React14.createElement(
|
1306
|
+
), !isVideoLive ? /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Duration, null) : null) : null, /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Volume, null)), /* @__PURE__ */ React14.createElement(
|
1304
1307
|
IconButton,
|
1305
1308
|
{
|
1306
1309
|
css: { px: "$2" },
|
@@ -1332,7 +1335,7 @@ var HLSView = () => {
|
|
1332
1335
|
},
|
1333
1336
|
isVideoLive ? "LIVE" : "GO LIVE"
|
1334
1337
|
)))
|
1335
|
-
), (isMobile || isLandscape) && !isVideoLive ? /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Duration, null) : null),
|
1338
|
+
), (isMobile || isLandscape) && !isVideoLive && ((_f = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _f.playlist_type) === HLSPlaylistType.DVR ? /* @__PURE__ */ React14.createElement(HMSVideoPlayer.Duration, null) : null),
|
1336
1339
|
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Right, null, hasCaptions && !(isMobile || isLandscape) && /* @__PURE__ */ React14.createElement(HLSCaptionSelector, { isEnabled: isCaptionEnabled }), availableLayers.length > 0 && !(isMobile || isLandscape) ? /* @__PURE__ */ React14.createElement(
|
1337
1340
|
HLSQualitySelector,
|
1338
1341
|
{
|
@@ -1347,11 +1350,11 @@ var HLSView = () => {
|
|
1347
1350
|
)
|
1348
1351
|
))
|
1349
1352
|
)
|
1350
|
-
)), isMobile && !isFullScreen && /* @__PURE__ */ React14.createElement(HLSViewTitle, null)) : /* @__PURE__ */ React14.createElement(Flex, { align: "center", justify: "center", direction: "column", css: { size: "100%", px: "$10" } }, /* @__PURE__ */ React14.createElement(Flex, { align: "center", gap: "2", css: { position: "absolute", left: "$4", top: "$4", zIndex: 1 } }, /* @__PURE__ */ React14.createElement(LeaveRoom, { screenType })), /* @__PURE__ */ React14.createElement(Flex, { css: { c: "$on_surface_high", r: "$round", bg: "$surface_default", p: "$2" } }, streamEnded ? /* @__PURE__ */ React14.createElement(ColoredHandIcon, { height: 56, width: 56 }) : /* @__PURE__ */ React14.createElement(GoLiveIcon, { height: 56, width: 56 })), /* @__PURE__ */ React14.createElement(Text, { variant: "h5", css: { c: "$on_surface_high", mt: "$10", mb: 0, textAlign: "center" } }, streamEnded ? "Stream has ended" : "Stream yet to start"), /* @__PURE__ */ React14.createElement(Text, { variant: "md", css: { textAlign: "center", mt: "$4", c: "$on_surface_medium" } }, streamEnded ? "Have a nice day!" : "Sit back and relax"))
|
1353
|
+
)), isMobile && !isFullScreen && /* @__PURE__ */ React14.createElement(HLSViewTitle, null)) : /* @__PURE__ */ React14.createElement(Flex, { align: "center", justify: "center", direction: "column", css: { size: "100%", px: "$10" } }, /* @__PURE__ */ React14.createElement(Flex, { align: "center", gap: "2", css: { position: "absolute", left: "$4", top: "$4", zIndex: 1 } }, isMobile || isLandscape ? /* @__PURE__ */ React14.createElement(LeaveRoom, { screenType }) : null), /* @__PURE__ */ React14.createElement(Flex, { css: { c: "$on_surface_high", r: "$round", bg: "$surface_default", p: "$2" } }, streamEnded ? /* @__PURE__ */ React14.createElement(ColoredHandIcon, { height: 56, width: 56 }) : /* @__PURE__ */ React14.createElement(GoLiveIcon, { height: 56, width: 56 })), /* @__PURE__ */ React14.createElement(Text, { variant: "h5", css: { c: "$on_surface_high", mt: "$10", mb: 0, textAlign: "center" } }, streamEnded ? "Stream has ended" : "Stream yet to start"), /* @__PURE__ */ React14.createElement(Text, { variant: "md", css: { textAlign: "center", mt: "$4", c: "$on_surface_medium" } }, streamEnded ? "Have a nice day!" : "Sit back and relax"))
|
1351
1354
|
);
|
1352
1355
|
};
|
1353
1356
|
var HLSView_default = HLSView;
|
1354
1357
|
export {
|
1355
1358
|
HLSView_default as default
|
1356
1359
|
};
|
1357
|
-
//# sourceMappingURL=HLSView-
|
1360
|
+
//# sourceMappingURL=HLSView-TOMPA4E4.js.map
|