@100mslive/roomkit-react 0.2.8-alpha.7 → 0.2.8-alpha.8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/{HLSView-MYKM5AXS.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-DRBTAFKN.js → chunk-JQCSGJIR.js} +720 -630
- package/dist/chunk-JQCSGJIR.js.map +7 -0
- package/dist/index.cjs.js +1231 -1135
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +254 -199
- package/dist/meta.esbuild.json +261 -204
- 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/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 +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 +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-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-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
|