@100mslive/roomkit-react 0.2.8-alpha.6 → 0.2.8-alpha.8
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-53PDKIS2.js → HLSView-6KPQ2KD6.js} +176 -174
- package/dist/HLSView-6KPQ2KD6.js.map +7 -0
- package/dist/Prebuilt/components/HMSVideo/HLSQualitySelector.d.ts +3 -2
- 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-2ZFAT7KY.js → chunk-JQCSGJIR.js} +742 -639
- package/dist/chunk-JQCSGJIR.js.map +7 -0
- package/dist/index.cjs.js +1253 -1144
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +256 -201
- package/dist/meta.esbuild.json +263 -206
- 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/AppData/useSidepane.js +22 -10
- 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/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/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 +7 -3
- 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 +27 -24
- 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-53PDKIS2.js.map +0 -7
- package/dist/chunk-2ZFAT7KY.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-JQCSGJIR.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,13 +283,6 @@ 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
288
|
var VideoProgress = ({ isDvr = true }) => {
|
@@ -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;
|
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,11 +1069,11 @@ 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
|
if (!(isMobile || isLandscape)) {
|
1078
1079
|
return;
|
@@ -1090,7 +1091,7 @@ var HLSView = () => {
|
|
1090
1091
|
},
|
1091
1092
|
[isLandscape, isMobile, onSeekTo]
|
1092
1093
|
);
|
1093
|
-
const onClickHandler =
|
1094
|
+
const onClickHandler = useCallback(() => {
|
1094
1095
|
if (!(isMobile || isLandscape)) {
|
1095
1096
|
return;
|
1096
1097
|
}
|
@@ -1099,7 +1100,7 @@ var HLSView = () => {
|
|
1099
1100
|
clearTimeout(controlsTimerRef.current);
|
1100
1101
|
}
|
1101
1102
|
}, [isLandscape, isMobile]);
|
1102
|
-
const onHoverHandler =
|
1103
|
+
const onHoverHandler = useCallback(
|
1103
1104
|
(event) => {
|
1104
1105
|
event.preventDefault();
|
1105
1106
|
if (isMobile || isLandscape) {
|
@@ -1240,8 +1241,8 @@ var HLSView = () => {
|
|
1240
1241
|
p: "$4 $8"
|
1241
1242
|
}
|
1242
1243
|
},
|
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(
|
1244
|
+
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Controls.Left, null, hlsViewRef.current && /* @__PURE__ */ React14.createElement(LeaveRoom, { screenType, container: hlsViewRef.current })),
|
1245
|
+
/* @__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
1246
|
HLSQualitySelector,
|
1246
1247
|
{
|
1247
1248
|
layers: availableLayers,
|
@@ -1249,7 +1250,8 @@ var HLSView = () => {
|
|
1249
1250
|
open: qualityDropDownOpen,
|
1250
1251
|
selection: currentSelectedQuality,
|
1251
1252
|
onQualityChange: handleQuality,
|
1252
|
-
isAuto: isUserSelectedAuto
|
1253
|
+
isAuto: isUserSelectedAuto,
|
1254
|
+
containerRef: hlsViewRef.current
|
1253
1255
|
}
|
1254
1256
|
) : null, /* @__PURE__ */ React14.createElement(HLSAutoplayBlockedPrompt, { open: isHlsAutoplayBlocked, unblockAutoPlay }))
|
1255
1257
|
)
|
@@ -1262,7 +1264,7 @@ var HLSView = () => {
|
|
1262
1264
|
align: "start",
|
1263
1265
|
css: {
|
1264
1266
|
position: "absolute",
|
1265
|
-
bottom: "0",
|
1267
|
+
bottom: isFullScreen && ((_b = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _b.playlist_type) === HLSPlaylistType.DVR ? "$8" : "0",
|
1266
1268
|
left: "0",
|
1267
1269
|
zIndex: 1,
|
1268
1270
|
background: isMobile || isLandscape ? "" : `linear-gradient(180deg, ${theme.colors.background_dim.value}00 29.46%, ${theme.colors.background_dim.value}A3 100%);`,
|
@@ -1274,7 +1276,7 @@ var HLSView = () => {
|
|
1274
1276
|
opacity: controlsVisible ? `1` : "0"
|
1275
1277
|
}
|
1276
1278
|
},
|
1277
|
-
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Progress, { isDvr: ((
|
1279
|
+
/* @__PURE__ */ React14.createElement(HMSVideoPlayer.Progress, { isDvr: ((_c = hlsState == null ? void 0 : hlsState.variants[0]) == null ? void 0 : _c.playlist_type) === HLSPlaylistType.DVR }),
|
1278
1280
|
/* @__PURE__ */ React14.createElement(
|
1279
1281
|
HMSVideoPlayer.Controls.Root,
|
1280
1282
|
{
|
@@ -1347,11 +1349,11 @@ var HLSView = () => {
|
|
1347
1349
|
)
|
1348
1350
|
))
|
1349
1351
|
)
|
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"))
|
1352
|
+
)), 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
1353
|
);
|
1352
1354
|
};
|
1353
1355
|
var HLSView_default = HLSView;
|
1354
1356
|
export {
|
1355
1357
|
HLSView_default as default
|
1356
1358
|
};
|
1357
|
-
//# sourceMappingURL=HLSView-
|
1359
|
+
//# sourceMappingURL=HLSView-6KPQ2KD6.js.map
|