@100mslive/roomkit-react 0.1.7 → 0.1.8-alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/AudioLevel/AudioLevel.d.ts +5 -8
- package/dist/AudioLevel/index.d.ts +2 -1
- package/dist/AudioLevel/useBorderAudioLevel.d.ts +8 -0
- package/dist/{HLSView-3S74KF3A.js → HLSView-IQRPLYNH.js} +5 -4
- package/dist/{HLSView-3S74KF3A.js.map → HLSView-IQRPLYNH.js.map} +2 -2
- package/dist/Prebuilt/components/Chip.d.ts +12 -0
- package/dist/Prebuilt/components/PrebuiltDialogPortal.d.ts +4 -0
- package/dist/{VirtualBackground-3TI5NA4V.js → VirtualBackground-GP4ATXD3.js} +3 -3
- package/dist/{chunk-36X4ZCLC.js → chunk-2H5NIZB7.js} +2 -2
- package/dist/{chunk-Z7P5WITU.js → chunk-GLYGPYNS.js} +560 -1190
- package/dist/chunk-GLYGPYNS.js.map +7 -0
- package/dist/{chunk-5DQ3WTED.js → chunk-Z3O2WGWV.js} +2 -2
- package/dist/{chunk-5DQ3WTED.js.map → chunk-Z3O2WGWV.js.map} +1 -1
- package/dist/{conference-JNABIZBG.js → conference-JD35TNH4.js} +1351 -662
- package/dist/conference-JD35TNH4.js.map +7 -0
- package/dist/index.cjs.js +3387 -3297
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +4 -2
- package/dist/meta.cjs.json +1001 -826
- package/dist/meta.esbuild.json +1053 -877
- package/package.json +6 -6
- package/src/AudioLevel/AudioLevel.tsx +79 -30
- package/src/AudioLevel/audio-level.png +0 -0
- package/src/AudioLevel/index.ts +2 -1
- package/src/AudioLevel/useBorderAudioLevel.tsx +34 -0
- package/src/Prebuilt/App.tsx +1 -0
- package/src/Prebuilt/common/utils.js +0 -7
- package/src/Prebuilt/components/{Chip.jsx → Chip.tsx} +13 -2
- package/src/Prebuilt/components/Footer/ParticipantList.jsx +23 -12
- package/src/Prebuilt/components/Footer/RoleAccordion.tsx +43 -3
- package/src/Prebuilt/components/Leave/DesktopLeaveRoom.tsx +7 -4
- package/src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx +3 -2
- package/src/Prebuilt/components/MoreSettings/EmbedUrl.jsx +3 -2
- package/src/Prebuilt/components/MwebLandscapePrompt.jsx +58 -0
- package/src/Prebuilt/components/Notifications/HLSFailureModal.jsx +3 -2
- package/src/Prebuilt/components/Notifications/PermissionErrorModal.jsx +3 -2
- package/src/Prebuilt/components/PrebuiltDialogPortal.tsx +6 -0
- package/src/Prebuilt/components/Preview/PreviewJoin.tsx +4 -3
- package/src/Prebuilt/components/RoleChangeModal.jsx +3 -2
- package/src/Prebuilt/components/RoleChangeRequest/RequestPrompt.tsx +3 -2
- package/src/Prebuilt/components/Settings/SettingsModal.jsx +3 -2
- package/src/Prebuilt/components/Settings/StartRecording.jsx +3 -2
- package/src/Prebuilt/components/StatsForNerds.jsx +3 -2
- package/src/Prebuilt/components/VideoTile.jsx +22 -69
- package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +3 -2
- package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +4 -29
- package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +3 -2
- package/src/Prebuilt/layouts/HLSView.jsx +1 -0
- package/src/Prebuilt/primitives/DialogContent.jsx +5 -4
- package/dist/chunk-Z7P5WITU.js.map +0 -7
- package/dist/conference-JNABIZBG.js.map +0 -7
- /package/dist/{VirtualBackground-3TI5NA4V.js.map → VirtualBackground-GP4ATXD3.js.map} +0 -0
- /package/dist/{chunk-36X4ZCLC.js.map → chunk-2H5NIZB7.js.map} +0 -0
@@ -1,14 +1,16 @@
|
|
1
1
|
import {
|
2
2
|
ActionTile
|
3
|
-
} from "./chunk-
|
3
|
+
} from "./chunk-2H5NIZB7.js";
|
4
4
|
import {
|
5
5
|
APP_DATA,
|
6
6
|
Accordion,
|
7
|
+
AudioLevel,
|
7
8
|
AudioVideoToggle,
|
9
|
+
Avatar,
|
8
10
|
Button,
|
9
11
|
CHAT_SELECTOR,
|
10
|
-
ChangeNameModal,
|
11
12
|
Checkbox,
|
13
|
+
Chip_default,
|
12
14
|
ConnectionIndicator,
|
13
15
|
Dialog,
|
14
16
|
DialogCol,
|
@@ -27,8 +29,10 @@ import {
|
|
27
29
|
Label,
|
28
30
|
PictureInPicture,
|
29
31
|
Popover,
|
32
|
+
PrebuiltDialogPortal,
|
30
33
|
PreviewControls,
|
31
34
|
PreviewTile,
|
35
|
+
REMOTE_STOP_SCREENSHARE_TYPE,
|
32
36
|
ROLE_CHANGE_DECLINED,
|
33
37
|
RTMP_RECORD_DEFAULT_RESOLUTION,
|
34
38
|
RTMP_RECORD_RESOLUTION_MAX,
|
@@ -38,22 +42,22 @@ import {
|
|
38
42
|
SIDE_PANE_OPTIONS,
|
39
43
|
SettingsModal_default,
|
40
44
|
Sheet,
|
45
|
+
Slider,
|
41
46
|
StopRecordingInSheet,
|
47
|
+
StyledMenuTile,
|
42
48
|
StyledPagination,
|
43
49
|
StyledVideoTile,
|
44
50
|
Switch,
|
45
51
|
Tabs,
|
46
52
|
ThemeTypes,
|
47
|
-
|
53
|
+
TileConnection_default,
|
48
54
|
ToastManager,
|
49
55
|
UI_SETTINGS,
|
50
56
|
UserPreferencesKeys,
|
51
57
|
Video,
|
52
58
|
VideoTileStats,
|
53
|
-
VideoTile_default,
|
54
59
|
getFormattedCount,
|
55
60
|
getMetadata,
|
56
|
-
getVideoTileLabel,
|
57
61
|
isAndroid,
|
58
62
|
isChrome,
|
59
63
|
isIOS,
|
@@ -61,7 +65,6 @@ import {
|
|
61
65
|
isMacOS,
|
62
66
|
isScreenshareSupported,
|
63
67
|
useAuthToken,
|
64
|
-
useDropdownList,
|
65
68
|
useDropdownSelection,
|
66
69
|
useFilteredRoles,
|
67
70
|
useHMSPrebuiltContext,
|
@@ -83,7 +86,7 @@ import {
|
|
83
86
|
useUrlToEmbed,
|
84
87
|
useUserPreferences,
|
85
88
|
useWaitingViewerRole
|
86
|
-
} from "./chunk-
|
89
|
+
} from "./chunk-GLYGPYNS.js";
|
87
90
|
import {
|
88
91
|
Box,
|
89
92
|
Flex,
|
@@ -102,10 +105,10 @@ import {
|
|
102
105
|
slideLeftAndFade,
|
103
106
|
styled,
|
104
107
|
textEllipsis
|
105
|
-
} from "./chunk-
|
108
|
+
} from "./chunk-Z3O2WGWV.js";
|
106
109
|
|
107
110
|
// src/Prebuilt/components/conference.jsx
|
108
|
-
import
|
111
|
+
import React68, { useEffect as useEffect27, useRef as useRef16, useState as useState39 } from "react";
|
109
112
|
import { useNavigate, useParams } from "react-router-dom";
|
110
113
|
import { usePrevious } from "react-use";
|
111
114
|
import {
|
@@ -113,13 +116,13 @@ import {
|
|
113
116
|
selectAppData as selectAppData4,
|
114
117
|
selectIsConnectedToRoom as selectIsConnectedToRoom7,
|
115
118
|
selectRoomState,
|
116
|
-
useHMSActions as
|
117
|
-
useHMSStore as
|
119
|
+
useHMSActions as useHMSActions25,
|
120
|
+
useHMSStore as useHMSStore39
|
118
121
|
} from "@100mslive/react-sdk";
|
119
122
|
|
120
123
|
// src/Prebuilt/components/Footer/Footer.tsx
|
121
|
-
import
|
122
|
-
import { useMedia as
|
124
|
+
import React38, { Suspense, useEffect as useEffect8 } from "react";
|
125
|
+
import { useMedia as useMedia6 } from "react-use";
|
123
126
|
import { Chat_ChatState } from "@100mslive/types-prebuilt/elements/chat";
|
124
127
|
import { useAVToggle as useAVToggle2 } from "@100mslive/react-sdk";
|
125
128
|
|
@@ -159,6 +162,26 @@ var EmojiContainer = styled("span", {
|
|
159
162
|
}
|
160
163
|
});
|
161
164
|
|
165
|
+
// src/Prebuilt/components/hooks/useDropdownList.jsx
|
166
|
+
import { useEffect } from "react";
|
167
|
+
var useDropdownList = ({ name, open }) => {
|
168
|
+
const [dropdownList = [], setDropdownList] = useSetAppDataByKey(APP_DATA.dropdownList);
|
169
|
+
useEffect(() => {
|
170
|
+
if (open) {
|
171
|
+
if (!dropdownList.includes(name)) {
|
172
|
+
setDropdownList([...dropdownList, name]);
|
173
|
+
}
|
174
|
+
} else {
|
175
|
+
const index = dropdownList.indexOf(name);
|
176
|
+
if (index >= 0) {
|
177
|
+
const newDropdownList = [...dropdownList];
|
178
|
+
newDropdownList.splice(index, 1);
|
179
|
+
setDropdownList(newDropdownList);
|
180
|
+
}
|
181
|
+
}
|
182
|
+
}, [open, name]);
|
183
|
+
};
|
184
|
+
|
162
185
|
// src/Prebuilt/components/EmojiReaction.jsx
|
163
186
|
init({ data });
|
164
187
|
var EmojiReaction = () => {
|
@@ -431,7 +454,7 @@ var DesktopLeaveRoom = ({
|
|
431
454
|
"data-testid": "leave_room_btn"
|
432
455
|
},
|
433
456
|
/* @__PURE__ */ React6.createElement(Tooltip, { title: "Leave Room" }, /* @__PURE__ */ React6.createElement(Box, null, /* @__PURE__ */ React6.createElement(ExitIcon, { style: { transform: "rotate(180deg)" } })))
|
434
|
-
), /* @__PURE__ */ React6.createElement(Dialog.Root, { open: showEndStreamAlert, modal: false }, /* @__PURE__ */ React6.createElement(
|
457
|
+
), /* @__PURE__ */ React6.createElement(Dialog.Root, { open: showEndStreamAlert, modal: false }, /* @__PURE__ */ React6.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React6.createElement(Dialog.Overlay, null), /* @__PURE__ */ React6.createElement(Dialog.Content, { css: { w: "min(420px, 90%)", p: "$8", bg: "$surface_dim" } }, /* @__PURE__ */ React6.createElement(
|
435
458
|
EndSessionContent,
|
436
459
|
{
|
437
460
|
setShowEndStreamAlert,
|
@@ -439,7 +462,7 @@ var DesktopLeaveRoom = ({
|
|
439
462
|
isStreamingOn,
|
440
463
|
isModal: true
|
441
464
|
}
|
442
|
-
)))), /* @__PURE__ */ React6.createElement(Dialog.Root, { open: showLeaveRoomAlert, modal: false }, /* @__PURE__ */ React6.createElement(
|
465
|
+
)))), /* @__PURE__ */ React6.createElement(Dialog.Root, { open: showLeaveRoomAlert, modal: false }, /* @__PURE__ */ React6.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React6.createElement(Dialog.Overlay, null), /* @__PURE__ */ React6.createElement(Dialog.Content, { css: { w: "min(420px, 90%)", p: "$8", bg: "$surface_dim" } }, /* @__PURE__ */ React6.createElement(LeaveSessionContent, { setShowLeaveRoomAlert, leaveRoom, isModal: true })))));
|
443
466
|
};
|
444
467
|
|
445
468
|
// src/Prebuilt/components/Leave/MwebLeaveRoom.tsx
|
@@ -553,8 +576,8 @@ var LeaveRoom = ({ screenType }) => {
|
|
553
576
|
};
|
554
577
|
|
555
578
|
// src/Prebuilt/components/MoreSettings/MoreSettings.tsx
|
556
|
-
import
|
557
|
-
import { useMedia as
|
579
|
+
import React25 from "react";
|
580
|
+
import { useMedia as useMedia4 } from "react-use";
|
558
581
|
|
559
582
|
// src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.tsx
|
560
583
|
import React21, { Fragment as Fragment4, useState as useState13 } from "react";
|
@@ -566,7 +589,7 @@ import { BrbIcon, CheckIcon as CheckIcon3, DragHandleIcon, InfoIcon as InfoIcon2
|
|
566
589
|
import React10 from "react";
|
567
590
|
|
568
591
|
// src/Prebuilt/components/PIP/PIPComponent.jsx
|
569
|
-
import React9, { useCallback, useEffect, useState as useState4 } from "react";
|
592
|
+
import React9, { useCallback, useEffect as useEffect2, useState as useState4 } from "react";
|
570
593
|
import { selectPeers, selectTracksMap, useHMSActions as useHMSActions2, useHMSStore as useHMSStore5, useHMSVanillaStore } from "@100mslive/react-sdk";
|
571
594
|
import { PipIcon } from "@100mslive/react-icons";
|
572
595
|
|
@@ -646,7 +669,7 @@ var ActivatedPIP = () => {
|
|
646
669
|
const tracksMap = useHMSStore5(selectTracksMap);
|
647
670
|
const storePeers = useHMSStore5(selectPeers);
|
648
671
|
const pinnedTrack = usePinnedTrack();
|
649
|
-
|
672
|
+
useEffect2(() => {
|
650
673
|
function updatePIP() {
|
651
674
|
if (!PictureInPicture.isOn()) {
|
652
675
|
return;
|
@@ -707,7 +730,7 @@ var RoleChangeModal = ({ peerId, onOpenChange }) => {
|
|
707
730
|
return null;
|
708
731
|
}
|
709
732
|
const peerNameMaxWidth = 200;
|
710
|
-
return /* @__PURE__ */ React11.createElement(Dialog.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React11.createElement(
|
733
|
+
return /* @__PURE__ */ React11.createElement(Dialog.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React11.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React11.createElement(Dialog.Overlay, null), /* @__PURE__ */ React11.createElement(Dialog.Content, { css: { width: "min(400px,80%)", p: "$10" } }, /* @__PURE__ */ React11.createElement(Dialog.Title, { css: { p: 0 }, asChild: true }, /* @__PURE__ */ React11.createElement(Text, { as: "h6", variant: "h6" }, "Change Role")), /* @__PURE__ */ React11.createElement(Dialog.Description, { asChild: true }, /* @__PURE__ */ React11.createElement(
|
711
734
|
Text,
|
712
735
|
{
|
713
736
|
variant: "body2",
|
@@ -873,7 +896,7 @@ var ResolutionInput = ({ onResolutionChange, disabled, tooltipText, css, testId
|
|
873
896
|
};
|
874
897
|
|
875
898
|
// src/Prebuilt/components/Streaming/RTMPStreaming.jsx
|
876
|
-
import React14, { useEffect as
|
899
|
+
import React14, { useEffect as useEffect3, useRef as useRef2, useState as useState7 } from "react";
|
877
900
|
import { useHMSActions as useHMSActions4, useRecordingStreaming as useRecordingStreaming3 } from "@100mslive/react-sdk";
|
878
901
|
import { AddCircleIcon, EndStreamIcon, GoLiveIcon, PencilIcon, SettingsIcon, TrashIcon } from "@100mslive/react-icons";
|
879
902
|
|
@@ -1086,7 +1109,7 @@ var EndRTMP = () => {
|
|
1086
1109
|
const [inProgress, setInProgress] = useState7(false);
|
1087
1110
|
const [error, setError] = useState7("");
|
1088
1111
|
const { isRTMPRunning } = useRecordingStreaming3();
|
1089
|
-
|
1112
|
+
useEffect3(() => {
|
1090
1113
|
if (inProgress && !isRTMPRunning) {
|
1091
1114
|
setInProgress(false);
|
1092
1115
|
}
|
@@ -1240,7 +1263,7 @@ var StartRecording = ({ open, onOpenChange }) => {
|
|
1240
1263
|
return null;
|
1241
1264
|
}
|
1242
1265
|
if (isBrowserRecordingOn) {
|
1243
|
-
return /* @__PURE__ */ React15.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React15.createElement(
|
1266
|
+
return /* @__PURE__ */ React15.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React15.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React15.createElement(
|
1244
1267
|
Dialog.Content,
|
1245
1268
|
{
|
1246
1269
|
css: {
|
@@ -1319,7 +1342,7 @@ var StartRecording = ({ open, onOpenChange }) => {
|
|
1319
1342
|
var StartRecording_default = StartRecording;
|
1320
1343
|
|
1321
1344
|
// src/Prebuilt/components/StatsForNerds.jsx
|
1322
|
-
import React16, { useEffect as
|
1345
|
+
import React16, { useEffect as useEffect4, useMemo, useRef as useRef3, useState as useState9 } from "react";
|
1323
1346
|
import {
|
1324
1347
|
selectHMSStats,
|
1325
1348
|
selectLocalPeerID as selectLocalPeerID2,
|
@@ -1340,12 +1363,12 @@ var StatsForNerds = ({ onOpenChange }) => {
|
|
1340
1363
|
const [open, setOpen] = useState9(false);
|
1341
1364
|
const ref = useRef3();
|
1342
1365
|
const selectionBg = useDropdownSelection();
|
1343
|
-
|
1366
|
+
useEffect4(() => {
|
1344
1367
|
if (selectedStat.id !== "local-peer" && !tracksWithLabels.find((track) => track.id === selectedStat.id)) {
|
1345
1368
|
setSelectedStat("local-peer");
|
1346
1369
|
}
|
1347
1370
|
}, [tracksWithLabels, selectedStat]);
|
1348
|
-
return /* @__PURE__ */ React16.createElement(Dialog.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React16.createElement(
|
1371
|
+
return /* @__PURE__ */ React16.createElement(Dialog.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React16.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React16.createElement(Dialog.Overlay, null), /* @__PURE__ */ React16.createElement(
|
1349
1372
|
Dialog.Content,
|
1350
1373
|
{
|
1351
1374
|
css: {
|
@@ -1604,7 +1627,7 @@ import React18 from "react";
|
|
1604
1627
|
import { ExpandIcon } from "@100mslive/react-icons";
|
1605
1628
|
|
1606
1629
|
// src/Prebuilt/components/hooks/useFullscreen.js
|
1607
|
-
import { useCallback as useCallback4, useEffect as
|
1630
|
+
import { useCallback as useCallback4, useEffect as useEffect5, useState as useState11 } from "react";
|
1608
1631
|
import screenfull from "screenfull";
|
1609
1632
|
var useFullscreen = () => {
|
1610
1633
|
const [isFullScreenEnabled, setIsFullScreenEnabled] = useState11(screenfull.isFullscreen);
|
@@ -1623,7 +1646,7 @@ var useFullscreen = () => {
|
|
1623
1646
|
ToastManager.addToast({ title: err.message });
|
1624
1647
|
}
|
1625
1648
|
}), [isFullScreenEnabled]);
|
1626
|
-
|
1649
|
+
useEffect5(() => {
|
1627
1650
|
const onChange = () => {
|
1628
1651
|
setIsFullScreenEnabled(screenfull.isFullscreen);
|
1629
1652
|
};
|
@@ -1857,20 +1880,20 @@ var DesktopOptions = ({
|
|
1857
1880
|
};
|
1858
1881
|
|
1859
1882
|
// src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx
|
1860
|
-
import
|
1883
|
+
import React24, { useRef as useRef5, useState as useState15 } from "react";
|
1861
1884
|
import { useClickAway } from "react-use";
|
1862
1885
|
import {
|
1863
1886
|
selectIsConnectedToRoom as selectIsConnectedToRoom5,
|
1864
1887
|
selectPeerCount,
|
1865
1888
|
selectPermissions as selectPermissions6,
|
1866
1889
|
useAVToggle,
|
1867
|
-
useHMSActions as
|
1868
|
-
useHMSStore as
|
1890
|
+
useHMSActions as useHMSActions10,
|
1891
|
+
useHMSStore as useHMSStore12,
|
1869
1892
|
useRecordingStreaming as useRecordingStreaming5
|
1870
1893
|
} from "@100mslive/react-sdk";
|
1871
1894
|
import {
|
1872
1895
|
BrbIcon as BrbIcon2,
|
1873
|
-
CrossIcon as
|
1896
|
+
CrossIcon as CrossIcon5,
|
1874
1897
|
DragHandleIcon as DragHandleIcon2,
|
1875
1898
|
EmojiIcon as EmojiIcon2,
|
1876
1899
|
HandIcon,
|
@@ -1879,6 +1902,161 @@ import {
|
|
1879
1902
|
RecordIcon as RecordIcon2,
|
1880
1903
|
SettingsIcon as SettingsIcon3
|
1881
1904
|
} from "@100mslive/react-icons";
|
1905
|
+
|
1906
|
+
// src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx
|
1907
|
+
import React23, { useState as useState14 } from "react";
|
1908
|
+
import { useMedia as useMedia3 } from "react-use";
|
1909
|
+
import { selectLocalPeerName, useHMSActions as useHMSActions9, useHMSStore as useHMSStore11 } from "@100mslive/react-sdk";
|
1910
|
+
|
1911
|
+
// src/Prebuilt/components/MoreSettings/ChangeNameContent.jsx
|
1912
|
+
import React22 from "react";
|
1913
|
+
import { ChevronLeftIcon as ChevronLeftIcon2, CrossIcon as CrossIcon4 } from "@100mslive/react-icons";
|
1914
|
+
var ChangeNameContent = ({
|
1915
|
+
changeName,
|
1916
|
+
setCurrentName,
|
1917
|
+
currentName,
|
1918
|
+
localPeerName,
|
1919
|
+
isMobile,
|
1920
|
+
onExit,
|
1921
|
+
onBackClick
|
1922
|
+
}) => {
|
1923
|
+
return /* @__PURE__ */ React22.createElement(
|
1924
|
+
"form",
|
1925
|
+
{
|
1926
|
+
onSubmit: (e) => __async(void 0, null, function* () {
|
1927
|
+
e.preventDefault();
|
1928
|
+
yield changeName();
|
1929
|
+
})
|
1930
|
+
},
|
1931
|
+
/* @__PURE__ */ React22.createElement(
|
1932
|
+
Text,
|
1933
|
+
{
|
1934
|
+
variant: isMobile ? "md" : "lg",
|
1935
|
+
css: {
|
1936
|
+
color: "$on_surface_high",
|
1937
|
+
fontWeight: "$semiBold",
|
1938
|
+
display: "flex",
|
1939
|
+
pb: "$4",
|
1940
|
+
"@md": { px: "$8", borderBottom: "1px solid $border_default" }
|
1941
|
+
}
|
1942
|
+
},
|
1943
|
+
isMobile ? /* @__PURE__ */ React22.createElement(ChevronLeftIcon2, { onClick: onBackClick, style: { marginRight: "0.5rem" } }) : null,
|
1944
|
+
"Change Name",
|
1945
|
+
/* @__PURE__ */ React22.createElement(
|
1946
|
+
Box,
|
1947
|
+
{
|
1948
|
+
css: { color: "inherit", ml: "auto", "&:hover": { color: "$on_surface_medium", cursor: "pointer" } },
|
1949
|
+
onClick: onExit
|
1950
|
+
},
|
1951
|
+
/* @__PURE__ */ React22.createElement(CrossIcon4, null)
|
1952
|
+
)
|
1953
|
+
),
|
1954
|
+
/* @__PURE__ */ React22.createElement(Text, { variant: "sm", css: { color: "$on_surface_medium", pb: "$6", mb: "$8", "@md": { px: "$8", mt: "$4" } } }, "Your name will be visible to other participants in the session."),
|
1955
|
+
/* @__PURE__ */ React22.createElement(Flex, { justify: "center", align: "center", css: { my: "$8", w: "100%", "@md": { px: "$8" } } }, /* @__PURE__ */ React22.createElement(
|
1956
|
+
Input,
|
1957
|
+
{
|
1958
|
+
css: { width: "100%", bg: "$surface_default" },
|
1959
|
+
value: currentName,
|
1960
|
+
type: isMobile ? "search" : "text",
|
1961
|
+
onChange: (e) => {
|
1962
|
+
setCurrentName(e.target.value);
|
1963
|
+
},
|
1964
|
+
autoComplete: "name",
|
1965
|
+
required: true,
|
1966
|
+
"data-testid": "change_name_field",
|
1967
|
+
onKeyDown: (e) => __async(void 0, null, function* () {
|
1968
|
+
if (e.key === "Enter" && currentName.trim().length > 0 && currentName !== localPeerName) {
|
1969
|
+
e.preventDefault();
|
1970
|
+
if (isMobile) {
|
1971
|
+
return;
|
1972
|
+
}
|
1973
|
+
changeName();
|
1974
|
+
}
|
1975
|
+
})
|
1976
|
+
}
|
1977
|
+
)),
|
1978
|
+
/* @__PURE__ */ React22.createElement(
|
1979
|
+
Flex,
|
1980
|
+
{
|
1981
|
+
justify: "between",
|
1982
|
+
align: "center",
|
1983
|
+
css: {
|
1984
|
+
width: "100%",
|
1985
|
+
gap: "$md",
|
1986
|
+
mt: "$10",
|
1987
|
+
"@md": { px: "$4" }
|
1988
|
+
}
|
1989
|
+
},
|
1990
|
+
isMobile ? null : /* @__PURE__ */ React22.createElement(
|
1991
|
+
Button,
|
1992
|
+
{
|
1993
|
+
variant: "standard",
|
1994
|
+
css: { w: "100%" },
|
1995
|
+
outlined: true,
|
1996
|
+
type: "submit",
|
1997
|
+
disabled: !localPeerName,
|
1998
|
+
onClick: onExit
|
1999
|
+
},
|
2000
|
+
"Cancel"
|
2001
|
+
),
|
2002
|
+
/* @__PURE__ */ React22.createElement(
|
2003
|
+
Button,
|
2004
|
+
{
|
2005
|
+
variant: "primary",
|
2006
|
+
css: { width: "100%" },
|
2007
|
+
type: "submit",
|
2008
|
+
disabled: !currentName.trim() || currentName.trim() === localPeerName,
|
2009
|
+
"data-testid": "popup_change_btn"
|
2010
|
+
},
|
2011
|
+
"Change"
|
2012
|
+
)
|
2013
|
+
)
|
2014
|
+
);
|
2015
|
+
};
|
2016
|
+
|
2017
|
+
// src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx
|
2018
|
+
var ChangeNameModal = ({ onOpenChange, openParentSheet = null }) => {
|
2019
|
+
const [previewPreference, setPreviewPreference] = useUserPreferences(UserPreferencesKeys.PREVIEW);
|
2020
|
+
const hmsActions = useHMSActions9();
|
2021
|
+
const localPeerName = useHMSStore11(selectLocalPeerName);
|
2022
|
+
const [currentName, setCurrentName] = useState14(localPeerName);
|
2023
|
+
const isMobile = useMedia3(config.media.md);
|
2024
|
+
const changeName = () => __async(void 0, null, function* () {
|
2025
|
+
const name = currentName.trim();
|
2026
|
+
if (!name || name === localPeerName) {
|
2027
|
+
return;
|
2028
|
+
}
|
2029
|
+
try {
|
2030
|
+
yield hmsActions.changeName(name);
|
2031
|
+
setPreviewPreference(__spreadProps(__spreadValues({}, previewPreference || {}), {
|
2032
|
+
name
|
2033
|
+
}));
|
2034
|
+
} catch (error) {
|
2035
|
+
console.error("failed to update name", error);
|
2036
|
+
ToastManager.addToast({ title: error.message });
|
2037
|
+
} finally {
|
2038
|
+
onOpenChange(false);
|
2039
|
+
}
|
2040
|
+
});
|
2041
|
+
const props = {
|
2042
|
+
changeName,
|
2043
|
+
setCurrentName,
|
2044
|
+
currentName,
|
2045
|
+
localPeerName,
|
2046
|
+
isMobile,
|
2047
|
+
onExit: () => onOpenChange(false),
|
2048
|
+
onBackClick: () => {
|
2049
|
+
onOpenChange(false);
|
2050
|
+
openParentSheet();
|
2051
|
+
}
|
2052
|
+
};
|
2053
|
+
if (isMobile) {
|
2054
|
+
return /* @__PURE__ */ React23.createElement(Sheet.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React23.createElement(Sheet.Content, { css: { bg: "$surface_dim", p: "$8 0" } }, /* @__PURE__ */ React23.createElement(ChangeNameContent, __spreadValues({}, props))));
|
2055
|
+
}
|
2056
|
+
return /* @__PURE__ */ React23.createElement(Dialog.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React23.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React23.createElement(Dialog.Overlay, null), /* @__PURE__ */ React23.createElement(Dialog.Content, { css: { bg: "$surface_dim", width: "min(400px,80%)", p: "$10" } }, /* @__PURE__ */ React23.createElement(ChangeNameContent, __spreadValues({}, props)))));
|
2057
|
+
};
|
2058
|
+
|
2059
|
+
// src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx
|
1882
2060
|
var MODALS2 = {
|
1883
2061
|
CHANGE_NAME: "changeName",
|
1884
2062
|
SELF_ROLE_CHANGE: "selfRoleChange",
|
@@ -1894,18 +2072,18 @@ var MwebOptions = ({
|
|
1894
2072
|
elements,
|
1895
2073
|
screenType
|
1896
2074
|
}) => {
|
1897
|
-
const hmsActions =
|
1898
|
-
const permissions =
|
1899
|
-
const isConnected =
|
2075
|
+
const hmsActions = useHMSActions10();
|
2076
|
+
const permissions = useHMSStore12(selectPermissions6);
|
2077
|
+
const isConnected = useHMSStore12(selectIsConnectedToRoom5);
|
1900
2078
|
const { isBrowserRecordingOn, isStreamingOn, isHLSRunning } = useRecordingStreaming5();
|
1901
|
-
const [openModals, setOpenModals] =
|
1902
|
-
const [openOptionsSheet, setOpenOptionsSheet] =
|
1903
|
-
const [openSettingsSheet, setOpenSettingsSheet] =
|
1904
|
-
const [showEmojiCard, setShowEmojiCard] =
|
1905
|
-
const [showRecordingOn, setShowRecordingOn] =
|
1906
|
-
const [isRecordingLoading, setIsRecordingLoading] =
|
2079
|
+
const [openModals, setOpenModals] = useState15(/* @__PURE__ */ new Set());
|
2080
|
+
const [openOptionsSheet, setOpenOptionsSheet] = useState15(false);
|
2081
|
+
const [openSettingsSheet, setOpenSettingsSheet] = useState15(false);
|
2082
|
+
const [showEmojiCard, setShowEmojiCard] = useState15(false);
|
2083
|
+
const [showRecordingOn, setShowRecordingOn] = useState15(false);
|
2084
|
+
const [isRecordingLoading, setIsRecordingLoading] = useState15(false);
|
1907
2085
|
const toggleParticipants = useSidepaneToggle(SIDE_PANE_OPTIONS.PARTICIPANTS);
|
1908
|
-
const peerCount =
|
2086
|
+
const peerCount = useHMSStore12(selectPeerCount);
|
1909
2087
|
const emojiCardRef = useRef5(null);
|
1910
2088
|
const { isBRBOn, toggleBRB, isHandRaised, toggleHandRaise } = useMyMetadata();
|
1911
2089
|
const { toggleAudio, toggleVideo } = useAVToggle();
|
@@ -1923,7 +2101,7 @@ var MwebOptions = ({
|
|
1923
2101
|
});
|
1924
2102
|
};
|
1925
2103
|
useClickAway(emojiCardRef, () => setShowEmojiCard(false));
|
1926
|
-
return /* @__PURE__ */
|
2104
|
+
return /* @__PURE__ */ React24.createElement(React24.Fragment, null, /* @__PURE__ */ React24.createElement(Sheet.Root, { open: openOptionsSheet, onOpenChange: setOpenOptionsSheet }, /* @__PURE__ */ React24.createElement(Tooltip, { title: "More options" }, /* @__PURE__ */ React24.createElement(Sheet.Trigger, { asChild: true, "data-testid": "more_settings_btn" }, /* @__PURE__ */ React24.createElement(IconButton_default, null, /* @__PURE__ */ React24.createElement(DragHandleIcon2, null)))), /* @__PURE__ */ React24.createElement(Sheet.Content, { css: { bg: "$surface_dim", pb: "$14" } }, /* @__PURE__ */ React24.createElement(
|
1927
2105
|
Sheet.Title,
|
1928
2106
|
{
|
1929
2107
|
css: {
|
@@ -1941,8 +2119,8 @@ var MwebOptions = ({
|
|
1941
2119
|
}
|
1942
2120
|
},
|
1943
2121
|
"Options",
|
1944
|
-
/* @__PURE__ */
|
1945
|
-
), /* @__PURE__ */
|
2122
|
+
/* @__PURE__ */ React24.createElement(Sheet.Close, null, /* @__PURE__ */ React24.createElement(Box, { css: { color: "$on_surface_high" } }, /* @__PURE__ */ React24.createElement(CrossIcon5, null)))
|
2123
|
+
), /* @__PURE__ */ React24.createElement(
|
1946
2124
|
Box,
|
1947
2125
|
{
|
1948
2126
|
css: {
|
@@ -1954,7 +2132,7 @@ var MwebOptions = ({
|
|
1954
2132
|
px: "$9"
|
1955
2133
|
}
|
1956
2134
|
},
|
1957
|
-
(elements == null ? void 0 : elements.participant_list) && /* @__PURE__ */
|
2135
|
+
(elements == null ? void 0 : elements.participant_list) && /* @__PURE__ */ React24.createElement(
|
1958
2136
|
ActionTile.Root,
|
1959
2137
|
{
|
1960
2138
|
onClick: () => {
|
@@ -1962,11 +2140,11 @@ var MwebOptions = ({
|
|
1962
2140
|
setOpenOptionsSheet(false);
|
1963
2141
|
}
|
1964
2142
|
},
|
1965
|
-
/* @__PURE__ */
|
1966
|
-
/* @__PURE__ */
|
1967
|
-
/* @__PURE__ */
|
2143
|
+
/* @__PURE__ */ React24.createElement(ActionTile.Count, null, getFormattedCount(peerCount)),
|
2144
|
+
/* @__PURE__ */ React24.createElement(PeopleIcon, null),
|
2145
|
+
/* @__PURE__ */ React24.createElement(ActionTile.Title, null, "Participants")
|
1968
2146
|
),
|
1969
|
-
!noAVPermissions ? /* @__PURE__ */
|
2147
|
+
!noAVPermissions ? /* @__PURE__ */ React24.createElement(
|
1970
2148
|
ActionTile.Root,
|
1971
2149
|
{
|
1972
2150
|
active: isHandRaised,
|
@@ -1975,10 +2153,10 @@ var MwebOptions = ({
|
|
1975
2153
|
setOpenOptionsSheet(false);
|
1976
2154
|
}
|
1977
2155
|
},
|
1978
|
-
isHandRaised ? /* @__PURE__ */
|
1979
|
-
/* @__PURE__ */
|
2156
|
+
isHandRaised ? /* @__PURE__ */ React24.createElement(HandRaiseSlashedIcon, null) : /* @__PURE__ */ React24.createElement(HandIcon, null),
|
2157
|
+
/* @__PURE__ */ React24.createElement(ActionTile.Title, null, isHandRaised ? "Lower" : "Raise", " Hand")
|
1980
2158
|
) : null,
|
1981
|
-
(elements == null ? void 0 : elements.emoji_reactions) && /* @__PURE__ */
|
2159
|
+
(elements == null ? void 0 : elements.emoji_reactions) && /* @__PURE__ */ React24.createElement(
|
1982
2160
|
ActionTile.Root,
|
1983
2161
|
{
|
1984
2162
|
onClick: () => {
|
@@ -1986,10 +2164,10 @@ var MwebOptions = ({
|
|
1986
2164
|
setOpenOptionsSheet(false);
|
1987
2165
|
}
|
1988
2166
|
},
|
1989
|
-
/* @__PURE__ */
|
1990
|
-
/* @__PURE__ */
|
2167
|
+
/* @__PURE__ */ React24.createElement(EmojiIcon2, null),
|
2168
|
+
/* @__PURE__ */ React24.createElement(ActionTile.Title, null, "Emoji Reactions")
|
1991
2169
|
),
|
1992
|
-
(elements == null ? void 0 : elements.brb) && /* @__PURE__ */
|
2170
|
+
(elements == null ? void 0 : elements.brb) && /* @__PURE__ */ React24.createElement(
|
1993
2171
|
ActionTile.Root,
|
1994
2172
|
{
|
1995
2173
|
active: isBRBOn,
|
@@ -1998,10 +2176,10 @@ var MwebOptions = ({
|
|
1998
2176
|
setOpenOptionsSheet(false);
|
1999
2177
|
}
|
2000
2178
|
},
|
2001
|
-
/* @__PURE__ */
|
2002
|
-
/* @__PURE__ */
|
2179
|
+
/* @__PURE__ */ React24.createElement(BrbIcon2, null),
|
2180
|
+
/* @__PURE__ */ React24.createElement(ActionTile.Title, null, "Be Right Back")
|
2003
2181
|
),
|
2004
|
-
/* @__PURE__ */
|
2182
|
+
/* @__PURE__ */ React24.createElement(
|
2005
2183
|
ActionTile.Root,
|
2006
2184
|
{
|
2007
2185
|
onClick: () => {
|
@@ -2009,10 +2187,10 @@ var MwebOptions = ({
|
|
2009
2187
|
setOpenOptionsSheet(false);
|
2010
2188
|
}
|
2011
2189
|
},
|
2012
|
-
/* @__PURE__ */
|
2013
|
-
/* @__PURE__ */
|
2190
|
+
/* @__PURE__ */ React24.createElement(SettingsIcon3, null),
|
2191
|
+
/* @__PURE__ */ React24.createElement(ActionTile.Title, null, "Settings")
|
2014
2192
|
),
|
2015
|
-
isConnected && (permissions == null ? void 0 : permissions.browserRecording) ? /* @__PURE__ */
|
2193
|
+
isConnected && (permissions == null ? void 0 : permissions.browserRecording) ? /* @__PURE__ */ React24.createElement(
|
2016
2194
|
ActionTile.Root,
|
2017
2195
|
{
|
2018
2196
|
disabled: isHLSRunning,
|
@@ -2052,16 +2230,16 @@ var MwebOptions = ({
|
|
2052
2230
|
}
|
2053
2231
|
})
|
2054
2232
|
},
|
2055
|
-
isRecordingLoading ? /* @__PURE__ */
|
2056
|
-
/* @__PURE__ */
|
2233
|
+
isRecordingLoading ? /* @__PURE__ */ React24.createElement(Loading, null) : /* @__PURE__ */ React24.createElement(RecordIcon2, null),
|
2234
|
+
/* @__PURE__ */ React24.createElement(ActionTile.Title, null, isBrowserRecordingOn ? "Recording On" : isRecordingLoading ? "Starting Recording" : "Start Recording")
|
2057
2235
|
) : null
|
2058
|
-
))), /* @__PURE__ */
|
2236
|
+
))), /* @__PURE__ */ React24.createElement(SettingsModal_default, { open: openSettingsSheet, onOpenChange: setOpenSettingsSheet, screenType }), openModals.has(MODALS2.MUTE_ALL) && /* @__PURE__ */ React24.createElement(MuteAllModal, { onOpenChange: (value) => updateState(MODALS2.MUTE_ALL, value), isMobile: true }), openModals.has(MODALS2.CHANGE_NAME) && /* @__PURE__ */ React24.createElement(
|
2059
2237
|
ChangeNameModal,
|
2060
2238
|
{
|
2061
2239
|
onOpenChange: (value) => updateState(MODALS2.CHANGE_NAME, value),
|
2062
2240
|
openParentSheet: () => setOpenOptionsSheet(true)
|
2063
2241
|
}
|
2064
|
-
), showEmojiCard && /* @__PURE__ */
|
2242
|
+
), showEmojiCard && /* @__PURE__ */ React24.createElement(
|
2065
2243
|
Box,
|
2066
2244
|
{
|
2067
2245
|
ref: emojiCardRef,
|
@@ -2080,8 +2258,8 @@ var MwebOptions = ({
|
|
2080
2258
|
mx: "$4"
|
2081
2259
|
}
|
2082
2260
|
},
|
2083
|
-
/* @__PURE__ */
|
2084
|
-
), showRecordingOn && /* @__PURE__ */
|
2261
|
+
/* @__PURE__ */ React24.createElement(EmojiReaction, null)
|
2262
|
+
), showRecordingOn && /* @__PURE__ */ React24.createElement(
|
2085
2263
|
StopRecordingInSheet,
|
2086
2264
|
{
|
2087
2265
|
onClose: () => setShowRecordingOn(false),
|
@@ -2106,27 +2284,27 @@ var MoreSettings = ({
|
|
2106
2284
|
elements,
|
2107
2285
|
screenType
|
2108
2286
|
}) => {
|
2109
|
-
const isMobile =
|
2110
|
-
return isMobile ? /* @__PURE__ */
|
2287
|
+
const isMobile = useMedia4(config.media.md);
|
2288
|
+
return isMobile ? /* @__PURE__ */ React25.createElement(MwebOptions, { elements, screenType }) : /* @__PURE__ */ React25.createElement(DesktopOptions, { elements, screenType });
|
2111
2289
|
};
|
2112
2290
|
|
2113
2291
|
// src/Prebuilt/components/RaiseHand.jsx
|
2114
|
-
import
|
2292
|
+
import React26 from "react";
|
2115
2293
|
import { HandIcon as HandIcon2 } from "@100mslive/react-icons";
|
2116
2294
|
var RaiseHand = () => {
|
2117
2295
|
const { isHandRaised, toggleHandRaise } = useMyMetadata();
|
2118
|
-
return /* @__PURE__ */
|
2296
|
+
return /* @__PURE__ */ React26.createElement(Tooltip, { title: isHandRaised ? "Lower hand" : "Raise hand" }, /* @__PURE__ */ React26.createElement(IconButton_default, { active: !isHandRaised, onClick: () => __async(void 0, null, function* () {
|
2119
2297
|
return yield toggleHandRaise();
|
2120
|
-
}) }, /* @__PURE__ */
|
2298
|
+
}) }, /* @__PURE__ */ React26.createElement(HandIcon2, null)));
|
2121
2299
|
};
|
2122
2300
|
|
2123
2301
|
// src/Prebuilt/components/ScreenShareToggle.jsx
|
2124
|
-
import
|
2125
|
-
import { selectIsAllowedToPublish, useHMSStore as
|
2302
|
+
import React33, { Fragment as Fragment6 } from "react";
|
2303
|
+
import { selectIsAllowedToPublish, useHMSStore as useHMSStore13, useScreenShare as useScreenShare2 } from "@100mslive/react-sdk";
|
2126
2304
|
import { ShareScreenIcon } from "@100mslive/react-icons";
|
2127
2305
|
|
2128
2306
|
// src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx
|
2129
|
-
import
|
2307
|
+
import React32, { Fragment as Fragment5, useState as useState17 } from "react";
|
2130
2308
|
import { useScreenShare } from "@100mslive/react-sdk";
|
2131
2309
|
import { StarIcon, VerticalMenuIcon as VerticalMenuIcon2 } from "@100mslive/react-icons";
|
2132
2310
|
|
@@ -2162,12 +2340,12 @@ var ShareMenuIcon = styled(ScreenShareButton, {
|
|
2162
2340
|
});
|
2163
2341
|
|
2164
2342
|
// src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx
|
2165
|
-
import
|
2343
|
+
import React31, { useState as useState16 } from "react";
|
2166
2344
|
|
2167
2345
|
// src/Prebuilt/components/pdfAnnotator/pdfHeader.jsx
|
2168
|
-
import
|
2346
|
+
import React27 from "react";
|
2169
2347
|
var PDFHeader = () => {
|
2170
|
-
return /* @__PURE__ */
|
2348
|
+
return /* @__PURE__ */ React27.createElement(
|
2171
2349
|
DialogCol,
|
2172
2350
|
{
|
2173
2351
|
align: "start",
|
@@ -2176,8 +2354,8 @@ var PDFHeader = () => {
|
|
2176
2354
|
mb: "$6"
|
2177
2355
|
}
|
2178
2356
|
},
|
2179
|
-
/* @__PURE__ */
|
2180
|
-
/* @__PURE__ */
|
2357
|
+
/* @__PURE__ */ React27.createElement(Dialog.Title, { asChild: true }, /* @__PURE__ */ React27.createElement(Text, { as: "h6", variant: "h6" }, "Share PDF")),
|
2358
|
+
/* @__PURE__ */ React27.createElement(Dialog.Description, { asChild: true }, /* @__PURE__ */ React27.createElement(
|
2181
2359
|
Text,
|
2182
2360
|
{
|
2183
2361
|
variant: "sm",
|
@@ -2191,10 +2369,10 @@ var PDFHeader = () => {
|
|
2191
2369
|
};
|
2192
2370
|
|
2193
2371
|
// src/Prebuilt/components/pdfAnnotator/submitPdf.jsx
|
2194
|
-
import
|
2372
|
+
import React28 from "react";
|
2195
2373
|
var SubmitPDF = ({ pdfFile, onOpenChange }) => {
|
2196
2374
|
const [, setPDFConfig] = useSetAppDataByKey(APP_DATA.pdfConfig);
|
2197
|
-
return /* @__PURE__ */
|
2375
|
+
return /* @__PURE__ */ React28.createElement(
|
2198
2376
|
Flex,
|
2199
2377
|
{
|
2200
2378
|
direction: "row",
|
@@ -2204,7 +2382,7 @@ var SubmitPDF = ({ pdfFile, onOpenChange }) => {
|
|
2204
2382
|
gap: "$8"
|
2205
2383
|
}
|
2206
2384
|
},
|
2207
|
-
/* @__PURE__ */
|
2385
|
+
/* @__PURE__ */ React28.createElement(
|
2208
2386
|
Button,
|
2209
2387
|
{
|
2210
2388
|
variant: "standard",
|
@@ -2217,7 +2395,7 @@ var SubmitPDF = ({ pdfFile, onOpenChange }) => {
|
|
2217
2395
|
},
|
2218
2396
|
"Cancel"
|
2219
2397
|
),
|
2220
|
-
/* @__PURE__ */
|
2398
|
+
/* @__PURE__ */ React28.createElement(
|
2221
2399
|
Button,
|
2222
2400
|
{
|
2223
2401
|
variant: "primary",
|
@@ -2240,14 +2418,14 @@ var SubmitPDF = ({ pdfFile, onOpenChange }) => {
|
|
2240
2418
|
};
|
2241
2419
|
|
2242
2420
|
// src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx
|
2243
|
-
import
|
2421
|
+
import React30 from "react";
|
2244
2422
|
import { TrashIcon as TrashIcon2 } from "@100mslive/react-icons";
|
2245
2423
|
|
2246
2424
|
// src/Prebuilt/components/pdfAnnotator/pdfInfo.jsx
|
2247
|
-
import
|
2425
|
+
import React29 from "react";
|
2248
2426
|
import { InfoIcon as InfoIcon3 } from "@100mslive/react-icons";
|
2249
2427
|
var PDFInfo = () => {
|
2250
|
-
return /* @__PURE__ */
|
2428
|
+
return /* @__PURE__ */ React29.createElement(
|
2251
2429
|
DialogRow,
|
2252
2430
|
{
|
2253
2431
|
css: {
|
@@ -2260,7 +2438,7 @@ var PDFInfo = () => {
|
|
2260
2438
|
minHeight: "$11"
|
2261
2439
|
}
|
2262
2440
|
},
|
2263
|
-
/* @__PURE__ */
|
2441
|
+
/* @__PURE__ */ React29.createElement(
|
2264
2442
|
InfoIcon3,
|
2265
2443
|
{
|
2266
2444
|
width: "64px",
|
@@ -2270,14 +2448,14 @@ var PDFInfo = () => {
|
|
2270
2448
|
}
|
2271
2449
|
}
|
2272
2450
|
),
|
2273
|
-
/* @__PURE__ */
|
2451
|
+
/* @__PURE__ */ React29.createElement(Text, { variant: "caption" }, "On the next screen, ensure you select \u201CThis Tab\u201D and click on share. Only the PDF viewer will be seen by other participants")
|
2274
2452
|
);
|
2275
2453
|
};
|
2276
2454
|
|
2277
2455
|
// src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx
|
2278
2456
|
var UploadedFile = ({ pdfFile, setPDFFile, onOpenChange }) => {
|
2279
2457
|
const [fileName, ext] = pdfFile.name.split(".");
|
2280
|
-
return /* @__PURE__ */
|
2458
|
+
return /* @__PURE__ */ React30.createElement(Dialog.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React30.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React30.createElement(Dialog.Overlay, null), /* @__PURE__ */ React30.createElement(
|
2281
2459
|
Dialog.Content,
|
2282
2460
|
{
|
2283
2461
|
css: {
|
@@ -2287,7 +2465,7 @@ var UploadedFile = ({ pdfFile, setPDFFile, onOpenChange }) => {
|
|
2287
2465
|
bg: "$surface_dim"
|
2288
2466
|
}
|
2289
2467
|
},
|
2290
|
-
/* @__PURE__ */
|
2468
|
+
/* @__PURE__ */ React30.createElement(Flex, { direction: "column" }, /* @__PURE__ */ React30.createElement(PDFHeader, null), /* @__PURE__ */ React30.createElement(
|
2291
2469
|
DialogRow,
|
2292
2470
|
{
|
2293
2471
|
css: {
|
@@ -2309,7 +2487,7 @@ var UploadedFile = ({ pdfFile, setPDFFile, onOpenChange }) => {
|
|
2309
2487
|
mt: "$6"
|
2310
2488
|
}
|
2311
2489
|
},
|
2312
|
-
/* @__PURE__ */
|
2490
|
+
/* @__PURE__ */ React30.createElement(Flex, { direction: "row", css: { flexGrow: "1", maxWidth: "88%" } }, /* @__PURE__ */ React30.createElement(
|
2313
2491
|
Text,
|
2314
2492
|
{
|
2315
2493
|
css: {
|
@@ -2319,8 +2497,8 @@ var UploadedFile = ({ pdfFile, setPDFFile, onOpenChange }) => {
|
|
2319
2497
|
}
|
2320
2498
|
},
|
2321
2499
|
fileName
|
2322
|
-
), /* @__PURE__ */
|
2323
|
-
/* @__PURE__ */
|
2500
|
+
), /* @__PURE__ */ React30.createElement(Text, { css: { whiteSpace: "nowrap" } }, ".", ext)),
|
2501
|
+
/* @__PURE__ */ React30.createElement(
|
2324
2502
|
TrashIcon2,
|
2325
2503
|
{
|
2326
2504
|
onClick: () => setPDFFile(null),
|
@@ -2329,14 +2507,14 @@ var UploadedFile = ({ pdfFile, setPDFFile, onOpenChange }) => {
|
|
2329
2507
|
}
|
2330
2508
|
}
|
2331
2509
|
)
|
2332
|
-
), /* @__PURE__ */
|
2510
|
+
), /* @__PURE__ */ React30.createElement(PDFInfo, null), /* @__PURE__ */ React30.createElement(SubmitPDF, { pdfFile, onOpenChange }))
|
2333
2511
|
)));
|
2334
2512
|
};
|
2335
2513
|
|
2336
2514
|
// src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx
|
2337
2515
|
function PDFFileOptions({ onOpenChange }) {
|
2338
|
-
const [pdfFile, setPDFFile] =
|
2339
|
-
return !pdfFile ? /* @__PURE__ */
|
2516
|
+
const [pdfFile, setPDFFile] = useState16(null);
|
2517
|
+
return !pdfFile ? /* @__PURE__ */ React31.createElement(Dialog.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React31.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React31.createElement(Dialog.Overlay, null), /* @__PURE__ */ React31.createElement(
|
2340
2518
|
Dialog.Content,
|
2341
2519
|
{
|
2342
2520
|
css: {
|
@@ -2346,7 +2524,7 @@ function PDFFileOptions({ onOpenChange }) {
|
|
2346
2524
|
bg: "$surface_dim"
|
2347
2525
|
}
|
2348
2526
|
},
|
2349
|
-
/* @__PURE__ */
|
2527
|
+
/* @__PURE__ */ React31.createElement(Flex, { direction: "column" }, /* @__PURE__ */ React31.createElement(PDFHeader, null), /* @__PURE__ */ React31.createElement(
|
2350
2528
|
DialogInputFile,
|
2351
2529
|
{
|
2352
2530
|
onChange: (target) => {
|
@@ -2356,8 +2534,8 @@ function PDFFileOptions({ onOpenChange }) {
|
|
2356
2534
|
type: "file",
|
2357
2535
|
accept: ".pdf"
|
2358
2536
|
}
|
2359
|
-
), /* @__PURE__ */
|
2360
|
-
))) : /* @__PURE__ */
|
2537
|
+
), /* @__PURE__ */ React31.createElement(SubmitPDF, { pdfFile, onOpenChange }))
|
2538
|
+
))) : /* @__PURE__ */ React31.createElement(UploadedFile, { pdfFile, setPDFFile, onOpenChange });
|
2361
2539
|
}
|
2362
2540
|
|
2363
2541
|
// src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx
|
@@ -2367,7 +2545,7 @@ var MODALS3 = {
|
|
2367
2545
|
PDF_SHARE: "pdfShare"
|
2368
2546
|
};
|
2369
2547
|
function ShareScreenOptions() {
|
2370
|
-
const [openModals, setOpenModals] =
|
2548
|
+
const [openModals, setOpenModals] = useState17(/* @__PURE__ */ new Set());
|
2371
2549
|
const { amIScreenSharing } = useScreenShare();
|
2372
2550
|
const updateState = (modalName, value) => {
|
2373
2551
|
setOpenModals((modals) => {
|
@@ -2381,15 +2559,15 @@ function ShareScreenOptions() {
|
|
2381
2559
|
});
|
2382
2560
|
};
|
2383
2561
|
const { toggleScreenShare } = useScreenShare();
|
2384
|
-
return /* @__PURE__ */
|
2562
|
+
return /* @__PURE__ */ React32.createElement(Fragment5, null, /* @__PURE__ */ React32.createElement(
|
2385
2563
|
Dropdown.Root,
|
2386
2564
|
{
|
2387
2565
|
open: openModals.has(MODALS3.SHARE),
|
2388
2566
|
onOpenChange: (value) => updateState(MODALS3.SHARE, value),
|
2389
2567
|
modal: false
|
2390
2568
|
},
|
2391
|
-
/* @__PURE__ */
|
2392
|
-
/* @__PURE__ */
|
2569
|
+
/* @__PURE__ */ React32.createElement(Dropdown.Trigger, { asChild: true, "data-testid": "sharing_btn", disabled: amIScreenSharing }, /* @__PURE__ */ React32.createElement(ShareMenuIcon, { disabled: amIScreenSharing }, /* @__PURE__ */ React32.createElement(Tooltip, { title: "Share" }, /* @__PURE__ */ React32.createElement(Box, null, /* @__PURE__ */ React32.createElement(VerticalMenuIcon2, null))))),
|
2570
|
+
/* @__PURE__ */ React32.createElement(
|
2393
2571
|
Dropdown.Content,
|
2394
2572
|
{
|
2395
2573
|
sideOffset: 5,
|
@@ -2400,7 +2578,7 @@ function ShareScreenOptions() {
|
|
2400
2578
|
bg: "$surface_dim"
|
2401
2579
|
}
|
2402
2580
|
},
|
2403
|
-
/* @__PURE__ */
|
2581
|
+
/* @__PURE__ */ React32.createElement(
|
2404
2582
|
Dropdown.Item,
|
2405
2583
|
{
|
2406
2584
|
css: {
|
@@ -2415,10 +2593,10 @@ function ShareScreenOptions() {
|
|
2415
2593
|
}
|
2416
2594
|
}
|
2417
2595
|
},
|
2418
|
-
/* @__PURE__ */
|
2419
|
-
/* @__PURE__ */
|
2596
|
+
/* @__PURE__ */ React32.createElement(Text, { variant: "h6" }, "Start Sharing"),
|
2597
|
+
/* @__PURE__ */ React32.createElement(Text, { variant: "sm" }, "Choose what you want to share")
|
2420
2598
|
),
|
2421
|
-
/* @__PURE__ */
|
2599
|
+
/* @__PURE__ */ React32.createElement(
|
2422
2600
|
Dropdown.Item,
|
2423
2601
|
{
|
2424
2602
|
css: {
|
@@ -2426,14 +2604,15 @@ function ShareScreenOptions() {
|
|
2426
2604
|
alignItems: "flex-start",
|
2427
2605
|
gap: "$8",
|
2428
2606
|
px: "$10",
|
2429
|
-
|
2607
|
+
pt: "$6",
|
2608
|
+
pb: "$10",
|
2430
2609
|
"&:hover": {
|
2431
2610
|
bg: "$transparent",
|
2432
2611
|
cursor: "default"
|
2433
2612
|
}
|
2434
2613
|
}
|
2435
2614
|
},
|
2436
|
-
/* @__PURE__ */
|
2615
|
+
/* @__PURE__ */ React32.createElement(
|
2437
2616
|
Flex,
|
2438
2617
|
{
|
2439
2618
|
direction: "column",
|
@@ -2442,7 +2621,7 @@ function ShareScreenOptions() {
|
|
2442
2621
|
gap: "$6"
|
2443
2622
|
}
|
2444
2623
|
},
|
2445
|
-
/* @__PURE__ */
|
2624
|
+
/* @__PURE__ */ React32.createElement(
|
2446
2625
|
IconButton,
|
2447
2626
|
{
|
2448
2627
|
as: "div",
|
@@ -2457,7 +2636,7 @@ function ShareScreenOptions() {
|
|
2457
2636
|
pb: "0"
|
2458
2637
|
}
|
2459
2638
|
},
|
2460
|
-
/* @__PURE__ */
|
2639
|
+
/* @__PURE__ */ React32.createElement(
|
2461
2640
|
"img",
|
2462
2641
|
{
|
2463
2642
|
src: screen_share_default,
|
@@ -2472,7 +2651,7 @@ function ShareScreenOptions() {
|
|
2472
2651
|
}
|
2473
2652
|
)
|
2474
2653
|
),
|
2475
|
-
/* @__PURE__ */
|
2654
|
+
/* @__PURE__ */ React32.createElement(Flex, { direction: "column", align: "center" }, /* @__PURE__ */ React32.createElement(Text, { variant: "body2" }, "Share Screen"), /* @__PURE__ */ React32.createElement(
|
2476
2655
|
Text,
|
2477
2656
|
{
|
2478
2657
|
variant: "caption",
|
@@ -2484,7 +2663,7 @@ function ShareScreenOptions() {
|
|
2484
2663
|
"Share your tab, window or your entire screen"
|
2485
2664
|
))
|
2486
2665
|
),
|
2487
|
-
/* @__PURE__ */
|
2666
|
+
/* @__PURE__ */ React32.createElement(
|
2488
2667
|
Flex,
|
2489
2668
|
{
|
2490
2669
|
direction: "column",
|
@@ -2493,7 +2672,7 @@ function ShareScreenOptions() {
|
|
2493
2672
|
gap: "$6"
|
2494
2673
|
}
|
2495
2674
|
},
|
2496
|
-
/* @__PURE__ */
|
2675
|
+
/* @__PURE__ */ React32.createElement(
|
2497
2676
|
IconButton,
|
2498
2677
|
{
|
2499
2678
|
onClick: () => {
|
@@ -2510,7 +2689,7 @@ function ShareScreenOptions() {
|
|
2510
2689
|
pb: "0"
|
2511
2690
|
}
|
2512
2691
|
},
|
2513
|
-
/* @__PURE__ */
|
2692
|
+
/* @__PURE__ */ React32.createElement(
|
2514
2693
|
"img",
|
2515
2694
|
{
|
2516
2695
|
src: pdf_share_default,
|
@@ -2524,14 +2703,14 @@ function ShareScreenOptions() {
|
|
2524
2703
|
}
|
2525
2704
|
}
|
2526
2705
|
),
|
2527
|
-
/* @__PURE__ */
|
2706
|
+
/* @__PURE__ */ React32.createElement(
|
2528
2707
|
Flex,
|
2529
2708
|
{
|
2530
2709
|
direction: "row",
|
2531
2710
|
align: "center",
|
2532
2711
|
css: {
|
2533
2712
|
position: "absolute",
|
2534
|
-
top: "
|
2713
|
+
top: "35%",
|
2535
2714
|
left: "54%",
|
2536
2715
|
padding: "$2 $4",
|
2537
2716
|
r: "$2",
|
@@ -2540,8 +2719,8 @@ function ShareScreenOptions() {
|
|
2540
2719
|
gap: "$2"
|
2541
2720
|
}
|
2542
2721
|
},
|
2543
|
-
/* @__PURE__ */
|
2544
|
-
/* @__PURE__ */
|
2722
|
+
/* @__PURE__ */ React32.createElement(StarIcon, { height: 14, width: 14 }),
|
2723
|
+
/* @__PURE__ */ React32.createElement(
|
2545
2724
|
Text,
|
2546
2725
|
{
|
2547
2726
|
variant: "xs",
|
@@ -2555,7 +2734,7 @@ function ShareScreenOptions() {
|
|
2555
2734
|
)
|
2556
2735
|
)
|
2557
2736
|
),
|
2558
|
-
/* @__PURE__ */
|
2737
|
+
/* @__PURE__ */ React32.createElement(Flex, { direction: "column", align: "center" }, /* @__PURE__ */ React32.createElement(Text, { variant: "body2" }, "Share PDF"), /* @__PURE__ */ React32.createElement(
|
2559
2738
|
Text,
|
2560
2739
|
{
|
2561
2740
|
variant: "caption",
|
@@ -2567,51 +2746,21 @@ function ShareScreenOptions() {
|
|
2567
2746
|
"Annotate, draw shapes, and more over PDFs"
|
2568
2747
|
))
|
2569
2748
|
)
|
2570
|
-
),
|
2571
|
-
/* @__PURE__ */ React30.createElement(
|
2572
|
-
Dropdown.Item,
|
2573
|
-
{
|
2574
|
-
css: {
|
2575
|
-
px: "$10",
|
2576
|
-
pb: "$10",
|
2577
|
-
pt: "$6",
|
2578
|
-
"&:hover": {
|
2579
|
-
bg: "$transparent",
|
2580
|
-
cursor: "default"
|
2581
|
-
}
|
2582
|
-
}
|
2583
|
-
},
|
2584
|
-
/* @__PURE__ */ React30.createElement(
|
2585
|
-
Button,
|
2586
|
-
{
|
2587
|
-
variant: "standard",
|
2588
|
-
outlined: true,
|
2589
|
-
type: "submit",
|
2590
|
-
onClick: () => {
|
2591
|
-
updateState(MODALS3.SHARE, false);
|
2592
|
-
},
|
2593
|
-
"data-testid": "share_btn",
|
2594
|
-
css: {
|
2595
|
-
w: "100%"
|
2596
|
-
}
|
2597
|
-
},
|
2598
|
-
"Cancel"
|
2599
|
-
)
|
2600
2749
|
)
|
2601
2750
|
)
|
2602
|
-
), openModals.has(MODALS3.PDF_SHARE) && /* @__PURE__ */
|
2751
|
+
), openModals.has(MODALS3.PDF_SHARE) && /* @__PURE__ */ React32.createElement(PDFFileOptions, { onOpenChange: (value) => updateState(MODALS3.PDF_SHARE, value) }));
|
2603
2752
|
}
|
2604
2753
|
|
2605
2754
|
// src/Prebuilt/components/ScreenShareToggle.jsx
|
2606
2755
|
var ScreenshareToggle = ({ css = {} }) => {
|
2607
|
-
const isAllowedToPublish =
|
2756
|
+
const isAllowedToPublish = useHMSStore13(selectIsAllowedToPublish);
|
2608
2757
|
const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);
|
2609
2758
|
const { amIScreenSharing, screenShareVideoTrackId: video, toggleScreenShare } = useScreenShare2();
|
2610
2759
|
const isVideoScreenshare = amIScreenSharing && !!video;
|
2611
2760
|
if (!isAllowedToPublish.screen || !isScreenshareSupported()) {
|
2612
2761
|
return null;
|
2613
2762
|
}
|
2614
|
-
return /* @__PURE__ */
|
2763
|
+
return /* @__PURE__ */ React33.createElement(Fragment6, null, /* @__PURE__ */ React33.createElement(Flex, { direction: "row", css: { "@md": { display: "none" } } }, /* @__PURE__ */ React33.createElement(
|
2615
2764
|
ScreenShareButton,
|
2616
2765
|
{
|
2617
2766
|
variant: "standard",
|
@@ -2623,24 +2772,24 @@ var ScreenshareToggle = ({ css = {} }) => {
|
|
2623
2772
|
toggleScreenShare();
|
2624
2773
|
}
|
2625
2774
|
},
|
2626
|
-
/* @__PURE__ */
|
2627
|
-
), /* @__PURE__ */
|
2775
|
+
/* @__PURE__ */ React33.createElement(Tooltip, { title: `${!isVideoScreenshare ? "Start" : "Stop"} screen sharing` }, /* @__PURE__ */ React33.createElement(Box, null, /* @__PURE__ */ React33.createElement(ShareScreenIcon, null)))
|
2776
|
+
), /* @__PURE__ */ React33.createElement(ShareScreenOptions, null)));
|
2628
2777
|
};
|
2629
2778
|
|
2630
2779
|
// src/Prebuilt/components/Footer/ChatToggle.tsx
|
2631
|
-
import
|
2632
|
-
import { selectUnreadHMSMessagesCount, useHMSStore as
|
2780
|
+
import React34 from "react";
|
2781
|
+
import { selectUnreadHMSMessagesCount, useHMSStore as useHMSStore14 } from "@100mslive/react-sdk";
|
2633
2782
|
import { ChatIcon, ChatUnreadIcon } from "@100mslive/react-icons";
|
2634
2783
|
var ChatToggle = () => {
|
2635
|
-
const countUnreadMessages =
|
2784
|
+
const countUnreadMessages = useHMSStore14(selectUnreadHMSMessagesCount);
|
2636
2785
|
const isChatOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.CHAT);
|
2637
2786
|
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
2638
|
-
return /* @__PURE__ */
|
2787
|
+
return /* @__PURE__ */ React34.createElement(Tooltip, { key: "chat", title: `${isChatOpen ? "Close" : "Open"} chat` }, /* @__PURE__ */ React34.createElement(IconButton_default, { onClick: toggleChat, active: !isChatOpen, "data-testid": "chat_btn" }, countUnreadMessages === 0 ? /* @__PURE__ */ React34.createElement(ChatIcon, null) : /* @__PURE__ */ React34.createElement(ChatUnreadIcon, { "data-testid": "chat_unread_btn" })));
|
2639
2788
|
};
|
2640
2789
|
|
2641
2790
|
// src/Prebuilt/components/Footer/ParticipantList.jsx
|
2642
|
-
import
|
2643
|
-
import { useDebounce, useMedia as
|
2791
|
+
import React37, { Fragment as Fragment7, useCallback as useCallback7, useEffect as useEffect7, useState as useState20 } from "react";
|
2792
|
+
import { useDebounce, useMedia as useMedia5 } from "react-use";
|
2644
2793
|
import {
|
2645
2794
|
selectHandRaisedPeers,
|
2646
2795
|
selectHasPeerHandRaised,
|
@@ -2649,8 +2798,8 @@ import {
|
|
2649
2798
|
selectPeerCount as selectPeerCount2,
|
2650
2799
|
selectPeerMetadata,
|
2651
2800
|
selectPermissions as selectPermissions8,
|
2652
|
-
useHMSActions as
|
2653
|
-
useHMSStore as
|
2801
|
+
useHMSActions as useHMSActions13,
|
2802
|
+
useHMSStore as useHMSStore16
|
2654
2803
|
} from "@100mslive/react-sdk";
|
2655
2804
|
import {
|
2656
2805
|
ChangeRoleIcon as ChangeRoleIcon2,
|
@@ -2663,13 +2812,15 @@ import {
|
|
2663
2812
|
} from "@100mslive/react-icons";
|
2664
2813
|
|
2665
2814
|
// src/Prebuilt/components/Footer/RoleAccordion.tsx
|
2666
|
-
import
|
2815
|
+
import React36, { useCallback as useCallback6, useEffect as useEffect6, useRef as useRef6, useState as useState19 } from "react";
|
2667
2816
|
import { useMeasure } from "react-use";
|
2668
2817
|
import { FixedSizeList } from "react-window";
|
2818
|
+
import { useHMSActions as useHMSActions12 } from "@100mslive/react-sdk";
|
2819
|
+
import { AddCircleIcon as AddCircleIcon2 } from "@100mslive/react-icons";
|
2669
2820
|
|
2670
2821
|
// src/Prebuilt/components/Footer/RoleOptions.tsx
|
2671
|
-
import
|
2672
|
-
import { selectPermissions as selectPermissions7, useHMSActions as
|
2822
|
+
import React35, { useState as useState18 } from "react";
|
2823
|
+
import { selectPermissions as selectPermissions7, useHMSActions as useHMSActions11, useHMSStore as useHMSStore15, useHMSVanillaStore as useHMSVanillaStore2 } from "@100mslive/react-sdk";
|
2673
2824
|
import {
|
2674
2825
|
MicOffIcon as MicOffIcon2,
|
2675
2826
|
MicOnIcon,
|
@@ -2682,9 +2833,9 @@ import {
|
|
2682
2833
|
var dropdownItemCSS = { backgroundColor: "$surface_default", gap: "$4", p: "$8" };
|
2683
2834
|
var optionTextCSS = { fontWeight: "$semiBold", color: "$on_surface_high", textTransform: "none" };
|
2684
2835
|
var RoleOptions = ({ roleName, peerList }) => {
|
2685
|
-
const [openOptions, setOpenOptions] =
|
2686
|
-
const permissions =
|
2687
|
-
const hmsActions =
|
2836
|
+
const [openOptions, setOpenOptions] = useState18(false);
|
2837
|
+
const permissions = useHMSStore15(selectPermissions7);
|
2838
|
+
const hmsActions = useHMSActions11();
|
2688
2839
|
const { elements } = useRoomLayoutConferencingScreen();
|
2689
2840
|
const { on_stage_role, off_stage_roles = [] } = (elements == null ? void 0 : elements.on_stage_exp) || {};
|
2690
2841
|
const vanillaStore = useHMSVanillaStore2();
|
@@ -2728,7 +2879,7 @@ var RoleOptions = ({ roleName, peerList }) => {
|
|
2728
2879
|
console.error(e);
|
2729
2880
|
}
|
2730
2881
|
});
|
2731
|
-
return /* @__PURE__ */
|
2882
|
+
return /* @__PURE__ */ React35.createElement(Dropdown.Root, { open: openOptions, onOpenChange: setOpenOptions }, /* @__PURE__ */ React35.createElement(
|
2732
2883
|
Dropdown.Trigger,
|
2733
2884
|
{
|
2734
2885
|
onClick: (e) => e.stopPropagation(),
|
@@ -2747,40 +2898,40 @@ var RoleOptions = ({ roleName, peerList }) => {
|
|
2747
2898
|
}
|
2748
2899
|
}
|
2749
2900
|
},
|
2750
|
-
/* @__PURE__ */
|
2751
|
-
), /* @__PURE__ */
|
2901
|
+
/* @__PURE__ */ React35.createElement(Flex, null, /* @__PURE__ */ React35.createElement(VerticalMenuIcon3, null))
|
2902
|
+
), /* @__PURE__ */ React35.createElement(
|
2752
2903
|
Dropdown.Content,
|
2753
2904
|
{
|
2754
2905
|
onClick: (e) => e.stopPropagation(),
|
2755
2906
|
css: { w: "max-content", maxWidth: "$64", bg: "$surface_default", py: 0 },
|
2756
2907
|
align: "end"
|
2757
2908
|
},
|
2758
|
-
canRemoveRoleFromStage && /* @__PURE__ */
|
2909
|
+
canRemoveRoleFromStage && /* @__PURE__ */ React35.createElement(
|
2759
2910
|
Dropdown.Item,
|
2760
2911
|
{
|
2761
2912
|
css: __spreadProps(__spreadValues({}, dropdownItemCSS), { borderBottom: "1px solid $border_bright" }),
|
2762
2913
|
onClick: removeAllFromStage
|
2763
2914
|
},
|
2764
|
-
/* @__PURE__ */
|
2765
|
-
/* @__PURE__ */
|
2915
|
+
/* @__PURE__ */ React35.createElement(PersonRectangleIcon, null),
|
2916
|
+
/* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: optionTextCSS }, "Remove all from Stage")
|
2766
2917
|
),
|
2767
|
-
canMuteRole && /* @__PURE__ */
|
2918
|
+
canMuteRole && /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(Dropdown.Item, { css: dropdownItemCSS, onClick: () => setTrackEnabled("audio", !allPeersHaveAudioOn) }, allPeersHaveAudioOn ? /* @__PURE__ */ React35.createElement(MicOffIcon2, null) : /* @__PURE__ */ React35.createElement(MicOnIcon, null), /* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: optionTextCSS }, allPeersHaveAudioOn ? "Mute" : "Unmute", " Audio")), /* @__PURE__ */ React35.createElement(
|
2768
2919
|
Dropdown.Item,
|
2769
2920
|
{
|
2770
2921
|
css: __spreadProps(__spreadValues({}, dropdownItemCSS), { borderTop: "1px solid $border_bright" }),
|
2771
2922
|
onClick: () => setTrackEnabled("video", !allPeersHaveVideoOn)
|
2772
2923
|
},
|
2773
|
-
allPeersHaveVideoOn ? /* @__PURE__ */
|
2774
|
-
/* @__PURE__ */
|
2924
|
+
allPeersHaveVideoOn ? /* @__PURE__ */ React35.createElement(VideoOffIcon, null) : /* @__PURE__ */ React35.createElement(VideoOnIcon, null),
|
2925
|
+
/* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: optionTextCSS }, allPeersHaveVideoOn ? "Mute" : "Unmute", " Video")
|
2775
2926
|
)),
|
2776
|
-
canRemoveRoleFromRoom && /* @__PURE__ */
|
2927
|
+
canRemoveRoleFromRoom && /* @__PURE__ */ React35.createElement(
|
2777
2928
|
Dropdown.Item,
|
2778
2929
|
{
|
2779
2930
|
css: __spreadProps(__spreadValues({}, dropdownItemCSS), { borderTop: "1px solid $border_bright", color: "$alert_error_default" }),
|
2780
2931
|
onClick: removePeersFromRoom
|
2781
2932
|
},
|
2782
|
-
/* @__PURE__ */
|
2783
|
-
/* @__PURE__ */
|
2933
|
+
/* @__PURE__ */ React35.createElement(RemoveUserIcon, null),
|
2934
|
+
/* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: __spreadProps(__spreadValues({}, optionTextCSS), { color: "inherit" }) }, "Remove all from Room")
|
2784
2935
|
)
|
2785
2936
|
));
|
2786
2937
|
};
|
@@ -2790,8 +2941,8 @@ var ROW_HEIGHT = 50;
|
|
2790
2941
|
function itemKey(index, data3) {
|
2791
2942
|
return data3.peerList[index].id;
|
2792
2943
|
}
|
2793
|
-
var VirtualizedParticipantItem =
|
2794
|
-
return /* @__PURE__ */
|
2944
|
+
var VirtualizedParticipantItem = React36.memo(({ index, data: data3 }) => {
|
2945
|
+
return /* @__PURE__ */ React36.createElement(Participant, { key: data3.peerList[index].id, peer: data3.peerList[index], isConnected: data3.isConnected });
|
2795
2946
|
});
|
2796
2947
|
var RoleAccordion = ({
|
2797
2948
|
peerList = [],
|
@@ -2801,12 +2952,29 @@ var RoleAccordion = ({
|
|
2801
2952
|
isHandRaisedAccordion = false
|
2802
2953
|
}) => {
|
2803
2954
|
const [ref, { width }] = useMeasure();
|
2955
|
+
const actions = useHMSActions12();
|
2804
2956
|
const showAcordion = (filter == null ? void 0 : filter.search) ? peerList.some((peer) => peer.name.toLowerCase().includes(filter.search)) : true;
|
2805
|
-
|
2957
|
+
const [hasNext, setHasNext] = useState19(false);
|
2958
|
+
const iteratorRef = useRef6(null);
|
2959
|
+
const loadNext = useCallback6(() => {
|
2960
|
+
if (!roleName || roleName === "Hand Raised") {
|
2961
|
+
return;
|
2962
|
+
}
|
2963
|
+
if (!iteratorRef.current) {
|
2964
|
+
iteratorRef.current = actions.getPeerListIterator({ role: roleName });
|
2965
|
+
}
|
2966
|
+
iteratorRef.current.next().catch(console.error).finally(() => {
|
2967
|
+
setHasNext(iteratorRef.current ? iteratorRef.current.hasNext() : false);
|
2968
|
+
});
|
2969
|
+
}, [actions, roleName]);
|
2970
|
+
useEffect6(() => {
|
2971
|
+
loadNext();
|
2972
|
+
}, [loadNext]);
|
2973
|
+
if (!showAcordion || isHandRaisedAccordion && (filter == null ? void 0 : filter.search) || peerList.length === 0 && (filter == null ? void 0 : filter.search)) {
|
2806
2974
|
return null;
|
2807
2975
|
}
|
2808
2976
|
const height = ROW_HEIGHT * peerList.length;
|
2809
|
-
return /* @__PURE__ */
|
2977
|
+
return /* @__PURE__ */ React36.createElement(Flex, { direction: "column", css: { "&:hover .role_actions": { visibility: "visible" } }, ref }, /* @__PURE__ */ React36.createElement(
|
2810
2978
|
Accordion.Root,
|
2811
2979
|
{
|
2812
2980
|
type: "single",
|
@@ -2814,7 +2982,7 @@ var RoleAccordion = ({
|
|
2814
2982
|
defaultValue: roleName,
|
2815
2983
|
css: { borderRadius: "$1", border: "1px solid $border_bright" }
|
2816
2984
|
},
|
2817
|
-
/* @__PURE__ */
|
2985
|
+
/* @__PURE__ */ React36.createElement(Accordion.Item, { value: roleName }, /* @__PURE__ */ React36.createElement(
|
2818
2986
|
Accordion.Header,
|
2819
2987
|
{
|
2820
2988
|
iconStyles: { c: "$on_surface_high" },
|
@@ -2826,7 +2994,7 @@ var RoleAccordion = ({
|
|
2826
2994
|
c: "$on_surface_medium"
|
2827
2995
|
}
|
2828
2996
|
},
|
2829
|
-
/* @__PURE__ */
|
2997
|
+
/* @__PURE__ */ React36.createElement(Flex, { justify: "between", css: { flexGrow: 1, pr: "$6" } }, /* @__PURE__ */ React36.createElement(
|
2830
2998
|
Text,
|
2831
2999
|
{
|
2832
3000
|
variant: "sm",
|
@@ -2835,8 +3003,8 @@ var RoleAccordion = ({
|
|
2835
3003
|
roleName,
|
2836
3004
|
" ",
|
2837
3005
|
`(${getFormattedCount(peerList.length)})`
|
2838
|
-
), /* @__PURE__ */
|
2839
|
-
), /* @__PURE__ */
|
3006
|
+
), /* @__PURE__ */ React36.createElement(RoleOptions, { roleName, peerList }))
|
3007
|
+
), /* @__PURE__ */ React36.createElement(Accordion.Content, null, /* @__PURE__ */ React36.createElement(Box, { css: { borderTop: "1px solid $border_default" } }), /* @__PURE__ */ React36.createElement(
|
2840
3008
|
FixedSizeList,
|
2841
3009
|
{
|
2842
3010
|
itemSize: ROW_HEIGHT,
|
@@ -2847,23 +3015,38 @@ var RoleAccordion = ({
|
|
2847
3015
|
height
|
2848
3016
|
},
|
2849
3017
|
VirtualizedParticipantItem
|
2850
|
-
)
|
3018
|
+
), hasNext ? /* @__PURE__ */ React36.createElement(
|
3019
|
+
Chip_default,
|
3020
|
+
{
|
3021
|
+
icon: /* @__PURE__ */ React36.createElement(AddCircleIcon2, null),
|
3022
|
+
content: "Load More",
|
3023
|
+
onClick: loadNext,
|
3024
|
+
backgroundColor: "$secondary_default",
|
3025
|
+
css: {
|
3026
|
+
w: "max-content",
|
3027
|
+
borderRadius: "$size$9",
|
3028
|
+
m: "$2 auto",
|
3029
|
+
p: "$4",
|
3030
|
+
cursor: "pointer"
|
3031
|
+
}
|
3032
|
+
}
|
3033
|
+
) : null))
|
2851
3034
|
));
|
2852
3035
|
};
|
2853
3036
|
|
2854
3037
|
// src/Prebuilt/components/Footer/ParticipantList.jsx
|
2855
3038
|
var ParticipantList = () => {
|
2856
|
-
const [filter, setFilter] =
|
3039
|
+
const [filter, setFilter] = useState20();
|
2857
3040
|
const { participants, isConnected, peerCount } = useParticipants(filter);
|
2858
3041
|
const peersOrderedByRoles = {};
|
2859
|
-
const handRaisedPeers =
|
3042
|
+
const handRaisedPeers = useHMSStore16(selectHandRaisedPeers);
|
2860
3043
|
participants.forEach((participant) => {
|
2861
3044
|
if (peersOrderedByRoles[participant.roleName] === void 0) {
|
2862
3045
|
peersOrderedByRoles[participant.roleName] = [];
|
2863
3046
|
}
|
2864
3047
|
peersOrderedByRoles[participant.roleName].push(participant);
|
2865
3048
|
});
|
2866
|
-
const onSearch =
|
3049
|
+
const onSearch = useCallback7((value) => {
|
2867
3050
|
setFilter((filterValue) => {
|
2868
3051
|
if (!filterValue) {
|
2869
3052
|
filterValue = {};
|
@@ -2875,7 +3058,7 @@ var ParticipantList = () => {
|
|
2875
3058
|
if (peerCount === 0) {
|
2876
3059
|
return null;
|
2877
3060
|
}
|
2878
|
-
return /* @__PURE__ */
|
3061
|
+
return /* @__PURE__ */ React37.createElement(Fragment7, null, /* @__PURE__ */ React37.createElement(Flex, { direction: "column", css: { size: "100%", gap: "$4" } }, !(filter == null ? void 0 : filter.search) && participants.length === 0 ? null : /* @__PURE__ */ React37.createElement(ParticipantSearch, { onSearch, inSidePane: true }), participants.length === 0 ? /* @__PURE__ */ React37.createElement(Flex, { align: "center", justify: "center", css: { w: "100%", p: "$8 0" } }, /* @__PURE__ */ React37.createElement(Text, { variant: "sm" }, !filter ? "No participants" : "No matching participants")) : null, /* @__PURE__ */ React37.createElement(
|
2879
3062
|
VirtualizedParticipants,
|
2880
3063
|
{
|
2881
3064
|
peersOrderedByRoles,
|
@@ -2886,10 +3069,10 @@ var ParticipantList = () => {
|
|
2886
3069
|
)));
|
2887
3070
|
};
|
2888
3071
|
var ParticipantCount = () => {
|
2889
|
-
const peerCount =
|
3072
|
+
const peerCount = useHMSStore16(selectPeerCount2);
|
2890
3073
|
const toggleSidepane = useSidepaneToggle(SIDE_PANE_OPTIONS.PARTICIPANTS);
|
2891
3074
|
const isParticipantsOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.PARTICIPANTS);
|
2892
|
-
|
3075
|
+
useEffect7(() => {
|
2893
3076
|
if (isParticipantsOpen && peerCount === 0) {
|
2894
3077
|
toggleSidepane();
|
2895
3078
|
}
|
@@ -2897,7 +3080,7 @@ var ParticipantCount = () => {
|
|
2897
3080
|
if (peerCount === 0) {
|
2898
3081
|
return null;
|
2899
3082
|
}
|
2900
|
-
return /* @__PURE__ */
|
3083
|
+
return /* @__PURE__ */ React37.createElement(
|
2901
3084
|
IconButton_default,
|
2902
3085
|
{
|
2903
3086
|
css: {
|
@@ -2913,12 +3096,12 @@ var ParticipantCount = () => {
|
|
2913
3096
|
active: !isParticipantsOpen,
|
2914
3097
|
"data-testid": "participant_list"
|
2915
3098
|
},
|
2916
|
-
/* @__PURE__ */
|
2917
|
-
/* @__PURE__ */
|
3099
|
+
/* @__PURE__ */ React37.createElement(PeopleIcon2, null),
|
3100
|
+
/* @__PURE__ */ React37.createElement(Text, { variant: "sm", css: { mx: "$4", c: "inherit" } }, getFormattedCount(peerCount))
|
2918
3101
|
);
|
2919
3102
|
};
|
2920
3103
|
var VirtualizedParticipants = ({ peersOrderedByRoles = {}, isConnected, filter, handRaisedList = [] }) => {
|
2921
|
-
return /* @__PURE__ */
|
3104
|
+
return /* @__PURE__ */ React37.createElement(
|
2922
3105
|
Flex,
|
2923
3106
|
{
|
2924
3107
|
direction: "column",
|
@@ -2931,7 +3114,7 @@ var VirtualizedParticipants = ({ peersOrderedByRoles = {}, isConnected, filter,
|
|
2931
3114
|
flex: "1 1 0"
|
2932
3115
|
}
|
2933
3116
|
},
|
2934
|
-
/* @__PURE__ */
|
3117
|
+
handRaisedList.length > 0 ? /* @__PURE__ */ React37.createElement(
|
2935
3118
|
RoleAccordion,
|
2936
3119
|
{
|
2937
3120
|
peerList: handRaisedList,
|
@@ -2940,8 +3123,8 @@ var VirtualizedParticipants = ({ peersOrderedByRoles = {}, isConnected, filter,
|
|
2940
3123
|
isConnected,
|
2941
3124
|
isHandRaisedAccordion: true
|
2942
3125
|
}
|
2943
|
-
),
|
2944
|
-
Object.keys(peersOrderedByRoles).map((role) => /* @__PURE__ */
|
3126
|
+
) : null,
|
3127
|
+
Object.keys(peersOrderedByRoles).map((role) => /* @__PURE__ */ React37.createElement(
|
2945
3128
|
RoleAccordion,
|
2946
3129
|
{
|
2947
3130
|
key: role,
|
@@ -2954,8 +3137,8 @@ var VirtualizedParticipants = ({ peersOrderedByRoles = {}, isConnected, filter,
|
|
2954
3137
|
);
|
2955
3138
|
};
|
2956
3139
|
var Participant = ({ peer, isConnected }) => {
|
2957
|
-
const localPeerId =
|
2958
|
-
return /* @__PURE__ */
|
3140
|
+
const localPeerId = useHMSStore16(selectLocalPeerID4);
|
3141
|
+
return /* @__PURE__ */ React37.createElement(
|
2959
3142
|
Flex,
|
2960
3143
|
{
|
2961
3144
|
key: peer.id,
|
@@ -2970,17 +3153,20 @@ var Participant = ({ peer, isConnected }) => {
|
|
2970
3153
|
justify: "between",
|
2971
3154
|
"data-testid": "participant_" + peer.name
|
2972
3155
|
},
|
2973
|
-
/* @__PURE__ */
|
2974
|
-
isConnected ? /* @__PURE__ */
|
3156
|
+
/* @__PURE__ */ React37.createElement(Text, { variant: "sm", css: __spreadProps(__spreadValues({}, textEllipsis(150)), { fontWeight: "$semiBold", color: "$on_surface_high" }) }, peer.name, " ", localPeerId === peer.id ? "(You)" : ""),
|
3157
|
+
isConnected ? /* @__PURE__ */ React37.createElement(ParticipantActions, { peerId: peer.id, isLocal: peer.id === localPeerId, role: peer.roleName }) : null
|
2975
3158
|
);
|
2976
3159
|
};
|
2977
|
-
var ParticipantActions =
|
2978
|
-
var _a;
|
2979
|
-
const isHandRaised =
|
2980
|
-
const canChangeRole = (_a =
|
2981
|
-
const
|
2982
|
-
const
|
2983
|
-
|
3160
|
+
var ParticipantActions = React37.memo(({ peerId, role, isLocal }) => {
|
3161
|
+
var _a, _b;
|
3162
|
+
const isHandRaised = useHMSStore16(selectHasPeerHandRaised(peerId));
|
3163
|
+
const canChangeRole = (_a = useHMSStore16(selectPermissions8)) == null ? void 0 : _a.changeRole;
|
3164
|
+
const canRemoveOthers = (_b = useHMSStore16(selectPermissions8)) == null ? void 0 : _b.removeOthers;
|
3165
|
+
const { elements } = useRoomLayoutConferencingScreen();
|
3166
|
+
const { on_stage_exp } = elements || {};
|
3167
|
+
const shouldShowMoreActions = on_stage_exp && canChangeRole || canRemoveOthers;
|
3168
|
+
const isAudioMuted = !useHMSStore16(selectIsPeerAudioEnabled(peerId));
|
3169
|
+
return /* @__PURE__ */ React37.createElement(
|
2984
3170
|
Flex,
|
2985
3171
|
{
|
2986
3172
|
align: "center",
|
@@ -2989,33 +3175,40 @@ var ParticipantActions = React35.memo(({ peerId, role, isLocal }) => {
|
|
2989
3175
|
gap: "$8"
|
2990
3176
|
}
|
2991
3177
|
},
|
2992
|
-
/* @__PURE__ */
|
2993
|
-
isHandRaised && /* @__PURE__ */
|
3178
|
+
/* @__PURE__ */ React37.createElement(ConnectionIndicator, { peerId }),
|
3179
|
+
isHandRaised && /* @__PURE__ */ React37.createElement(
|
2994
3180
|
Flex,
|
2995
3181
|
{
|
2996
3182
|
align: "center",
|
2997
3183
|
justify: "center",
|
2998
3184
|
css: { p: "$1", c: "$on_surface_high", bg: "$surface_bright", borderRadius: "$round" }
|
2999
3185
|
},
|
3000
|
-
/* @__PURE__ */
|
3186
|
+
/* @__PURE__ */ React37.createElement(HandIcon3, { height: 19, width: 19 })
|
3001
3187
|
),
|
3002
|
-
isAudioMuted ? /* @__PURE__ */
|
3188
|
+
isAudioMuted ? /* @__PURE__ */ React37.createElement(
|
3003
3189
|
Flex,
|
3004
3190
|
{
|
3005
3191
|
align: "center",
|
3006
3192
|
justify: "center",
|
3007
3193
|
css: { p: "$2", c: "$on_surface_high", bg: "$surface_bright", borderRadius: "$round" }
|
3008
3194
|
},
|
3009
|
-
/* @__PURE__ */
|
3195
|
+
/* @__PURE__ */ React37.createElement(MicOffIcon3, { height: 19, width: 19 })
|
3010
3196
|
) : null,
|
3011
|
-
shouldShowMoreActions && !isLocal ? /* @__PURE__ */
|
3197
|
+
shouldShowMoreActions && !isLocal ? /* @__PURE__ */ React37.createElement(
|
3198
|
+
ParticipantMoreActions,
|
3199
|
+
{
|
3200
|
+
peerId,
|
3201
|
+
role,
|
3202
|
+
elements,
|
3203
|
+
canChangeRole,
|
3204
|
+
canRemoveOthers
|
3205
|
+
}
|
3206
|
+
) : null
|
3012
3207
|
);
|
3013
3208
|
});
|
3014
|
-
var ParticipantMoreActions = ({ peerId, role }) => {
|
3209
|
+
var ParticipantMoreActions = ({ peerId, role, elements, canChangeRole, canRemoveOthers }) => {
|
3015
3210
|
var _a;
|
3016
|
-
const hmsActions =
|
3017
|
-
const { changeRole: canChangeRole, removeOthers: canRemoveOthers } = useHMSStore15(selectPermissions8);
|
3018
|
-
const { elements } = useRoomLayoutConferencingScreen();
|
3211
|
+
const hmsActions = useHMSActions13();
|
3019
3212
|
const {
|
3020
3213
|
bring_to_stage_label,
|
3021
3214
|
remove_from_stage_label,
|
@@ -3024,10 +3217,10 @@ var ParticipantMoreActions = ({ peerId, role }) => {
|
|
3024
3217
|
} = elements.on_stage_exp || {};
|
3025
3218
|
const isInStage = role === on_stage_role;
|
3026
3219
|
const shouldShowStageRoleChange = canChangeRole && (isInStage && remove_from_stage_label || (off_stage_roles == null ? void 0 : off_stage_roles.includes(role)) && bring_to_stage_label);
|
3027
|
-
const prevRole = (_a =
|
3028
|
-
const localPeerId =
|
3220
|
+
const prevRole = (_a = useHMSStore16(selectPeerMetadata(peerId))) == null ? void 0 : _a.prevRole;
|
3221
|
+
const localPeerId = useHMSStore16(selectLocalPeerID4);
|
3029
3222
|
const isLocal = localPeerId === peerId;
|
3030
|
-
const [open, setOpen] =
|
3223
|
+
const [open, setOpen] = useState20(false);
|
3031
3224
|
const handleStageAction = () => __async(void 0, null, function* () {
|
3032
3225
|
if (isInStage) {
|
3033
3226
|
prevRole && hmsActions.changeRoleOfPeer(peerId, prevRole, true);
|
@@ -3036,7 +3229,7 @@ var ParticipantMoreActions = ({ peerId, role }) => {
|
|
3036
3229
|
}
|
3037
3230
|
setOpen(false);
|
3038
3231
|
});
|
3039
|
-
return /* @__PURE__ */
|
3232
|
+
return /* @__PURE__ */ React37.createElement(Dropdown.Root, { open, onOpenChange: (value) => setOpen(value), modal: false }, /* @__PURE__ */ React37.createElement(
|
3040
3233
|
Dropdown.Trigger,
|
3041
3234
|
{
|
3042
3235
|
asChild: true,
|
@@ -3056,8 +3249,8 @@ var ParticipantMoreActions = ({ peerId, role }) => {
|
|
3056
3249
|
},
|
3057
3250
|
tabIndex: 0
|
3058
3251
|
},
|
3059
|
-
/* @__PURE__ */
|
3060
|
-
), /* @__PURE__ */
|
3252
|
+
/* @__PURE__ */ React37.createElement(Box, { css: { my: "auto" } }, /* @__PURE__ */ React37.createElement(VerticalMenuIcon4, null))
|
3253
|
+
), /* @__PURE__ */ React37.createElement(Dropdown.Portal, null, /* @__PURE__ */ React37.createElement(Dropdown.Content, { align: "end", sideOffset: 8, css: { w: "$64", bg: "$surface_default" } }, shouldShowStageRoleChange ? /* @__PURE__ */ React37.createElement(Dropdown.Item, { css: { bg: "$surface_default" }, onClick: () => handleStageAction() }, /* @__PURE__ */ React37.createElement(ChangeRoleIcon2, null), /* @__PURE__ */ React37.createElement(Text, { variant: "sm", css: { ml: "$4", fontWeight: "$semiBold", c: "$on_surface_high" } }, isInStage ? remove_from_stage_label : bring_to_stage_label)) : null, !isLocal && canRemoveOthers && /* @__PURE__ */ React37.createElement(
|
3061
3254
|
Dropdown.Item,
|
3062
3255
|
{
|
3063
3256
|
css: { color: "$alert_error_default", bg: "$surface_default" },
|
@@ -3069,13 +3262,13 @@ var ParticipantMoreActions = ({ peerId, role }) => {
|
|
3069
3262
|
}
|
3070
3263
|
})
|
3071
3264
|
},
|
3072
|
-
/* @__PURE__ */
|
3073
|
-
/* @__PURE__ */
|
3265
|
+
/* @__PURE__ */ React37.createElement(PeopleRemoveIcon, null),
|
3266
|
+
/* @__PURE__ */ React37.createElement(Text, { variant: "sm", css: { ml: "$4", color: "inherit", fontWeight: "$semiBold" } }, "Remove Participant")
|
3074
3267
|
))));
|
3075
3268
|
};
|
3076
3269
|
var ParticipantSearch = ({ onSearch, placeholder, inSidePane = false }) => {
|
3077
|
-
const [value, setValue] =
|
3078
|
-
const isMobile =
|
3270
|
+
const [value, setValue] = React37.useState("");
|
3271
|
+
const isMobile = useMedia5(config.media.md);
|
3079
3272
|
useDebounce(
|
3080
3273
|
() => {
|
3081
3274
|
onSearch(value);
|
@@ -3083,7 +3276,7 @@ var ParticipantSearch = ({ onSearch, placeholder, inSidePane = false }) => {
|
|
3083
3276
|
300,
|
3084
3277
|
[value, onSearch]
|
3085
3278
|
);
|
3086
|
-
return /* @__PURE__ */
|
3279
|
+
return /* @__PURE__ */ React37.createElement(
|
3087
3280
|
Flex,
|
3088
3281
|
{
|
3089
3282
|
align: "center",
|
@@ -3095,8 +3288,8 @@ var ParticipantSearch = ({ onSearch, placeholder, inSidePane = false }) => {
|
|
3095
3288
|
mt: inSidePane ? "$4" : ""
|
3096
3289
|
}
|
3097
3290
|
},
|
3098
|
-
/* @__PURE__ */
|
3099
|
-
/* @__PURE__ */
|
3291
|
+
/* @__PURE__ */ React37.createElement(SearchIcon, { style: { position: "absolute", left: isMobile ? "1.25rem" : "0.5rem" } }),
|
3292
|
+
/* @__PURE__ */ React37.createElement(
|
3100
3293
|
Input,
|
3101
3294
|
{
|
3102
3295
|
type: "text",
|
@@ -3117,25 +3310,25 @@ var ParticipantSearch = ({ onSearch, placeholder, inSidePane = false }) => {
|
|
3117
3310
|
};
|
3118
3311
|
|
3119
3312
|
// src/Prebuilt/components/Footer/Footer.tsx
|
3120
|
-
var VirtualBackground =
|
3313
|
+
var VirtualBackground = React38.lazy(() => import("./VirtualBackground-GP4ATXD3.js"));
|
3121
3314
|
var Footer2 = ({
|
3122
3315
|
screenType,
|
3123
3316
|
elements
|
3124
3317
|
}) => {
|
3125
3318
|
var _a, _b;
|
3126
|
-
const isMobile =
|
3319
|
+
const isMobile = useMedia6(config.media.md);
|
3127
3320
|
const isOverlayChat = !!((_a = elements == null ? void 0 : elements.chat) == null ? void 0 : _a.is_overlay);
|
3128
3321
|
const openByDefault = ((_b = elements == null ? void 0 : elements.chat) == null ? void 0 : _b.initial_state) === Chat_ChatState.CHAT_STATE_OPEN;
|
3129
3322
|
const { toggleAudio, toggleVideo } = useAVToggle2();
|
3130
3323
|
const noAVPermissions = !(toggleAudio || toggleVideo);
|
3131
3324
|
const isChatOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.CHAT);
|
3132
3325
|
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
3133
|
-
|
3326
|
+
useEffect8(() => {
|
3134
3327
|
if (!isChatOpen && openByDefault) {
|
3135
3328
|
toggleChat();
|
3136
3329
|
}
|
3137
3330
|
}, [toggleChat, openByDefault]);
|
3138
|
-
return /* @__PURE__ */
|
3331
|
+
return /* @__PURE__ */ React38.createElement(
|
3139
3332
|
Footer.Root,
|
3140
3333
|
{
|
3141
3334
|
css: {
|
@@ -3149,7 +3342,7 @@ var Footer2 = ({
|
|
3149
3342
|
}
|
3150
3343
|
}
|
3151
3344
|
},
|
3152
|
-
/* @__PURE__ */
|
3345
|
+
/* @__PURE__ */ React38.createElement(
|
3153
3346
|
Footer.Left,
|
3154
3347
|
{
|
3155
3348
|
css: {
|
@@ -3160,11 +3353,11 @@ var Footer2 = ({
|
|
3160
3353
|
}
|
3161
3354
|
}
|
3162
3355
|
},
|
3163
|
-
isMobile ? /* @__PURE__ */
|
3164
|
-
/* @__PURE__ */
|
3165
|
-
isMobile ? null : /* @__PURE__ */
|
3356
|
+
isMobile ? /* @__PURE__ */ React38.createElement(LeaveRoom, { screenType }) : null,
|
3357
|
+
/* @__PURE__ */ React38.createElement(AudioVideoToggle, null),
|
3358
|
+
isMobile ? null : /* @__PURE__ */ React38.createElement(Suspense, { fallback: /* @__PURE__ */ React38.createElement(React38.Fragment, null) }, /* @__PURE__ */ React38.createElement(VirtualBackground, null))
|
3166
3359
|
),
|
3167
|
-
/* @__PURE__ */
|
3360
|
+
/* @__PURE__ */ React38.createElement(
|
3168
3361
|
Footer.Center,
|
3169
3362
|
{
|
3170
3363
|
css: {
|
@@ -3174,21 +3367,21 @@ var Footer2 = ({
|
|
3174
3367
|
}
|
3175
3368
|
}
|
3176
3369
|
},
|
3177
|
-
isMobile ? /* @__PURE__ */
|
3370
|
+
isMobile ? /* @__PURE__ */ React38.createElement(React38.Fragment, null, noAVPermissions ? /* @__PURE__ */ React38.createElement(RaiseHand, null) : null, (elements == null ? void 0 : elements.chat) && /* @__PURE__ */ React38.createElement(ChatToggle, null), /* @__PURE__ */ React38.createElement(MoreSettings, { elements, screenType })) : /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(ScreenshareToggle, null), /* @__PURE__ */ React38.createElement(RaiseHand, null), (elements == null ? void 0 : elements.emoji_reactions) && /* @__PURE__ */ React38.createElement(EmojiReaction, null), /* @__PURE__ */ React38.createElement(LeaveRoom, { screenType }))
|
3178
3371
|
),
|
3179
|
-
/* @__PURE__ */
|
3372
|
+
/* @__PURE__ */ React38.createElement(Footer.Right, null, !isMobile && (elements == null ? void 0 : elements.chat) && /* @__PURE__ */ React38.createElement(ChatToggle, null), (elements == null ? void 0 : elements.participant_list) && /* @__PURE__ */ React38.createElement(ParticipantCount, null), /* @__PURE__ */ React38.createElement(MoreSettings, { elements, screenType }))
|
3180
3373
|
);
|
3181
3374
|
};
|
3182
3375
|
|
3183
3376
|
// src/Prebuilt/components/Notifications/HLSFailureModal.jsx
|
3184
|
-
import
|
3185
|
-
import { selectHLSState as selectHLSState2, useHMSActions as
|
3377
|
+
import React39, { useCallback as useCallback8, useState as useState21 } from "react";
|
3378
|
+
import { selectHLSState as selectHLSState2, useHMSActions as useHMSActions14, useHMSStore as useHMSStore17 } from "@100mslive/react-sdk";
|
3186
3379
|
function HLSFailureModal() {
|
3187
|
-
const { hlsError } =
|
3188
|
-
const [openModal, setOpenModal] =
|
3189
|
-
const hmsActions =
|
3380
|
+
const { hlsError } = useHMSStore17(selectHLSState2).error || false;
|
3381
|
+
const [openModal, setOpenModal] = useState21(!!hlsError);
|
3382
|
+
const hmsActions = useHMSActions14();
|
3190
3383
|
const [isHLSStarted, setHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);
|
3191
|
-
const startHLS =
|
3384
|
+
const startHLS = useCallback8(() => __async(this, null, function* () {
|
3192
3385
|
try {
|
3193
3386
|
if (isHLSStarted) {
|
3194
3387
|
return;
|
@@ -3203,7 +3396,7 @@ function HLSFailureModal() {
|
|
3203
3396
|
setHLSStarted(false);
|
3204
3397
|
}
|
3205
3398
|
}), [hmsActions, isHLSStarted, setHLSStarted]);
|
3206
|
-
return hlsError ? /* @__PURE__ */
|
3399
|
+
return hlsError ? /* @__PURE__ */ React39.createElement(
|
3207
3400
|
Dialog.Root,
|
3208
3401
|
{
|
3209
3402
|
open: openModal,
|
@@ -3213,7 +3406,7 @@ function HLSFailureModal() {
|
|
3213
3406
|
}
|
3214
3407
|
}
|
3215
3408
|
},
|
3216
|
-
/* @__PURE__ */
|
3409
|
+
/* @__PURE__ */ React39.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React39.createElement(Dialog.Overlay, null), /* @__PURE__ */ React39.createElement(Dialog.Content, { css: { w: "min(360px, 90%)" } }, /* @__PURE__ */ React39.createElement(
|
3217
3410
|
Dialog.Title,
|
3218
3411
|
{
|
3219
3412
|
css: {
|
@@ -3224,25 +3417,25 @@ function HLSFailureModal() {
|
|
3224
3417
|
mt: "$4"
|
3225
3418
|
}
|
3226
3419
|
},
|
3227
|
-
/* @__PURE__ */
|
3228
|
-
), /* @__PURE__ */
|
3420
|
+
/* @__PURE__ */ React39.createElement(Text, { variant: "h6", css: { fontWeight: "$semiBold" } }, "Failed to Go Live")
|
3421
|
+
), /* @__PURE__ */ React39.createElement(Text, { variant: "sm", css: { mb: "$10", color: "$on_surface_medium" } }, "Something went wrong and your live broadcast failed. Please try again."), /* @__PURE__ */ React39.createElement(Flex, { align: "center", justify: "between", css: { w: "100%", gap: "$8" } }, /* @__PURE__ */ React39.createElement(Button, { outlined: true, variant: "standard", css: { w: "100%" }, onClick: () => setOpenModal(false) }, "Dismiss"), /* @__PURE__ */ React39.createElement(Button, { css: { w: "100%" }, onClick: startHLS }, "Go Live"))))
|
3229
3422
|
) : null;
|
3230
3423
|
}
|
3231
3424
|
|
3232
3425
|
// src/Prebuilt/components/RoleChangeRequest/RoleChangeRequestModal.tsx
|
3233
|
-
import
|
3426
|
+
import React41, { useEffect as useEffect9 } from "react";
|
3234
3427
|
import {
|
3235
|
-
selectLocalPeerName,
|
3428
|
+
selectLocalPeerName as selectLocalPeerName2,
|
3236
3429
|
selectLocalPeerRoleName,
|
3237
3430
|
selectRoleChangeRequest,
|
3238
3431
|
useCustomEvent as useCustomEvent2,
|
3239
|
-
useHMSActions as
|
3240
|
-
useHMSStore as
|
3432
|
+
useHMSActions as useHMSActions15,
|
3433
|
+
useHMSStore as useHMSStore18
|
3241
3434
|
} from "@100mslive/react-sdk";
|
3242
3435
|
|
3243
3436
|
// src/Prebuilt/components/RoleChangeRequest/RequestPrompt.tsx
|
3244
|
-
import
|
3245
|
-
import { useMedia as
|
3437
|
+
import React40 from "react";
|
3438
|
+
import { useMedia as useMedia7 } from "react-use";
|
3246
3439
|
var RequestPrompt = ({
|
3247
3440
|
open = true,
|
3248
3441
|
onOpenChange,
|
@@ -3251,23 +3444,23 @@ var RequestPrompt = ({
|
|
3251
3444
|
actionText = "Accept",
|
3252
3445
|
onAction
|
3253
3446
|
}) => {
|
3254
|
-
const isMobile =
|
3447
|
+
const isMobile = useMedia7(config.media.md);
|
3255
3448
|
if (isMobile) {
|
3256
|
-
return /* @__PURE__ */
|
3449
|
+
return /* @__PURE__ */ React40.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React40.createElement(Sheet.Content, { css: { py: "$8" } }, /* @__PURE__ */ React40.createElement(Text, { css: { fontWeight: "$semiBold", c: "$on_surface_high", "@md": { px: "$8" } } }, title), body, /* @__PURE__ */ React40.createElement(RequestActions, { actionText, onAction })));
|
3257
3450
|
}
|
3258
|
-
return /* @__PURE__ */
|
3451
|
+
return /* @__PURE__ */ React40.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React40.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React40.createElement(Dialog.Overlay, null), /* @__PURE__ */ React40.createElement(Dialog.Content, { css: { p: "$10" } }, /* @__PURE__ */ React40.createElement(Dialog.Title, { css: { p: 0, display: "flex", flexDirection: "row", gap: "$md", justifyContent: "center" } }, /* @__PURE__ */ React40.createElement(Text, { variant: "h6" }, title)), /* @__PURE__ */ React40.createElement(Box, { css: { mt: "$4", mb: "$10" } }, body), /* @__PURE__ */ React40.createElement(RequestActions, { actionText, onAction }))));
|
3259
3452
|
};
|
3260
|
-
var RequestActions = ({ onAction, actionText }) => /* @__PURE__ */
|
3453
|
+
var RequestActions = ({ onAction, actionText }) => /* @__PURE__ */ React40.createElement(Flex, { justify: "center", align: "center", css: { width: "100%", gap: "$md", "@md": { mt: "$8", px: "$8" } } }, /* @__PURE__ */ React40.createElement(Box, { css: { width: "50%" } }, /* @__PURE__ */ React40.createElement(Dialog.Close, { css: { width: "100%" } }, /* @__PURE__ */ React40.createElement(Button, { variant: "standard", outlined: true, css: { width: "100%" } }, "Decline"))), /* @__PURE__ */ React40.createElement(Box, { css: { width: "50%" } }, /* @__PURE__ */ React40.createElement(Button, { variant: "primary", css: { width: "100%" }, onClick: onAction }, actionText)));
|
3261
3454
|
|
3262
3455
|
// src/Prebuilt/components/RoleChangeRequest/RoleChangeRequestModal.tsx
|
3263
3456
|
var RoleChangeRequestModal = () => {
|
3264
|
-
const hmsActions =
|
3457
|
+
const hmsActions = useHMSActions15();
|
3265
3458
|
const { updateMetaData } = useMyMetadata();
|
3266
|
-
const currentRole =
|
3267
|
-
const roleChangeRequest =
|
3268
|
-
const name =
|
3459
|
+
const currentRole = useHMSStore18(selectLocalPeerRoleName);
|
3460
|
+
const roleChangeRequest = useHMSStore18(selectRoleChangeRequest);
|
3461
|
+
const name = useHMSStore18(selectLocalPeerName2);
|
3269
3462
|
const { sendEvent } = useCustomEvent2({ type: ROLE_CHANGE_DECLINED });
|
3270
|
-
|
3463
|
+
useEffect9(() => {
|
3271
3464
|
if (!(roleChangeRequest == null ? void 0 : roleChangeRequest.role)) {
|
3272
3465
|
return;
|
3273
3466
|
}
|
@@ -3278,7 +3471,7 @@ var RoleChangeRequestModal = () => {
|
|
3278
3471
|
if (!(roleChangeRequest == null ? void 0 : roleChangeRequest.role)) {
|
3279
3472
|
return null;
|
3280
3473
|
}
|
3281
|
-
const body = /* @__PURE__ */
|
3474
|
+
const body = /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(
|
3282
3475
|
Text,
|
3283
3476
|
{
|
3284
3477
|
variant: "xs",
|
@@ -3289,7 +3482,7 @@ var RoleChangeRequestModal = () => {
|
|
3289
3482
|
}
|
3290
3483
|
},
|
3291
3484
|
"Setup your audio and video before joining"
|
3292
|
-
), /* @__PURE__ */
|
3485
|
+
), /* @__PURE__ */ React41.createElement(
|
3293
3486
|
Flex,
|
3294
3487
|
{
|
3295
3488
|
align: "center",
|
@@ -3301,10 +3494,10 @@ var RoleChangeRequestModal = () => {
|
|
3301
3494
|
"@md": { px: "$8" }
|
3302
3495
|
}
|
3303
3496
|
},
|
3304
|
-
/* @__PURE__ */
|
3305
|
-
/* @__PURE__ */
|
3497
|
+
/* @__PURE__ */ React41.createElement(PreviewTile, { name: name || "" }),
|
3498
|
+
/* @__PURE__ */ React41.createElement(PreviewControls, { hideSettings: true })
|
3306
3499
|
));
|
3307
|
-
return /* @__PURE__ */
|
3500
|
+
return /* @__PURE__ */ React41.createElement(
|
3308
3501
|
RequestPrompt,
|
3309
3502
|
{
|
3310
3503
|
title: "You're invited to join the stage",
|
@@ -3329,28 +3522,524 @@ var RoleChangeRequestModal = () => {
|
|
3329
3522
|
};
|
3330
3523
|
|
3331
3524
|
// src/Prebuilt/layouts/VideoStreamingSection.tsx
|
3332
|
-
import
|
3333
|
-
import { selectIsConnectedToRoom as selectIsConnectedToRoom6, selectLocalPeerRoleName as selectLocalPeerRoleName3, useHMSActions as
|
3525
|
+
import React67, { Suspense as Suspense2, useEffect as useEffect26 } from "react";
|
3526
|
+
import { selectIsConnectedToRoom as selectIsConnectedToRoom6, selectLocalPeerRoleName as selectLocalPeerRoleName3, useHMSActions as useHMSActions24, useHMSStore as useHMSStore38 } from "@100mslive/react-sdk";
|
3334
3527
|
|
3335
3528
|
// src/Prebuilt/components/VideoLayouts/GridLayout.tsx
|
3336
|
-
import
|
3337
|
-
import { selectPeers as selectPeers2, selectPeerScreenSharing, useHMSStore as
|
3529
|
+
import React56, { useEffect as useEffect17, useMemo as useMemo7, useState as useState30 } from "react";
|
3530
|
+
import { selectPeers as selectPeers2, selectPeerScreenSharing, useHMSStore as useHMSStore27, useHMSVanillaStore as useHMSVanillaStore4 } from "@100mslive/react-sdk";
|
3338
3531
|
|
3339
3532
|
// src/Prebuilt/components/VideoLayouts/EqualProminence.tsx
|
3340
|
-
import
|
3341
|
-
import { useMedia as
|
3342
|
-
import { selectLocalPeer as selectLocalPeer2, useHMSStore as
|
3533
|
+
import React49, { useEffect as useEffect13, useMemo as useMemo4, useState as useState25 } from "react";
|
3534
|
+
import { useMedia as useMedia13 } from "react-use";
|
3535
|
+
import { selectLocalPeer as selectLocalPeer2, useHMSStore as useHMSStore23 } from "@100mslive/react-sdk";
|
3343
3536
|
|
3344
3537
|
// src/Prebuilt/components/InsetTile.tsx
|
3345
|
-
import
|
3538
|
+
import React46, { useEffect as useEffect10, useRef as useRef8 } from "react";
|
3346
3539
|
import Draggable from "react-draggable";
|
3347
|
-
import { useMedia as
|
3348
|
-
import { selectIsAllowedToPublish as selectIsAllowedToPublish2, selectLocalPeer, selectVideoTrackByID, useHMSStore as
|
3540
|
+
import { useMedia as useMedia11 } from "react-use";
|
3541
|
+
import { selectIsAllowedToPublish as selectIsAllowedToPublish2, selectLocalPeer, selectVideoTrackByID as selectVideoTrackByID2, useHMSStore as useHMSStore22 } from "@100mslive/react-sdk";
|
3349
3542
|
import { ExpandIcon as ExpandIcon2 } from "@100mslive/react-icons";
|
3350
3543
|
|
3544
|
+
// src/Prebuilt/components/VideoTile.jsx
|
3545
|
+
import React44, { Fragment as Fragment9, useCallback as useCallback9, useMemo as useMemo2, useRef as useRef7, useState as useState23 } from "react";
|
3546
|
+
import { useMedia as useMedia10 } from "react-use";
|
3547
|
+
import {
|
3548
|
+
selectAudioTrackByPeerID,
|
3549
|
+
selectHasPeerHandRaised as selectHasPeerHandRaised2,
|
3550
|
+
selectIsPeerAudioEnabled as selectIsPeerAudioEnabled2,
|
3551
|
+
selectLocalPeerID as selectLocalPeerID6,
|
3552
|
+
selectPeerMetadata as selectPeerMetadata2,
|
3553
|
+
selectPeerNameByID,
|
3554
|
+
selectSessionStore as selectSessionStore2,
|
3555
|
+
selectVideoTrackByID,
|
3556
|
+
selectVideoTrackByPeerID as selectVideoTrackByPeerID2,
|
3557
|
+
useHMSStore as useHMSStore21
|
3558
|
+
} from "@100mslive/react-sdk";
|
3559
|
+
import { BrbTileIcon, HandIcon as HandIcon4, MicOffIcon as MicOffIcon5 } from "@100mslive/react-icons";
|
3560
|
+
|
3561
|
+
// src/Prebuilt/components/TileMenu/TileMenu.jsx
|
3562
|
+
import React43, { useState as useState22 } from "react";
|
3563
|
+
import { useMedia as useMedia9 } from "react-use";
|
3564
|
+
import {
|
3565
|
+
selectLocalPeerID as selectLocalPeerID5,
|
3566
|
+
selectPeerByID as selectPeerByID2,
|
3567
|
+
selectPermissions as selectPermissions10,
|
3568
|
+
selectTrackByID as selectTrackByID2,
|
3569
|
+
selectVideoTrackByPeerID,
|
3570
|
+
useHMSStore as useHMSStore20,
|
3571
|
+
useRemoteAVToggle as useRemoteAVToggle2
|
3572
|
+
} from "@100mslive/react-sdk";
|
3573
|
+
import { CrossIcon as CrossIcon6, VerticalMenuIcon as VerticalMenuIcon5 } from "@100mslive/react-icons";
|
3574
|
+
|
3575
|
+
// src/Prebuilt/components/TileMenu/TileMenuContent.jsx
|
3576
|
+
import React42, { Fragment as Fragment8 } from "react";
|
3577
|
+
import { useMedia as useMedia8 } from "react-use";
|
3578
|
+
import {
|
3579
|
+
selectPermissions as selectPermissions9,
|
3580
|
+
selectSessionStore,
|
3581
|
+
selectTrackByID,
|
3582
|
+
useCustomEvent as useCustomEvent3,
|
3583
|
+
useHMSActions as useHMSActions16,
|
3584
|
+
useHMSStore as useHMSStore19,
|
3585
|
+
useRemoteAVToggle
|
3586
|
+
} from "@100mslive/react-sdk";
|
3587
|
+
import {
|
3588
|
+
MicOffIcon as MicOffIcon4,
|
3589
|
+
MicOnIcon as MicOnIcon2,
|
3590
|
+
PencilIcon as PencilIcon2,
|
3591
|
+
PinIcon,
|
3592
|
+
RemoveUserIcon as RemoveUserIcon2,
|
3593
|
+
ShareScreenIcon as ShareScreenIcon2,
|
3594
|
+
ShrinkIcon,
|
3595
|
+
SpeakerIcon,
|
3596
|
+
StarIcon as StarIcon2,
|
3597
|
+
VideoOffIcon as VideoOffIcon2,
|
3598
|
+
VideoOnIcon as VideoOnIcon2
|
3599
|
+
} from "@100mslive/react-icons";
|
3600
|
+
var isSameTile = ({ trackId, videoTrackID, audioTrackID }) => trackId && (videoTrackID && videoTrackID === trackId || audioTrackID && audioTrackID === trackId);
|
3601
|
+
var spacingCSS = { "@md": { my: "$8", fontWeight: "$semiBold", fontSize: "sm" } };
|
3602
|
+
var SpotlightActions = ({
|
3603
|
+
peerId,
|
3604
|
+
onSpotLightClick = () => {
|
3605
|
+
return;
|
3606
|
+
}
|
3607
|
+
}) => {
|
3608
|
+
const hmsActions = useHMSActions16();
|
3609
|
+
const spotlightPeerId = useHMSStore19(selectSessionStore(SESSION_STORE_KEY.SPOTLIGHT));
|
3610
|
+
const isTileSpotlighted = spotlightPeerId === peerId;
|
3611
|
+
const setSpotlightPeerId = (peer) => hmsActions.sessionStore.set(SESSION_STORE_KEY.SPOTLIGHT, peer).catch((err) => ToastManager.addToast({ title: err.description }));
|
3612
|
+
return /* @__PURE__ */ React42.createElement(
|
3613
|
+
StyledMenuTile.ItemButton,
|
3614
|
+
{
|
3615
|
+
css: spacingCSS,
|
3616
|
+
onClick: () => {
|
3617
|
+
if (isTileSpotlighted) {
|
3618
|
+
setSpotlightPeerId();
|
3619
|
+
} else {
|
3620
|
+
setSpotlightPeerId(peerId);
|
3621
|
+
}
|
3622
|
+
onSpotLightClick();
|
3623
|
+
}
|
3624
|
+
},
|
3625
|
+
/* @__PURE__ */ React42.createElement(StarIcon2, { height: 20, width: 20 }),
|
3626
|
+
/* @__PURE__ */ React42.createElement("span", null, isTileSpotlighted ? "Remove from Spotlight" : "Spotlight Tile for everyone")
|
3627
|
+
);
|
3628
|
+
};
|
3629
|
+
var PinActions = ({ audioTrackID, videoTrackID }) => {
|
3630
|
+
const [pinnedTrackId, setPinnedTrackId] = useSetAppDataByKey(APP_DATA.pinnedTrackId);
|
3631
|
+
const isTilePinned = isSameTile({
|
3632
|
+
trackId: pinnedTrackId,
|
3633
|
+
videoTrackID,
|
3634
|
+
audioTrackID
|
3635
|
+
});
|
3636
|
+
return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(
|
3637
|
+
StyledMenuTile.ItemButton,
|
3638
|
+
{
|
3639
|
+
css: spacingCSS,
|
3640
|
+
onClick: () => isTilePinned ? setPinnedTrackId() : setPinnedTrackId(videoTrackID || audioTrackID)
|
3641
|
+
},
|
3642
|
+
/* @__PURE__ */ React42.createElement(PinIcon, { height: 20, width: 20 }),
|
3643
|
+
/* @__PURE__ */ React42.createElement("span", null, isTilePinned ? "Unpin" : "Pin", " Tile for myself")
|
3644
|
+
));
|
3645
|
+
};
|
3646
|
+
var MinimiseInset = () => {
|
3647
|
+
const [minimised, setMinimised] = useSetAppDataByKey(APP_DATA.minimiseInset);
|
3648
|
+
return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(StyledMenuTile.ItemButton, { css: spacingCSS, onClick: () => setMinimised(!minimised) }, /* @__PURE__ */ React42.createElement(ShrinkIcon, { height: 20, width: 20 }), /* @__PURE__ */ React42.createElement("span", null, minimised ? "Show" : "Minimise", " your video")));
|
3649
|
+
};
|
3650
|
+
var SimulcastLayers = ({ trackId }) => {
|
3651
|
+
var _a;
|
3652
|
+
const track = useHMSStore19(selectTrackByID(trackId));
|
3653
|
+
const actions = useHMSActions16();
|
3654
|
+
const bg = useDropdownSelection();
|
3655
|
+
if (!((_a = track == null ? void 0 : track.layerDefinitions) == null ? void 0 : _a.length) || track.degraded || !track.enabled) {
|
3656
|
+
return null;
|
3657
|
+
}
|
3658
|
+
const currentLayer = track.layerDefinitions.find((layer) => layer.layer === track.layer);
|
3659
|
+
return /* @__PURE__ */ React42.createElement(Fragment8, null, /* @__PURE__ */ React42.createElement(StyledMenuTile.ItemButton, { css: { color: "$on_surface_medium", cursor: "default" } }, "Select maximum resolution"), track.layerDefinitions.map((layer) => {
|
3660
|
+
return /* @__PURE__ */ React42.createElement(
|
3661
|
+
StyledMenuTile.ItemButton,
|
3662
|
+
{
|
3663
|
+
key: layer.layer,
|
3664
|
+
onClick: () => __async(void 0, null, function* () {
|
3665
|
+
yield actions.setPreferredLayer(trackId, layer.layer);
|
3666
|
+
}),
|
3667
|
+
css: {
|
3668
|
+
justifyContent: "space-between",
|
3669
|
+
bg: track.preferredLayer === layer.layer ? bg : void 0,
|
3670
|
+
"&:hover": {
|
3671
|
+
bg: track.preferredLayer === layer.layer ? bg : void 0
|
3672
|
+
}
|
3673
|
+
}
|
3674
|
+
},
|
3675
|
+
/* @__PURE__ */ React42.createElement(
|
3676
|
+
Text,
|
3677
|
+
{
|
3678
|
+
as: "span",
|
3679
|
+
css: {
|
3680
|
+
textTransform: "capitalize",
|
3681
|
+
mr: "$2",
|
3682
|
+
fontWeight: track.preferredLayer === layer.layer ? "$semiBold" : "$regular",
|
3683
|
+
color: track.preferredLayer === layer.layer ? "$on_primary_high" : "$on_surface_high"
|
3684
|
+
}
|
3685
|
+
},
|
3686
|
+
layer.layer
|
3687
|
+
),
|
3688
|
+
/* @__PURE__ */ React42.createElement(
|
3689
|
+
Text,
|
3690
|
+
{
|
3691
|
+
as: "span",
|
3692
|
+
variant: "xs",
|
3693
|
+
css: {
|
3694
|
+
color: track.preferredLayer === layer.layer ? "$on_primary_high" : "$on_surface_high"
|
3695
|
+
}
|
3696
|
+
},
|
3697
|
+
layer.resolution.width,
|
3698
|
+
"x",
|
3699
|
+
layer.resolution.height
|
3700
|
+
)
|
3701
|
+
);
|
3702
|
+
}), /* @__PURE__ */ React42.createElement(StyledMenuTile.ItemButton, null, /* @__PURE__ */ React42.createElement(Text, { as: "span", variant: "xs", css: { color: "$on_surface_medium" } }, "Currently streaming:", /* @__PURE__ */ React42.createElement(
|
3703
|
+
Text,
|
3704
|
+
{
|
3705
|
+
as: "span",
|
3706
|
+
variant: "xs",
|
3707
|
+
css: {
|
3708
|
+
fontWeight: "$semiBold",
|
3709
|
+
textTransform: "capitalize",
|
3710
|
+
color: "$on_surface_medium",
|
3711
|
+
ml: "$2"
|
3712
|
+
}
|
3713
|
+
},
|
3714
|
+
currentLayer ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, track.layer, " (", currentLayer.resolution.width, "x", currentLayer.resolution.height, ")") : "-"
|
3715
|
+
))));
|
3716
|
+
};
|
3717
|
+
var TileMenuContent = (props) => {
|
3718
|
+
const actions = useHMSActions16();
|
3719
|
+
const { removeOthers } = useHMSStore19(selectPermissions9);
|
3720
|
+
const {
|
3721
|
+
videoTrackID,
|
3722
|
+
audioTrackID,
|
3723
|
+
isLocal,
|
3724
|
+
isScreenshare,
|
3725
|
+
showSpotlight,
|
3726
|
+
showPinAction,
|
3727
|
+
peerID,
|
3728
|
+
canMinimise,
|
3729
|
+
closeSheetOnClick = () => {
|
3730
|
+
return;
|
3731
|
+
},
|
3732
|
+
openNameChangeModal = () => {
|
3733
|
+
return;
|
3734
|
+
}
|
3735
|
+
} = props;
|
3736
|
+
const { isAudioEnabled, isVideoEnabled, setVolume, toggleAudio, toggleVideo, volume } = useRemoteAVToggle(
|
3737
|
+
audioTrackID,
|
3738
|
+
videoTrackID
|
3739
|
+
);
|
3740
|
+
const { sendEvent } = useCustomEvent3({
|
3741
|
+
type: REMOTE_STOP_SCREENSHARE_TYPE
|
3742
|
+
});
|
3743
|
+
const isMobile = useMedia8(config.media.md);
|
3744
|
+
return isLocal ? (showPinAction || canMinimise) && /* @__PURE__ */ React42.createElement(React42.Fragment, null, showPinAction && /* @__PURE__ */ React42.createElement(PinActions, { audioTrackID, videoTrackID }), showSpotlight && /* @__PURE__ */ React42.createElement(SpotlightActions, { peerId: peerID, onSpotLightClick: () => closeSheetOnClick() }), canMinimise && /* @__PURE__ */ React42.createElement(MinimiseInset, null), /* @__PURE__ */ React42.createElement(
|
3745
|
+
StyledMenuTile.ItemButton,
|
3746
|
+
{
|
3747
|
+
onClick: () => {
|
3748
|
+
openNameChangeModal();
|
3749
|
+
closeSheetOnClick();
|
3750
|
+
}
|
3751
|
+
},
|
3752
|
+
/* @__PURE__ */ React42.createElement(PencilIcon2, { height: 20, width: 20 }),
|
3753
|
+
/* @__PURE__ */ React42.createElement(Text, { variant: "sm", css: { "@md": { fontWeight: "$semiBold" }, c: "$on_surface_high" } }, "Change Name")
|
3754
|
+
)) : /* @__PURE__ */ React42.createElement(React42.Fragment, null, toggleVideo ? /* @__PURE__ */ React42.createElement(
|
3755
|
+
StyledMenuTile.ItemButton,
|
3756
|
+
{
|
3757
|
+
css: spacingCSS,
|
3758
|
+
onClick: () => {
|
3759
|
+
toggleVideo();
|
3760
|
+
closeSheetOnClick();
|
3761
|
+
},
|
3762
|
+
"data-testid": isVideoEnabled ? "mute_video_participant_btn" : "unmute_video_participant_btn"
|
3763
|
+
},
|
3764
|
+
isVideoEnabled ? /* @__PURE__ */ React42.createElement(VideoOnIcon2, { height: 20, width: 20 }) : /* @__PURE__ */ React42.createElement(VideoOffIcon2, { height: 20, width: 20 }),
|
3765
|
+
/* @__PURE__ */ React42.createElement("span", null, isVideoEnabled ? "Mute" : "Request Unmute")
|
3766
|
+
) : null, toggleAudio ? /* @__PURE__ */ React42.createElement(
|
3767
|
+
StyledMenuTile.ItemButton,
|
3768
|
+
{
|
3769
|
+
css: spacingCSS,
|
3770
|
+
onClick: () => {
|
3771
|
+
toggleAudio();
|
3772
|
+
closeSheetOnClick();
|
3773
|
+
},
|
3774
|
+
"data-testid": isVideoEnabled ? "mute_audio_participant_btn" : "unmute_audio_participant_btn"
|
3775
|
+
},
|
3776
|
+
isAudioEnabled ? /* @__PURE__ */ React42.createElement(MicOnIcon2, { height: 20, width: 20 }) : /* @__PURE__ */ React42.createElement(MicOffIcon4, { height: 20, width: 20 }),
|
3777
|
+
/* @__PURE__ */ React42.createElement("span", null, isAudioEnabled ? "Mute" : "Request Unmute")
|
3778
|
+
) : null, audioTrackID ? /* @__PURE__ */ React42.createElement(StyledMenuTile.VolumeItem, { "data-testid": "participant_volume_slider", css: __spreadProps(__spreadValues({}, spacingCSS), { mb: "$0" }) }, /* @__PURE__ */ React42.createElement(Flex, { align: "center", gap: 1 }, /* @__PURE__ */ React42.createElement(SpeakerIcon, { height: 20, width: 20 }), /* @__PURE__ */ React42.createElement(Box, { as: "span", css: { ml: "$4" } }, "Volume (", volume, ")")), /* @__PURE__ */ React42.createElement(Slider, { css: { my: "0.5rem" }, step: 5, value: [volume], onValueChange: (e) => setVolume(e[0]) })) : null, showPinAction && /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(PinActions, { audioTrackID, videoTrackID }), showSpotlight && /* @__PURE__ */ React42.createElement(SpotlightActions, { peerId: peerID, onSpotLightClick: () => closeSheetOnClick() })), isMobile ? null : /* @__PURE__ */ React42.createElement(SimulcastLayers, { trackId: videoTrackID }), removeOthers ? /* @__PURE__ */ React42.createElement(
|
3779
|
+
StyledMenuTile.RemoveItem,
|
3780
|
+
{
|
3781
|
+
css: __spreadProps(__spreadValues({}, spacingCSS), { borderTop: "none" }),
|
3782
|
+
onClick: () => __async(void 0, null, function* () {
|
3783
|
+
try {
|
3784
|
+
yield actions.removePeer(peerID, "");
|
3785
|
+
} catch (error) {
|
3786
|
+
}
|
3787
|
+
closeSheetOnClick();
|
3788
|
+
}),
|
3789
|
+
"data-testid": "remove_participant_btn"
|
3790
|
+
},
|
3791
|
+
/* @__PURE__ */ React42.createElement(RemoveUserIcon2, { height: 20, width: 20 }),
|
3792
|
+
/* @__PURE__ */ React42.createElement("span", null, "Remove Participant")
|
3793
|
+
) : null, removeOthers && isScreenshare ? /* @__PURE__ */ React42.createElement(
|
3794
|
+
StyledMenuTile.RemoveItem,
|
3795
|
+
{
|
3796
|
+
onClick: () => {
|
3797
|
+
sendEvent({});
|
3798
|
+
closeSheetOnClick();
|
3799
|
+
},
|
3800
|
+
css: spacingCSS
|
3801
|
+
},
|
3802
|
+
/* @__PURE__ */ React42.createElement(ShareScreenIcon2, { height: 20, width: 20 }),
|
3803
|
+
/* @__PURE__ */ React42.createElement("span", null, "Stop Screenshare")
|
3804
|
+
) : null);
|
3805
|
+
};
|
3806
|
+
|
3807
|
+
// src/Prebuilt/components/TileMenu/TileMenu.jsx
|
3808
|
+
var TileMenu = ({
|
3809
|
+
audioTrackID,
|
3810
|
+
videoTrackID,
|
3811
|
+
peerID,
|
3812
|
+
isScreenshare = false,
|
3813
|
+
canMinimise,
|
3814
|
+
enableSpotlightingPeer = true
|
3815
|
+
}) => {
|
3816
|
+
var _a, _b;
|
3817
|
+
const [open, setOpen] = useState22(false);
|
3818
|
+
const { theme } = useTheme();
|
3819
|
+
const localPeerID = useHMSStore20(selectLocalPeerID5);
|
3820
|
+
const isLocal = localPeerID === peerID;
|
3821
|
+
const { removeOthers } = useHMSStore20(selectPermissions10);
|
3822
|
+
const { setVolume, toggleAudio, toggleVideo } = useRemoteAVToggle2(audioTrackID, videoTrackID);
|
3823
|
+
const showSpotlight = enableSpotlightingPeer;
|
3824
|
+
const isPrimaryVideoTrack = ((_a = useHMSStore20(selectVideoTrackByPeerID(peerID))) == null ? void 0 : _a.id) === videoTrackID;
|
3825
|
+
const showPinAction = audioTrackID || videoTrackID && isPrimaryVideoTrack;
|
3826
|
+
const track = useHMSStore20(selectTrackByID2(videoTrackID));
|
3827
|
+
const hideSimulcastLayers = !((_b = track == null ? void 0 : track.layerDefinitions) == null ? void 0 : _b.length) || track.degraded || !track.enabled;
|
3828
|
+
const isMobile = useMedia9(config.media.md);
|
3829
|
+
const peer = useHMSStore20(selectPeerByID2(peerID));
|
3830
|
+
const [showNameChangeModal, setShowNameChangeModal] = useState22(false);
|
3831
|
+
useDropdownList({ open, name: "TileMenu" });
|
3832
|
+
if (!(removeOthers || toggleAudio || toggleVideo || setVolume || showPinAction) && hideSimulcastLayers) {
|
3833
|
+
return null;
|
3834
|
+
}
|
3835
|
+
const openNameChangeModal = () => setShowNameChangeModal(true);
|
3836
|
+
const props = {
|
3837
|
+
isLocal,
|
3838
|
+
isScreenshare,
|
3839
|
+
audioTrackID,
|
3840
|
+
videoTrackID,
|
3841
|
+
peerID,
|
3842
|
+
isPrimaryVideoTrack,
|
3843
|
+
showSpotlight,
|
3844
|
+
showPinAction,
|
3845
|
+
canMinimise,
|
3846
|
+
openNameChangeModal
|
3847
|
+
};
|
3848
|
+
return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(StyledMenuTile.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React43.createElement(
|
3849
|
+
StyledMenuTile.Trigger,
|
3850
|
+
{
|
3851
|
+
"data-testid": "participant_menu_btn",
|
3852
|
+
css: { bg: `${theme.colors.background_dim.value}A3`, p: "$2", w: "unset", h: "unset" },
|
3853
|
+
onClick: (e) => e.stopPropagation(),
|
3854
|
+
className: isMobile ? "__cancel-drag-event" : ""
|
3855
|
+
},
|
3856
|
+
/* @__PURE__ */ React43.createElement(VerticalMenuIcon5, { width: 20, height: 20 })
|
3857
|
+
), isMobile ? /* @__PURE__ */ React43.createElement(Sheet.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React43.createElement(Sheet.Content, { css: { bg: "$surface_dim", pt: "$8" } }, /* @__PURE__ */ React43.createElement(
|
3858
|
+
Flex,
|
3859
|
+
{
|
3860
|
+
css: {
|
3861
|
+
color: "$on_surface_high",
|
3862
|
+
display: "flex",
|
3863
|
+
w: "100%",
|
3864
|
+
justifyContent: "space-between",
|
3865
|
+
alignItems: "center",
|
3866
|
+
px: "$10",
|
3867
|
+
pb: "$8",
|
3868
|
+
borderBottom: "1px solid $border_default"
|
3869
|
+
}
|
3870
|
+
},
|
3871
|
+
/* @__PURE__ */ React43.createElement(Box, null, /* @__PURE__ */ React43.createElement(Text, { css: { color: "$on_surface_high", fontWeight: "$semiBold" } }, peer.name, isLocal ? ` (You)` : null), (peer == null ? void 0 : peer.roleName) ? /* @__PURE__ */ React43.createElement(Text, { variant: "xs", css: { color: "$on_surface_low", mt: "$2" } }, peer.roleName) : null),
|
3872
|
+
/* @__PURE__ */ React43.createElement(Sheet.Close, { css: { color: "inherit" } }, /* @__PURE__ */ React43.createElement(CrossIcon6, null))
|
3873
|
+
), /* @__PURE__ */ React43.createElement(Box, { css: { px: "$8", pb: "$8", maxHeight: "80vh", overflowY: "auto" } }, /* @__PURE__ */ React43.createElement(TileMenuContent, __spreadProps(__spreadValues({}, props), { closeSheetOnClick: () => setOpen(false) }))))) : /* @__PURE__ */ React43.createElement(StyledMenuTile.Content, { side: "top", align: "end", css: { maxHeight: "$80", overflowY: "auto" } }, /* @__PURE__ */ React43.createElement(TileMenuContent, __spreadValues({}, props)))), showNameChangeModal && /* @__PURE__ */ React43.createElement(ChangeNameModal, { onOpenChange: setShowNameChangeModal }));
|
3874
|
+
};
|
3875
|
+
var TileMenu_default = TileMenu;
|
3876
|
+
|
3877
|
+
// src/Prebuilt/components/peerTileUtils.jsx
|
3878
|
+
var PEER_NAME_PLACEHOLDER = "peerName";
|
3879
|
+
var labelMap = /* @__PURE__ */ new Map([
|
3880
|
+
[[true, "screen"].toString(), "Your Screen"],
|
3881
|
+
[[true, "regular"].toString(), `You (${PEER_NAME_PLACEHOLDER})`],
|
3882
|
+
[[false, "screen"].toString(), `${PEER_NAME_PLACEHOLDER}'s Screen`],
|
3883
|
+
[[false, "regular"].toString(), PEER_NAME_PLACEHOLDER],
|
3884
|
+
[[true, void 0].toString(), `You (${PEER_NAME_PLACEHOLDER})`],
|
3885
|
+
[[false, void 0].toString(), `${PEER_NAME_PLACEHOLDER}`]
|
3886
|
+
]);
|
3887
|
+
var getVideoTileLabel = ({ peerName, isLocal, track }) => {
|
3888
|
+
const isPeerPresent = peerName !== void 0;
|
3889
|
+
if (!isPeerPresent || !track) {
|
3890
|
+
return isPeerPresent ? labelMap.get([isLocal, void 0].toString()).replace(PEER_NAME_PLACEHOLDER, peerName) : "";
|
3891
|
+
}
|
3892
|
+
const isLocallyMuted = track.volume === 0;
|
3893
|
+
let label = labelMap.get([isLocal, track.source].toString());
|
3894
|
+
if (label) {
|
3895
|
+
label = label.replace(PEER_NAME_PLACEHOLDER, peerName);
|
3896
|
+
} else {
|
3897
|
+
label = `${peerName} ${track.source}`;
|
3898
|
+
}
|
3899
|
+
return `${label}${isLocallyMuted ? " (Muted for you)" : ""}`;
|
3900
|
+
};
|
3901
|
+
|
3902
|
+
// src/Prebuilt/components/VideoTile.jsx
|
3903
|
+
var Tile = ({
|
3904
|
+
peerId,
|
3905
|
+
trackId,
|
3906
|
+
width,
|
3907
|
+
height,
|
3908
|
+
objectFit = "cover",
|
3909
|
+
canMinimise = false,
|
3910
|
+
isDragabble = false,
|
3911
|
+
rootCSS = {},
|
3912
|
+
containerCSS = {},
|
3913
|
+
enableSpotlightingPeer = true,
|
3914
|
+
hideParticipantNameOnTile = false,
|
3915
|
+
roundedVideoTile = true,
|
3916
|
+
hideAudioMuteOnTile = false,
|
3917
|
+
hideMetadataOnTile = false
|
3918
|
+
}) => {
|
3919
|
+
var _a, _b;
|
3920
|
+
const trackSelector = trackId ? selectVideoTrackByID(trackId) : selectVideoTrackByPeerID2(peerId);
|
3921
|
+
const track = useHMSStore21(trackSelector);
|
3922
|
+
const isMobile = useMedia10(config.media.md);
|
3923
|
+
const peerName = useHMSStore21(selectPeerNameByID(peerId));
|
3924
|
+
const audioTrack = useHMSStore21(selectAudioTrackByPeerID(peerId));
|
3925
|
+
const localPeerID = useHMSStore21(selectLocalPeerID6);
|
3926
|
+
const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);
|
3927
|
+
const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
|
3928
|
+
const showStatsOnTiles = useUISettings(UI_SETTINGS.showStatsOnTiles);
|
3929
|
+
const isAudioMuted = !useHMSStore21(selectIsPeerAudioEnabled2(peerId));
|
3930
|
+
const isVideoMuted = !(track == null ? void 0 : track.enabled);
|
3931
|
+
const [isMouseHovered, setIsMouseHovered] = useState23(false);
|
3932
|
+
const isVideoDegraded = track == null ? void 0 : track.degraded;
|
3933
|
+
const isLocal = localPeerID === peerId;
|
3934
|
+
const [pinnedTrackId] = useSetAppDataByKey(APP_DATA.pinnedTrackId);
|
3935
|
+
const pinned = isSameTile({
|
3936
|
+
trackId: pinnedTrackId,
|
3937
|
+
videoTrackID: track == null ? void 0 : track.id,
|
3938
|
+
audioTrackID: audioTrack == null ? void 0 : audioTrack.id
|
3939
|
+
});
|
3940
|
+
const spotlighted = useHMSStore21(selectSessionStore2(SESSION_STORE_KEY.SPOTLIGHT)) === peerId;
|
3941
|
+
const label = getVideoTileLabel({
|
3942
|
+
peerName,
|
3943
|
+
track,
|
3944
|
+
isLocal
|
3945
|
+
});
|
3946
|
+
const onHoverHandler = useCallback9((event) => {
|
3947
|
+
setIsMouseHovered(event.type === "mouseenter");
|
3948
|
+
}, []);
|
3949
|
+
const ref = useRef7(null);
|
3950
|
+
const calculatedHeight = ((_a = ref.current) == null ? void 0 : _a.clientHeight) || "";
|
3951
|
+
const calculatedWidth = ((_b = ref.current) == null ? void 0 : _b.clientWidth) || "";
|
3952
|
+
const isTileBigEnoughToShowStats = calculatedHeight >= 180 && calculatedWidth >= 180;
|
3953
|
+
const [avatarSize, attribBoxSize] = useMemo2(() => {
|
3954
|
+
if (!calculatedWidth || !calculatedHeight) {
|
3955
|
+
return [void 0, void 0];
|
3956
|
+
}
|
3957
|
+
let avatarSize2 = "large";
|
3958
|
+
if (calculatedWidth <= 150 || calculatedHeight <= 150) {
|
3959
|
+
avatarSize2 = "small";
|
3960
|
+
} else if (calculatedWidth <= 300 || calculatedHeight <= 300) {
|
3961
|
+
avatarSize2 = "medium";
|
3962
|
+
}
|
3963
|
+
let attribBoxSize2 = "medium";
|
3964
|
+
if (calculatedWidth <= 180 || calculatedHeight <= 180) {
|
3965
|
+
attribBoxSize2 = "small";
|
3966
|
+
}
|
3967
|
+
return [avatarSize2, attribBoxSize2];
|
3968
|
+
}, [calculatedWidth, calculatedHeight]);
|
3969
|
+
return /* @__PURE__ */ React44.createElement(
|
3970
|
+
StyledVideoTile.Root,
|
3971
|
+
{
|
3972
|
+
ref,
|
3973
|
+
css: __spreadValues({
|
3974
|
+
width,
|
3975
|
+
height
|
3976
|
+
}, rootCSS),
|
3977
|
+
"data-testid": `participant_tile_${peerName}`
|
3978
|
+
},
|
3979
|
+
peerName !== void 0 ? /* @__PURE__ */ React44.createElement(
|
3980
|
+
StyledVideoTile.Container,
|
3981
|
+
{
|
3982
|
+
onMouseEnter: onHoverHandler,
|
3983
|
+
onMouseLeave: onHoverHandler,
|
3984
|
+
noRadius: !roundedVideoTile,
|
3985
|
+
css: containerCSS
|
3986
|
+
},
|
3987
|
+
showStatsOnTiles && isTileBigEnoughToShowStats ? /* @__PURE__ */ React44.createElement(VideoTileStats, { audioTrackID: audioTrack == null ? void 0 : audioTrack.id, videoTrackID: track == null ? void 0 : track.id, peerID: peerId, isLocal }) : null,
|
3988
|
+
/* @__PURE__ */ React44.createElement(
|
3989
|
+
Video,
|
3990
|
+
{
|
3991
|
+
trackId: track == null ? void 0 : track.id,
|
3992
|
+
attach: isLocal ? void 0 : !isAudioOnly,
|
3993
|
+
mirror: mirrorLocalVideo && peerId === localPeerID && (track == null ? void 0 : track.source) === "regular" && (track == null ? void 0 : track.facingMode) !== "environment",
|
3994
|
+
noRadius: !roundedVideoTile,
|
3995
|
+
"data-testid": "participant_video_tile",
|
3996
|
+
css: {
|
3997
|
+
objectFit,
|
3998
|
+
filter: isVideoDegraded ? "blur($space$2)" : void 0,
|
3999
|
+
bg: "transparent"
|
4000
|
+
}
|
4001
|
+
}
|
4002
|
+
),
|
4003
|
+
isVideoMuted || !isLocal && isAudioOnly ? /* @__PURE__ */ React44.createElement(StyledVideoTile.AvatarContainer, null, /* @__PURE__ */ React44.createElement(Avatar, { name: peerName || "", "data-testid": "participant_avatar_icon", size: avatarSize })) : null,
|
4004
|
+
!hideAudioMuteOnTile ? isAudioMuted ? /* @__PURE__ */ React44.createElement(StyledVideoTile.AudioIndicator, { "data-testid": "participant_audio_mute_icon", size: attribBoxSize }, /* @__PURE__ */ React44.createElement(MicOffIcon5, null)) : /* @__PURE__ */ React44.createElement(StyledVideoTile.AudioIndicator, { size: attribBoxSize }, /* @__PURE__ */ React44.createElement(AudioLevel, { trackId: audioTrack == null ? void 0 : audioTrack.id, size: attribBoxSize })) : null,
|
4005
|
+
isMouseHovered || isDragabble && isMobile ? /* @__PURE__ */ React44.createElement(
|
4006
|
+
TileMenu_default,
|
4007
|
+
{
|
4008
|
+
peerID: peerId,
|
4009
|
+
audioTrackID: audioTrack == null ? void 0 : audioTrack.id,
|
4010
|
+
videoTrackID: track == null ? void 0 : track.id,
|
4011
|
+
canMinimise,
|
4012
|
+
enableSpotlightingPeer
|
4013
|
+
}
|
4014
|
+
) : null,
|
4015
|
+
!hideMetadataOnTile && /* @__PURE__ */ React44.createElement(PeerMetadata, { peerId, size: attribBoxSize }),
|
4016
|
+
/* @__PURE__ */ React44.createElement(
|
4017
|
+
TileConnection_default,
|
4018
|
+
{
|
4019
|
+
hideLabel: hideParticipantNameOnTile,
|
4020
|
+
name: label,
|
4021
|
+
isTile: true,
|
4022
|
+
peerId,
|
4023
|
+
width,
|
4024
|
+
pinned,
|
4025
|
+
spotlighted
|
4026
|
+
}
|
4027
|
+
)
|
4028
|
+
) : null
|
4029
|
+
);
|
4030
|
+
};
|
4031
|
+
var PeerMetadata = ({ peerId, size }) => {
|
4032
|
+
const metaData = useHMSStore21(selectPeerMetadata2(peerId));
|
4033
|
+
const isBRB = (metaData == null ? void 0 : metaData.isBRBOn) || false;
|
4034
|
+
const isHandRaised = useHMSStore21(selectHasPeerHandRaised2(peerId));
|
4035
|
+
return /* @__PURE__ */ React44.createElement(Fragment9, null, isHandRaised ? /* @__PURE__ */ React44.createElement(StyledVideoTile.AttributeBox, { size, "data-testid": "raiseHand_icon_onTile" }, /* @__PURE__ */ React44.createElement(HandIcon4, { width: 24, height: 24 })) : null, isBRB ? /* @__PURE__ */ React44.createElement(StyledVideoTile.AttributeBox, { size, "data-testid": "brb_icon_onTile" }, /* @__PURE__ */ React44.createElement(BrbTileIcon, { width: 22, height: 22 })) : null);
|
4036
|
+
};
|
4037
|
+
var VideoTile = React44.memo(Tile);
|
4038
|
+
var VideoTile_default = VideoTile;
|
4039
|
+
|
3351
4040
|
// src/Prebuilt/components/hooks/useVideoTileLayout.ts
|
3352
|
-
import
|
3353
|
-
var VideoTileContext =
|
4041
|
+
import React45, { useContext } from "react";
|
4042
|
+
var VideoTileContext = React45.createContext({
|
3354
4043
|
enableSpotlightingPeer: true,
|
3355
4044
|
hideParticipantNameOnTile: false,
|
3356
4045
|
roundedVideoTile: true,
|
@@ -3366,14 +4055,14 @@ var useVideoTileContext = () => {
|
|
3366
4055
|
|
3367
4056
|
// src/Prebuilt/components/InsetTile.tsx
|
3368
4057
|
var MinimisedTile = ({ setMinimised }) => {
|
3369
|
-
return /* @__PURE__ */
|
4058
|
+
return /* @__PURE__ */ React46.createElement(Flex, { align: "center", css: { gap: "$6", r: "$1", bg: "$surface_default", p: "$4", color: "$on_surface_high" } }, /* @__PURE__ */ React46.createElement(AudioVideoToggle, { hideOptions: true }), /* @__PURE__ */ React46.createElement(Text, null, "You"), /* @__PURE__ */ React46.createElement(
|
3370
4059
|
IconButton_default,
|
3371
4060
|
{
|
3372
4061
|
className: "__cancel-drag-event",
|
3373
4062
|
onClick: () => setMinimised(false),
|
3374
4063
|
css: { bg: "transparent", border: "transparent" }
|
3375
4064
|
},
|
3376
|
-
/* @__PURE__ */
|
4065
|
+
/* @__PURE__ */ React46.createElement(ExpandIcon2, null)
|
3377
4066
|
));
|
3378
4067
|
};
|
3379
4068
|
var insetHeightPx = 180;
|
@@ -3381,12 +4070,12 @@ var insetMaxWidthPx = 240;
|
|
3381
4070
|
var defaultMobileAspectRatio = 9 / 16;
|
3382
4071
|
var desktopAspectRatio = 1 / defaultMobileAspectRatio;
|
3383
4072
|
var InsetTile = () => {
|
3384
|
-
const isMobile =
|
3385
|
-
const isLandscape =
|
3386
|
-
const localPeer =
|
4073
|
+
const isMobile = useMedia11(config.media.md);
|
4074
|
+
const isLandscape = useMedia11(config.media.ls);
|
4075
|
+
const localPeer = useHMSStore22(selectLocalPeer);
|
3387
4076
|
const [minimised, setMinimised] = useSetAppDataByKey(APP_DATA.minimiseInset);
|
3388
|
-
const videoTrack =
|
3389
|
-
const isAllowedToPublish =
|
4077
|
+
const videoTrack = useHMSStore22(selectVideoTrackByID2(localPeer == null ? void 0 : localPeer.videoTrack));
|
4078
|
+
const isAllowedToPublish = useHMSStore22(selectIsAllowedToPublish2);
|
3390
4079
|
const videoTileProps = useVideoTileContext();
|
3391
4080
|
let aspectRatio = isMobile ? defaultMobileAspectRatio : desktopAspectRatio;
|
3392
4081
|
if ((videoTrack == null ? void 0 : videoTrack.width) && (videoTrack == null ? void 0 : videoTrack.height) && !isMobile) {
|
@@ -3398,8 +4087,8 @@ var InsetTile = () => {
|
|
3398
4087
|
width = 240;
|
3399
4088
|
height = width / aspectRatio;
|
3400
4089
|
}
|
3401
|
-
const nodeRef =
|
3402
|
-
|
4090
|
+
const nodeRef = useRef8(null);
|
4091
|
+
useEffect10(() => {
|
3403
4092
|
const node = nodeRef.current;
|
3404
4093
|
if (!node || !window.ResizeObserver) {
|
3405
4094
|
return;
|
@@ -3420,7 +4109,7 @@ var InsetTile = () => {
|
|
3420
4109
|
if (!isAllowedToPublish.video && !isAllowedToPublish.audio) {
|
3421
4110
|
return null;
|
3422
4111
|
}
|
3423
|
-
return /* @__PURE__ */
|
4112
|
+
return /* @__PURE__ */ React46.createElement(Draggable, { bounds: "parent", nodeRef, cancel: ".__cancel-drag-event" }, /* @__PURE__ */ React46.createElement(
|
3424
4113
|
Box,
|
3425
4114
|
{
|
3426
4115
|
ref: nodeRef,
|
@@ -3436,7 +4125,7 @@ var InsetTile = () => {
|
|
3436
4125
|
h: height
|
3437
4126
|
} : {})
|
3438
4127
|
},
|
3439
|
-
minimised ? /* @__PURE__ */
|
4128
|
+
minimised ? /* @__PURE__ */ React46.createElement(MinimisedTile, { setMinimised }) : /* @__PURE__ */ React46.createElement(
|
3440
4129
|
VideoTile_default,
|
3441
4130
|
__spreadProps(__spreadValues({
|
3442
4131
|
peerId: localPeer == null ? void 0 : localPeer.id,
|
@@ -3458,8 +4147,8 @@ var InsetTile = () => {
|
|
3458
4147
|
};
|
3459
4148
|
|
3460
4149
|
// src/Prebuilt/components/Pagination.tsx
|
3461
|
-
import
|
3462
|
-
import { ChevronLeftIcon as
|
4150
|
+
import React47, { useEffect as useEffect11 } from "react";
|
4151
|
+
import { ChevronLeftIcon as ChevronLeftIcon3, ChevronRightIcon as ChevronRightIcon2 } from "@100mslive/react-icons";
|
3463
4152
|
var Pagination = ({
|
3464
4153
|
page,
|
3465
4154
|
onPageChange,
|
@@ -3475,7 +4164,7 @@ var Pagination = ({
|
|
3475
4164
|
e.stopPropagation();
|
3476
4165
|
onPageChange(Math.max(page - 1, 0));
|
3477
4166
|
};
|
3478
|
-
|
4167
|
+
useEffect11(() => {
|
3479
4168
|
if (page >= numPages) {
|
3480
4169
|
onPageChange(Math.max(0, numPages - 1));
|
3481
4170
|
}
|
@@ -3483,7 +4172,7 @@ var Pagination = ({
|
|
3483
4172
|
if (numPages <= 1) {
|
3484
4173
|
return null;
|
3485
4174
|
}
|
3486
|
-
return /* @__PURE__ */
|
4175
|
+
return /* @__PURE__ */ React47.createElement(StyledPagination.Root, { css: { flexShrink: 0 } }, /* @__PURE__ */ React47.createElement(StyledPagination.Chevron, { disabled: disableLeft, onClick: prevPage }, /* @__PURE__ */ React47.createElement(ChevronLeftIcon3, { width: 16, height: 16, style: { cursor: disableLeft ? "not-allowed" : "pointer" } })), numPages <= 5 ? /* @__PURE__ */ React47.createElement(StyledPagination.Dots, null, [...Array(numPages)].map((_, i) => /* @__PURE__ */ React47.createElement(
|
3487
4176
|
StyledPagination.Dot,
|
3488
4177
|
{
|
3489
4178
|
key: i,
|
@@ -3493,15 +4182,15 @@ var Pagination = ({
|
|
3493
4182
|
onPageChange(i);
|
3494
4183
|
}
|
3495
4184
|
}
|
3496
|
-
))) : null, /* @__PURE__ */
|
4185
|
+
))) : null, /* @__PURE__ */ React47.createElement(StyledPagination.Chevron, { disabled: disableRight, onClick: nextPage }, /* @__PURE__ */ React47.createElement(ChevronRightIcon2, { width: 16, height: 16, style: { cursor: disableRight ? "not-allowed" : "pointer" } })));
|
3497
4186
|
};
|
3498
4187
|
|
3499
4188
|
// src/Prebuilt/components/VideoLayouts/Grid.tsx
|
3500
|
-
import
|
3501
|
-
var Grid =
|
4189
|
+
import React48 from "react";
|
4190
|
+
var Grid = React48.forwardRef(
|
3502
4191
|
({ tiles, edgeToEdge }, ref) => {
|
3503
4192
|
const videoTileProps = useVideoTileContext();
|
3504
|
-
return /* @__PURE__ */
|
4193
|
+
return /* @__PURE__ */ React48.createElement(
|
3505
4194
|
Box,
|
3506
4195
|
{
|
3507
4196
|
ref,
|
@@ -3519,7 +4208,7 @@ var Grid = React43.forwardRef(
|
|
3519
4208
|
},
|
3520
4209
|
tiles == null ? void 0 : tiles.map((tile) => {
|
3521
4210
|
var _a, _b, _c, _d;
|
3522
|
-
return /* @__PURE__ */
|
4211
|
+
return /* @__PURE__ */ React48.createElement(
|
3523
4212
|
VideoTile_default,
|
3524
4213
|
__spreadValues({
|
3525
4214
|
key: ((_a = tile.track) == null ? void 0 : _a.id) || ((_b = tile.peer) == null ? void 0 : _b.id),
|
@@ -3537,8 +4226,8 @@ var Grid = React43.forwardRef(
|
|
3537
4226
|
);
|
3538
4227
|
|
3539
4228
|
// src/Prebuilt/components/hooks/useTileLayout.tsx
|
3540
|
-
import { useEffect as
|
3541
|
-
import { useMeasure as useMeasure2, useMedia as
|
4229
|
+
import { useEffect as useEffect12, useMemo as useMemo3, useState as useState24 } from "react";
|
4230
|
+
import { useMeasure as useMeasure2, useMedia as useMedia12 } from "react-use";
|
3542
4231
|
import {
|
3543
4232
|
getPeersWithTiles,
|
3544
4233
|
selectTracksMap as selectTracksMap3,
|
@@ -3548,12 +4237,12 @@ var aspectRatioConfig = { default: [1 / 1, 4 / 3, 16 / 9], mobile: [1 / 1, 3 / 4
|
|
3548
4237
|
var usePagesWithTiles = ({ peers, maxTileCount }) => {
|
3549
4238
|
const vanillaStore = useHMSVanillaStore3();
|
3550
4239
|
const tracksMap = vanillaStore.getState(selectTracksMap3);
|
3551
|
-
const peersWithTiles =
|
4240
|
+
const peersWithTiles = useMemo3(
|
3552
4241
|
() => getPeersWithTiles(peers, tracksMap, () => false),
|
3553
4242
|
[peers, tracksMap]
|
3554
4243
|
);
|
3555
4244
|
const noOfPages = Math.ceil(peersWithTiles.length / maxTileCount);
|
3556
|
-
const pagesList =
|
4245
|
+
const pagesList = useMemo3(() => {
|
3557
4246
|
let sliceStart = 0;
|
3558
4247
|
let remaining = peersWithTiles.length;
|
3559
4248
|
const list = [];
|
@@ -3574,9 +4263,9 @@ var useTileLayout = ({
|
|
3574
4263
|
}) => {
|
3575
4264
|
const vanillaStore = useHMSVanillaStore3();
|
3576
4265
|
const [ref, { width, height }] = useMeasure2();
|
3577
|
-
const isMobile =
|
3578
|
-
const [pagesWithTiles, setPagesWithTiles] =
|
3579
|
-
|
4266
|
+
const isMobile = useMedia12(config.media.lg);
|
4267
|
+
const [pagesWithTiles, setPagesWithTiles] = useState24([]);
|
4268
|
+
useEffect12(() => {
|
3580
4269
|
if (width === 0 || height === 0) {
|
3581
4270
|
return;
|
3582
4271
|
}
|
@@ -3643,15 +4332,15 @@ var useTileLayout = ({
|
|
3643
4332
|
// src/Prebuilt/components/VideoLayouts/EqualProminence.tsx
|
3644
4333
|
function EqualProminence({ isInsetEnabled = false, peers, onPageChange, onPageSize, edgeToEdge }) {
|
3645
4334
|
var _a;
|
3646
|
-
const localPeer =
|
3647
|
-
const isMobile =
|
4335
|
+
const localPeer = useHMSStore23(selectLocalPeer2);
|
4336
|
+
const isMobile = useMedia13(config.media.md);
|
3648
4337
|
let maxTileCount = useUISettings(UI_SETTINGS.maxTileCount);
|
3649
4338
|
maxTileCount = isMobile ? Math.min(maxTileCount, 6) : maxTileCount;
|
3650
4339
|
let pageList = usePagesWithTiles({
|
3651
4340
|
peers,
|
3652
4341
|
maxTileCount
|
3653
4342
|
});
|
3654
|
-
const inputPeers =
|
4343
|
+
const inputPeers = useMemo4(
|
3655
4344
|
() => pageList.length === 0 ? localPeer ? [localPeer] : [] : peers,
|
3656
4345
|
[pageList.length, peers, localPeer]
|
3657
4346
|
);
|
@@ -3664,14 +4353,14 @@ function EqualProminence({ isInsetEnabled = false, peers, onPageChange, onPageSi
|
|
3664
4353
|
maxTileCount,
|
3665
4354
|
edgeToEdge
|
3666
4355
|
});
|
3667
|
-
const [page, setPage] =
|
4356
|
+
const [page, setPage] = useState25(0);
|
3668
4357
|
const pageSize = ((_a = pagesWithTiles[0]) == null ? void 0 : _a.length) || 0;
|
3669
|
-
|
4358
|
+
useEffect13(() => {
|
3670
4359
|
if (pageSize > 0) {
|
3671
4360
|
onPageSize == null ? void 0 : onPageSize(pageSize);
|
3672
4361
|
}
|
3673
4362
|
}, [pageSize, onPageSize]);
|
3674
|
-
return /* @__PURE__ */
|
4363
|
+
return /* @__PURE__ */ React49.createElement(Flex, { direction: "column", css: { flex: "1 1 0", h: "100%", position: "relative", minWidth: 0 } }, /* @__PURE__ */ React49.createElement(Grid, { tiles: pagesWithTiles[page], ref, edgeToEdge }), !edgeToEdge && /* @__PURE__ */ React49.createElement(
|
3675
4364
|
Pagination,
|
3676
4365
|
{
|
3677
4366
|
page,
|
@@ -3681,20 +4370,20 @@ function EqualProminence({ isInsetEnabled = false, peers, onPageChange, onPageSi
|
|
3681
4370
|
},
|
3682
4371
|
numPages: pagesWithTiles.length
|
3683
4372
|
}
|
3684
|
-
), isInsetEnabled && pageList.length > 0 && pageList[0][0].peer.id !== (localPeer == null ? void 0 : localPeer.id) && /* @__PURE__ */
|
4373
|
+
), isInsetEnabled && pageList.length > 0 && pageList[0][0].peer.id !== (localPeer == null ? void 0 : localPeer.id) && /* @__PURE__ */ React49.createElement(InsetTile, null));
|
3685
4374
|
}
|
3686
4375
|
|
3687
4376
|
// src/Prebuilt/components/VideoLayouts/RoleProminence.tsx
|
3688
|
-
import
|
3689
|
-
import { selectLocalPeer as selectLocalPeer3, useHMSStore as
|
4377
|
+
import React52, { useEffect as useEffect15, useState as useState27 } from "react";
|
4378
|
+
import { selectLocalPeer as selectLocalPeer3, useHMSStore as useHMSStore24 } from "@100mslive/react-sdk";
|
3690
4379
|
|
3691
4380
|
// src/Prebuilt/components/SecondaryTiles.tsx
|
3692
|
-
import
|
3693
|
-
import { useMedia as
|
4381
|
+
import React51, { useEffect as useEffect14, useState as useState26 } from "react";
|
4382
|
+
import { useMedia as useMedia14 } from "react-use";
|
3694
4383
|
|
3695
4384
|
// src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx
|
3696
|
-
import
|
3697
|
-
var Root = ({ children, edgeToEdge }) => /* @__PURE__ */
|
4385
|
+
import React50 from "react";
|
4386
|
+
var Root = ({ children, edgeToEdge }) => /* @__PURE__ */ React50.createElement(
|
3698
4387
|
Flex,
|
3699
4388
|
{
|
3700
4389
|
direction: "column",
|
@@ -3703,7 +4392,7 @@ var Root = ({ children, edgeToEdge }) => /* @__PURE__ */ React45.createElement(
|
|
3703
4392
|
children
|
3704
4393
|
);
|
3705
4394
|
var ProminentSection = ({ children, css = {} }) => {
|
3706
|
-
return /* @__PURE__ */
|
4395
|
+
return /* @__PURE__ */ React50.createElement(Flex, { direction: "column", css: __spreadValues({ flex: "1 1 0", gap: "$2", minHeight: 0 }, css) }, children);
|
3707
4396
|
};
|
3708
4397
|
var SecondarySection = ({
|
3709
4398
|
tiles,
|
@@ -3714,12 +4403,12 @@ var SecondarySection = ({
|
|
3714
4403
|
if (!(tiles == null ? void 0 : tiles.length)) {
|
3715
4404
|
return null;
|
3716
4405
|
}
|
3717
|
-
return /* @__PURE__ */
|
4406
|
+
return /* @__PURE__ */ React50.createElement(
|
3718
4407
|
Box,
|
3719
4408
|
{
|
3720
4409
|
css: {
|
3721
4410
|
display: "grid",
|
3722
|
-
gridTemplateRows:
|
4411
|
+
gridTemplateRows: React50.Children.count(children) > 0 ? "136px auto" : "154px",
|
3723
4412
|
gridTemplateColumns: `repeat(${tiles.length}, minmax(0, 1fr))`,
|
3724
4413
|
margin: "0 auto",
|
3725
4414
|
gap: "$2 $4",
|
@@ -3729,7 +4418,7 @@ var SecondarySection = ({
|
|
3729
4418
|
},
|
3730
4419
|
tiles.map((tile) => {
|
3731
4420
|
var _a, _b, _c, _d;
|
3732
|
-
return /* @__PURE__ */
|
4421
|
+
return /* @__PURE__ */ React50.createElement(
|
3733
4422
|
VideoTile_default,
|
3734
4423
|
__spreadValues({
|
3735
4424
|
key: ((_a = tile.track) == null ? void 0 : _a.id) || ((_b = tile.peer) == null ? void 0 : _b.id),
|
@@ -3746,7 +4435,7 @@ var SecondarySection = ({
|
|
3746
4435
|
}, tileLayoutProps)
|
3747
4436
|
);
|
3748
4437
|
}),
|
3749
|
-
/* @__PURE__ */
|
4438
|
+
/* @__PURE__ */ React50.createElement(Box, { css: { gridColumn: `1/span ${tiles.length}` } }, children)
|
3750
4439
|
);
|
3751
4440
|
};
|
3752
4441
|
var ProminenceLayout = {
|
@@ -3758,17 +4447,17 @@ var ProminenceLayout = {
|
|
3758
4447
|
// src/Prebuilt/components/SecondaryTiles.tsx
|
3759
4448
|
var SecondaryTiles = ({ peers, onPageChange, onPageSize, edgeToEdge }) => {
|
3760
4449
|
var _a;
|
3761
|
-
const isMobile =
|
4450
|
+
const isMobile = useMedia14(config.media.md);
|
3762
4451
|
const maxTileCount = isMobile ? 2 : 4;
|
3763
4452
|
const pagesWithTiles = usePagesWithTiles({ peers, maxTileCount });
|
3764
|
-
const [page, setPage] =
|
4453
|
+
const [page, setPage] = useState26(0);
|
3765
4454
|
const pageSize = ((_a = pagesWithTiles[0]) == null ? void 0 : _a.length) || 0;
|
3766
|
-
|
4455
|
+
useEffect14(() => {
|
3767
4456
|
if (pageSize > 0) {
|
3768
4457
|
onPageSize == null ? void 0 : onPageSize(pageSize);
|
3769
4458
|
}
|
3770
4459
|
}, [pageSize, onPageSize]);
|
3771
|
-
return /* @__PURE__ */
|
4460
|
+
return /* @__PURE__ */ React51.createElement(ProminenceLayout.SecondarySection, { tiles: pagesWithTiles[page], edgeToEdge }, !edgeToEdge && /* @__PURE__ */ React51.createElement(
|
3772
4461
|
Pagination,
|
3773
4462
|
{
|
3774
4463
|
page,
|
@@ -3782,10 +4471,10 @@ var SecondaryTiles = ({ peers, onPageChange, onPageSize, edgeToEdge }) => {
|
|
3782
4471
|
};
|
3783
4472
|
|
3784
4473
|
// src/Prebuilt/components/hooks/useRoleProminencePeers.tsx
|
3785
|
-
import { useMemo as
|
4474
|
+
import { useMemo as useMemo5 } from "react";
|
3786
4475
|
var useRoleProminencePeers = (prominentRoles, peers, isInsetEnabled) => {
|
3787
4476
|
const pinnedTrack = usePinnedTrack();
|
3788
|
-
const [prominentPeers, secondaryPeers] =
|
4477
|
+
const [prominentPeers, secondaryPeers] = useMemo5(() => {
|
3789
4478
|
return peers.reduce(
|
3790
4479
|
(acc, peer) => {
|
3791
4480
|
if (pinnedTrack) {
|
@@ -3826,7 +4515,7 @@ function RoleProminence({
|
|
3826
4515
|
}) {
|
3827
4516
|
var _a;
|
3828
4517
|
const { prominentPeers, secondaryPeers } = useRoleProminencePeers(prominentRoles, peers, isInsetEnabled);
|
3829
|
-
const localPeer =
|
4518
|
+
const localPeer = useHMSStore24(selectLocalPeer3);
|
3830
4519
|
const maxTileCount = 4;
|
3831
4520
|
const pageList = usePagesWithTiles({
|
3832
4521
|
peers: prominentPeers,
|
@@ -3836,14 +4525,14 @@ function RoleProminence({
|
|
3836
4525
|
pageList,
|
3837
4526
|
maxTileCount
|
3838
4527
|
});
|
3839
|
-
const [page, setPage] =
|
4528
|
+
const [page, setPage] = useState27(0);
|
3840
4529
|
const pageSize = ((_a = pagesWithTiles[0]) == null ? void 0 : _a.length) || 0;
|
3841
|
-
|
4530
|
+
useEffect15(() => {
|
3842
4531
|
if (pageSize > 0) {
|
3843
4532
|
onPageSize == null ? void 0 : onPageSize(pageSize);
|
3844
4533
|
}
|
3845
4534
|
}, [pageSize, onPageSize]);
|
3846
|
-
return /* @__PURE__ */
|
4535
|
+
return /* @__PURE__ */ React52.createElement(ProminenceLayout.Root, null, /* @__PURE__ */ React52.createElement(ProminenceLayout.ProminentSection, null, /* @__PURE__ */ React52.createElement(Grid, { ref, tiles: pagesWithTiles[page] })), !edgeToEdge && /* @__PURE__ */ React52.createElement(
|
3847
4536
|
Pagination,
|
3848
4537
|
{
|
3849
4538
|
page,
|
@@ -3853,34 +4542,34 @@ function RoleProminence({
|
|
3853
4542
|
},
|
3854
4543
|
numPages: pagesWithTiles.length
|
3855
4544
|
}
|
3856
|
-
), /* @__PURE__ */
|
4545
|
+
), /* @__PURE__ */ React52.createElement(SecondaryTiles, { peers: secondaryPeers, isInsetEnabled, edgeToEdge }), isInsetEnabled && localPeer && !prominentPeers.includes(localPeer) && /* @__PURE__ */ React52.createElement(InsetTile, null));
|
3857
4546
|
}
|
3858
4547
|
|
3859
4548
|
// src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx
|
3860
|
-
import
|
3861
|
-
import { useMedia as
|
3862
|
-
import { selectPeersScreenSharing, useHMSStore as
|
4549
|
+
import React55, { useEffect as useEffect16, useMemo as useMemo6, useState as useState29 } from "react";
|
4550
|
+
import { useMedia as useMedia15 } from "react-use";
|
4551
|
+
import { selectPeersScreenSharing, useHMSStore as useHMSStore26 } from "@100mslive/react-sdk";
|
3863
4552
|
|
3864
4553
|
// src/Prebuilt/components/ScreenshareTile.jsx
|
3865
|
-
import
|
4554
|
+
import React54, { useRef as useRef9, useState as useState28 } from "react";
|
3866
4555
|
import { useFullscreen as useFullscreen2 } from "react-use";
|
3867
4556
|
import screenfull2 from "screenfull";
|
3868
4557
|
import {
|
3869
|
-
selectLocalPeerID as
|
3870
|
-
selectPeerByID as
|
4558
|
+
selectLocalPeerID as selectLocalPeerID7,
|
4559
|
+
selectPeerByID as selectPeerByID3,
|
3871
4560
|
selectScreenShareAudioByPeerID,
|
3872
4561
|
selectScreenShareByPeerID,
|
3873
|
-
useHMSStore as
|
4562
|
+
useHMSStore as useHMSStore25
|
3874
4563
|
} from "@100mslive/react-sdk";
|
3875
|
-
import { ExpandIcon as ExpandIcon3, ShrinkIcon } from "@100mslive/react-icons";
|
4564
|
+
import { ExpandIcon as ExpandIcon3, ShrinkIcon as ShrinkIcon2 } from "@100mslive/react-icons";
|
3876
4565
|
|
3877
4566
|
// src/Prebuilt/components/ScreenshareDisplay.jsx
|
3878
|
-
import
|
3879
|
-
import { useHMSActions as
|
3880
|
-
import { CrossIcon as
|
4567
|
+
import React53 from "react";
|
4568
|
+
import { useHMSActions as useHMSActions17 } from "@100mslive/react-sdk";
|
4569
|
+
import { CrossIcon as CrossIcon7, ShareScreenIcon as ShareScreenIcon3 } from "@100mslive/react-icons";
|
3881
4570
|
var ScreenshareDisplay = () => {
|
3882
|
-
const hmsActions =
|
3883
|
-
return /* @__PURE__ */
|
4571
|
+
const hmsActions = useHMSActions17();
|
4572
|
+
return /* @__PURE__ */ React53.createElement(
|
3884
4573
|
Flex,
|
3885
4574
|
{
|
3886
4575
|
direction: "column",
|
@@ -3892,9 +4581,9 @@ var ScreenshareDisplay = () => {
|
|
3892
4581
|
color: "$on_surface_high"
|
3893
4582
|
}
|
3894
4583
|
},
|
3895
|
-
/* @__PURE__ */
|
3896
|
-
/* @__PURE__ */
|
3897
|
-
/* @__PURE__ */
|
4584
|
+
/* @__PURE__ */ React53.createElement(ShareScreenIcon3, { width: 48, height: 48 }),
|
4585
|
+
/* @__PURE__ */ React53.createElement(Text, { variant: "h5", css: { m: "$8 0" } }, "You are sharing your screen"),
|
4586
|
+
/* @__PURE__ */ React53.createElement(
|
3898
4587
|
Button,
|
3899
4588
|
{
|
3900
4589
|
variant: "danger",
|
@@ -3904,7 +4593,7 @@ var ScreenshareDisplay = () => {
|
|
3904
4593
|
}),
|
3905
4594
|
"data-testid": "stop_screen_share_btn"
|
3906
4595
|
},
|
3907
|
-
/* @__PURE__ */
|
4596
|
+
/* @__PURE__ */ React53.createElement(CrossIcon7, { width: 18, height: 18 }),
|
3908
4597
|
"\xA0 Stop screen share"
|
3909
4598
|
)
|
3910
4599
|
);
|
@@ -3919,22 +4608,22 @@ var labelStyles = {
|
|
3919
4608
|
transform: "none",
|
3920
4609
|
flexShrink: 0
|
3921
4610
|
};
|
3922
|
-
var
|
3923
|
-
const isLocal =
|
3924
|
-
const track =
|
3925
|
-
const peer =
|
4611
|
+
var Tile2 = ({ peerId, width = "100%", height = "100%" }) => {
|
4612
|
+
const isLocal = useHMSStore25(selectLocalPeerID7) === peerId;
|
4613
|
+
const track = useHMSStore25(selectScreenShareByPeerID(peerId));
|
4614
|
+
const peer = useHMSStore25(selectPeerByID3(peerId));
|
3926
4615
|
const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);
|
3927
|
-
const [isMouseHovered, setIsMouseHovered] =
|
4616
|
+
const [isMouseHovered, setIsMouseHovered] = useState28(false);
|
3928
4617
|
const showStatsOnTiles = useUISettings(UI_SETTINGS.showStatsOnTiles);
|
3929
|
-
const fullscreenRef =
|
3930
|
-
const [fullscreen, setFullscreen] =
|
4618
|
+
const fullscreenRef = useRef9(null);
|
4619
|
+
const [fullscreen, setFullscreen] = useState28(false);
|
3931
4620
|
const isFullscreen = useFullscreen2(fullscreenRef, fullscreen, {
|
3932
4621
|
onClose: () => setFullscreen(false)
|
3933
4622
|
});
|
3934
4623
|
const isFullScreenSupported = screenfull2.isEnabled;
|
3935
|
-
const audioTrack =
|
4624
|
+
const audioTrack = useHMSStore25(selectScreenShareAudioByPeerID(peer == null ? void 0 : peer.id));
|
3936
4625
|
if (isLocal && !["browser", "window", "application"].includes(track == null ? void 0 : track.displaySurface)) {
|
3937
|
-
return /* @__PURE__ */
|
4626
|
+
return /* @__PURE__ */ React54.createElement(ScreenshareDisplay, null);
|
3938
4627
|
}
|
3939
4628
|
if (!peer) {
|
3940
4629
|
return null;
|
@@ -3944,7 +4633,7 @@ var Tile = ({ peerId, width = "100%", height = "100%" }) => {
|
|
3944
4633
|
isLocal: false,
|
3945
4634
|
track
|
3946
4635
|
});
|
3947
|
-
return /* @__PURE__ */
|
4636
|
+
return /* @__PURE__ */ React54.createElement(StyledVideoTile.Root, { css: { width, height, p: 0, minHeight: 0 }, "data-testid": "screenshare_tile" }, /* @__PURE__ */ React54.createElement(
|
3948
4637
|
StyledVideoTile.Container,
|
3949
4638
|
{
|
3950
4639
|
transparentBg: true,
|
@@ -3955,9 +4644,9 @@ var Tile = ({ peerId, width = "100%", height = "100%" }) => {
|
|
3955
4644
|
setIsMouseHovered(false);
|
3956
4645
|
}
|
3957
4646
|
},
|
3958
|
-
showStatsOnTiles ? /* @__PURE__ */
|
3959
|
-
isFullScreenSupported && isMouseHovered ? /* @__PURE__ */
|
3960
|
-
track ? /* @__PURE__ */
|
4647
|
+
showStatsOnTiles ? /* @__PURE__ */ React54.createElement(VideoTileStats, { audioTrackID: audioTrack == null ? void 0 : audioTrack.id, videoTrackID: track == null ? void 0 : track.id, peerID: peerId, isLocal }) : null,
|
4648
|
+
isFullScreenSupported && isMouseHovered ? /* @__PURE__ */ React54.createElement(StyledVideoTile.FullScreenButton, { onClick: () => setFullscreen(!fullscreen) }, isFullscreen ? /* @__PURE__ */ React54.createElement(ShrinkIcon2, null) : /* @__PURE__ */ React54.createElement(ExpandIcon3, null)) : null,
|
4649
|
+
track ? /* @__PURE__ */ React54.createElement(
|
3961
4650
|
Video,
|
3962
4651
|
{
|
3963
4652
|
screenShare: true,
|
@@ -3967,8 +4656,8 @@ var Tile = ({ peerId, width = "100%", height = "100%" }) => {
|
|
3967
4656
|
css: { minHeight: 0 }
|
3968
4657
|
}
|
3969
4658
|
) : null,
|
3970
|
-
/* @__PURE__ */
|
3971
|
-
isMouseHovered && !peer.isLocal ? /* @__PURE__ */
|
4659
|
+
/* @__PURE__ */ React54.createElement(StyledVideoTile.Info, { css: labelStyles }, label),
|
4660
|
+
isMouseHovered && !peer.isLocal ? /* @__PURE__ */ React54.createElement(
|
3972
4661
|
TileMenu_default,
|
3973
4662
|
{
|
3974
4663
|
isScreenshare: true,
|
@@ -3980,28 +4669,28 @@ var Tile = ({ peerId, width = "100%", height = "100%" }) => {
|
|
3980
4669
|
) : null
|
3981
4670
|
));
|
3982
4671
|
};
|
3983
|
-
var ScreenshareTile =
|
4672
|
+
var ScreenshareTile = React54.memo(Tile2);
|
3984
4673
|
var ScreenshareTile_default = ScreenshareTile;
|
3985
4674
|
|
3986
4675
|
// src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx
|
3987
4676
|
var ScreenshareLayout = ({ peers, onPageChange, onPageSize, edgeToEdge }) => {
|
3988
4677
|
var _a;
|
3989
|
-
const peersSharing =
|
4678
|
+
const peersSharing = useHMSStore26(selectPeersScreenSharing);
|
3990
4679
|
const [, setActiveScreenSharePeer] = useSetAppDataByKey(APP_DATA.activeScreensharePeerId);
|
3991
|
-
const [page, setPage] =
|
4680
|
+
const [page, setPage] = useState29(0);
|
3992
4681
|
const activeSharePeer = peersSharing[page];
|
3993
|
-
const isMobile =
|
3994
|
-
const secondaryPeers =
|
4682
|
+
const isMobile = useMedia15(config.media.md);
|
4683
|
+
const secondaryPeers = useMemo6(
|
3995
4684
|
() => isMobile ? activeSharePeer ? [activeSharePeer, ...peers.filter((p) => p.id !== (activeSharePeer == null ? void 0 : activeSharePeer.id))] : peers : peers.filter((p) => p.id !== (activeSharePeer == null ? void 0 : activeSharePeer.id)),
|
3996
4685
|
[activeSharePeer, peers, isMobile]
|
3997
4686
|
);
|
3998
|
-
|
4687
|
+
useEffect16(() => {
|
3999
4688
|
setActiveScreenSharePeer(isMobile ? "" : activeSharePeer == null ? void 0 : activeSharePeer.id);
|
4000
4689
|
return () => {
|
4001
4690
|
setActiveScreenSharePeer("");
|
4002
4691
|
};
|
4003
4692
|
}, [activeSharePeer == null ? void 0 : activeSharePeer.id, isMobile, setActiveScreenSharePeer]);
|
4004
|
-
return /* @__PURE__ */
|
4693
|
+
return /* @__PURE__ */ React55.createElement(ProminenceLayout.Root, { edgeToEdge }, /* @__PURE__ */ React55.createElement(ProminenceLayout.ProminentSection, null, /* @__PURE__ */ React55.createElement(ScreenshareTile_default, { peerId: (_a = peersSharing[page]) == null ? void 0 : _a.id }), !edgeToEdge && /* @__PURE__ */ React55.createElement(Pagination, { page, onPageChange: setPage, numPages: peersSharing.length })), /* @__PURE__ */ React55.createElement(
|
4005
4694
|
SecondaryTiles,
|
4006
4695
|
{
|
4007
4696
|
peers: secondaryPeers,
|
@@ -4106,23 +4795,23 @@ var GridLayout = ({
|
|
4106
4795
|
edge_to_edge = false,
|
4107
4796
|
hide_metadata_on_tile = false
|
4108
4797
|
}) => {
|
4109
|
-
const peerSharing =
|
4798
|
+
const peerSharing = useHMSStore27(selectPeerScreenSharing);
|
4110
4799
|
const pinnedTrack = usePinnedTrack();
|
4111
|
-
const peers =
|
4800
|
+
const peers = useHMSStore27(selectPeers2);
|
4112
4801
|
const isRoleProminence = prominentRoles.length && peers.some(
|
4113
4802
|
(peer) => peer.roleName && prominentRoles.includes(peer.roleName) && (peer.videoTrack || peer.audioTrack)
|
4114
4803
|
) || pinnedTrack;
|
4115
|
-
const updatedPeers =
|
4804
|
+
const updatedPeers = useMemo7(() => {
|
4116
4805
|
if (isInsetEnabled && !isRoleProminence && !peerSharing) {
|
4117
4806
|
return peers.filter((peer) => !peer.isLocal);
|
4118
4807
|
}
|
4119
4808
|
return peers;
|
4120
4809
|
}, [isInsetEnabled, isRoleProminence, peerSharing, peers]);
|
4121
4810
|
const vanillaStore = useHMSVanillaStore4();
|
4122
|
-
const [sortedPeers, setSortedPeers] =
|
4123
|
-
const peersSorter =
|
4124
|
-
const [pageSize, setPageSize] =
|
4125
|
-
const [mainPage, setMainPage] =
|
4811
|
+
const [sortedPeers, setSortedPeers] = useState30(updatedPeers);
|
4812
|
+
const peersSorter = useMemo7(() => new PeersSorter_default(vanillaStore), [vanillaStore]);
|
4813
|
+
const [pageSize, setPageSize] = useState30(0);
|
4814
|
+
const [mainPage, setMainPage] = useState30(0);
|
4126
4815
|
const tileLayout = {
|
4127
4816
|
enableSpotlightingPeer: enable_spotlighting_peer,
|
4128
4817
|
hideParticipantNameOnTile: hide_participant_name_on_tile,
|
@@ -4131,7 +4820,7 @@ var GridLayout = ({
|
|
4131
4820
|
hideMetadataOnTile: hide_metadata_on_tile,
|
4132
4821
|
objectFit: video_object_fit
|
4133
4822
|
};
|
4134
|
-
|
4823
|
+
useEffect17(() => {
|
4135
4824
|
if (mainPage !== 0) {
|
4136
4825
|
return;
|
4137
4826
|
}
|
@@ -4142,7 +4831,7 @@ var GridLayout = ({
|
|
4142
4831
|
peersSorter.onUpdate(setSortedPeers);
|
4143
4832
|
}, [mainPage, peersSorter, updatedPeers, pageSize]);
|
4144
4833
|
if (peerSharing) {
|
4145
|
-
return /* @__PURE__ */
|
4834
|
+
return /* @__PURE__ */ React56.createElement(VideoTileContext.Provider, { value: tileLayout }, /* @__PURE__ */ React56.createElement(
|
4146
4835
|
ScreenshareLayout,
|
4147
4836
|
{
|
4148
4837
|
peers: sortedPeers,
|
@@ -4152,7 +4841,7 @@ var GridLayout = ({
|
|
4152
4841
|
}
|
4153
4842
|
));
|
4154
4843
|
} else if (isRoleProminence) {
|
4155
|
-
return /* @__PURE__ */
|
4844
|
+
return /* @__PURE__ */ React56.createElement(VideoTileContext.Provider, { value: tileLayout }, /* @__PURE__ */ React56.createElement(
|
4156
4845
|
RoleProminence,
|
4157
4846
|
{
|
4158
4847
|
peers: sortedPeers,
|
@@ -4164,7 +4853,7 @@ var GridLayout = ({
|
|
4164
4853
|
}
|
4165
4854
|
));
|
4166
4855
|
}
|
4167
|
-
return /* @__PURE__ */
|
4856
|
+
return /* @__PURE__ */ React56.createElement(VideoTileContext.Provider, { value: tileLayout }, /* @__PURE__ */ React56.createElement(
|
4168
4857
|
EqualProminence,
|
4169
4858
|
{
|
4170
4859
|
peers: sortedPeers,
|
@@ -4177,46 +4866,46 @@ var GridLayout = ({
|
|
4177
4866
|
};
|
4178
4867
|
|
4179
4868
|
// src/Prebuilt/layouts/EmbedView.jsx
|
4180
|
-
import
|
4869
|
+
import React57, { useCallback as useCallback10, useEffect as useEffect18, useMemo as useMemo8, useRef as useRef10, useState as useState31 } from "react";
|
4181
4870
|
import {
|
4182
4871
|
selectPeers as selectPeers3,
|
4183
4872
|
selectPeerScreenSharing as selectPeerScreenSharing2,
|
4184
4873
|
throwErrorHandler,
|
4185
|
-
useHMSStore as
|
4874
|
+
useHMSStore as useHMSStore28,
|
4186
4875
|
useScreenShare as useScreenShare3
|
4187
4876
|
} from "@100mslive/react-sdk";
|
4188
4877
|
var EmbedView = () => {
|
4189
|
-
return /* @__PURE__ */
|
4878
|
+
return /* @__PURE__ */ React57.createElement(EmbebScreenShareView, null, /* @__PURE__ */ React57.createElement(EmbedComponent, null));
|
4190
4879
|
};
|
4191
4880
|
var EmbebScreenShareView = ({ children }) => {
|
4192
|
-
const peers =
|
4193
|
-
const peerPresenting =
|
4881
|
+
const peers = useHMSStore28(selectPeers3);
|
4882
|
+
const peerPresenting = useHMSStore28(selectPeerScreenSharing2);
|
4194
4883
|
const [, setActiveScreenSharePeer] = useSetAppDataByKey(APP_DATA.activeScreensharePeerId);
|
4195
|
-
const smallTilePeers =
|
4884
|
+
const smallTilePeers = useMemo8(() => {
|
4196
4885
|
const smallTilePeers2 = peers.filter((peer) => peer.id !== (peerPresenting == null ? void 0 : peerPresenting.id));
|
4197
4886
|
return smallTilePeers2;
|
4198
4887
|
}, [peers, peerPresenting]);
|
4199
|
-
|
4888
|
+
useEffect18(() => {
|
4200
4889
|
setActiveScreenSharePeer(peerPresenting == null ? void 0 : peerPresenting.id);
|
4201
4890
|
return () => {
|
4202
4891
|
setActiveScreenSharePeer("");
|
4203
4892
|
};
|
4204
4893
|
}, [peerPresenting == null ? void 0 : peerPresenting.id, setActiveScreenSharePeer]);
|
4205
|
-
return /* @__PURE__ */
|
4894
|
+
return /* @__PURE__ */ React57.createElement(ProminenceLayout.Root, null, /* @__PURE__ */ React57.createElement(ProminenceLayout.ProminentSection, null, children), /* @__PURE__ */ React57.createElement(SecondaryTiles, { peers: smallTilePeers }));
|
4206
4895
|
};
|
4207
4896
|
var EmbedComponent = () => {
|
4208
4897
|
const { amIScreenSharing, toggleScreenShare } = useScreenShare3(throwErrorHandler);
|
4209
4898
|
const [embedConfig, setEmbedConfig] = useSetAppDataByKey(APP_DATA.embedConfig);
|
4210
|
-
const [wasScreenShared, setWasScreenShared] =
|
4211
|
-
const screenShareAttemptInProgress =
|
4899
|
+
const [wasScreenShared, setWasScreenShared] = useState31(false);
|
4900
|
+
const screenShareAttemptInProgress = useRef10(false);
|
4212
4901
|
const src = embedConfig.url;
|
4213
|
-
const iframeRef =
|
4214
|
-
const resetEmbedConfig =
|
4902
|
+
const iframeRef = useRef10();
|
4903
|
+
const resetEmbedConfig = useCallback10(() => {
|
4215
4904
|
if (src) {
|
4216
4905
|
setEmbedConfig({ url: "" });
|
4217
4906
|
}
|
4218
4907
|
}, [src, setEmbedConfig]);
|
4219
|
-
|
4908
|
+
useEffect18(() => {
|
4220
4909
|
if (embedConfig.shareScreen && !amIScreenSharing && !wasScreenShared && !screenShareAttemptInProgress.current) {
|
4221
4910
|
screenShareAttemptInProgress.current = true;
|
4222
4911
|
toggleScreenShare({
|
@@ -4229,7 +4918,7 @@ var EmbedComponent = () => {
|
|
4229
4918
|
});
|
4230
4919
|
}
|
4231
4920
|
}, []);
|
4232
|
-
|
4921
|
+
useEffect18(() => {
|
4233
4922
|
if (wasScreenShared && !amIScreenSharing) {
|
4234
4923
|
resetEmbedConfig();
|
4235
4924
|
}
|
@@ -4240,7 +4929,7 @@ var EmbedComponent = () => {
|
|
4240
4929
|
}
|
4241
4930
|
};
|
4242
4931
|
}, [wasScreenShared, amIScreenSharing, resetEmbedConfig, toggleScreenShare]);
|
4243
|
-
return /* @__PURE__ */
|
4932
|
+
return /* @__PURE__ */ React57.createElement(Box, { ref: iframeRef, css: { size: "100%" } }, /* @__PURE__ */ React57.createElement(
|
4244
4933
|
"iframe",
|
4245
4934
|
{
|
4246
4935
|
src,
|
@@ -4253,28 +4942,28 @@ var EmbedComponent = () => {
|
|
4253
4942
|
};
|
4254
4943
|
|
4255
4944
|
// src/Prebuilt/layouts/PDFView.jsx
|
4256
|
-
import
|
4945
|
+
import React58, { useCallback as useCallback11, useEffect as useEffect19, useRef as useRef11, useState as useState32 } from "react";
|
4257
4946
|
import { throwErrorHandler as throwErrorHandler2, useScreenShare as useScreenShare4 } from "@100mslive/react-sdk";
|
4258
4947
|
var PDFView = () => {
|
4259
|
-
return /* @__PURE__ */
|
4948
|
+
return /* @__PURE__ */ React58.createElement(EmbebScreenShareView, null, /* @__PURE__ */ React58.createElement(PDFEmbedComponent, null));
|
4260
4949
|
};
|
4261
4950
|
var PDFEmbedComponent = () => {
|
4262
|
-
const ref =
|
4951
|
+
const ref = useRef11();
|
4263
4952
|
const themeType = useTheme().themeType;
|
4264
|
-
const [isPDFLoaded, setIsPDFLoaded] =
|
4953
|
+
const [isPDFLoaded, setIsPDFLoaded] = useState32(false);
|
4265
4954
|
let pdfJSURL = define_process_env_default.REACT_APP_PDFJS_IFRAME_URL;
|
4266
4955
|
const { amIScreenSharing, toggleScreenShare } = useScreenShare4(throwErrorHandler2);
|
4267
4956
|
const [pdfConfig, setPDFConfig] = useSetAppDataByKey(APP_DATA.pdfConfig);
|
4268
4957
|
if (pdfConfig.url && !pdfConfig.file) {
|
4269
4958
|
pdfJSURL = pdfJSURL + "?file=" + encodeURIComponent(pdfConfig.url);
|
4270
4959
|
}
|
4271
|
-
const [wasScreenShared, setWasScreenShared] =
|
4272
|
-
const screenShareAttemptInProgress =
|
4273
|
-
const iframeRef =
|
4274
|
-
const resetEmbedConfig =
|
4960
|
+
const [wasScreenShared, setWasScreenShared] = useState32(false);
|
4961
|
+
const screenShareAttemptInProgress = useRef11(false);
|
4962
|
+
const iframeRef = useRef11();
|
4963
|
+
const resetEmbedConfig = useCallback11(() => {
|
4275
4964
|
setPDFConfig({ state: false });
|
4276
4965
|
}, [setPDFConfig]);
|
4277
|
-
|
4966
|
+
useEffect19(() => {
|
4278
4967
|
if (isPDFLoaded && ref.current) {
|
4279
4968
|
ref.current.contentWindow.postMessage(
|
4280
4969
|
{
|
@@ -4284,7 +4973,7 @@ var PDFEmbedComponent = () => {
|
|
4284
4973
|
);
|
4285
4974
|
}
|
4286
4975
|
}, [isPDFLoaded, themeType]);
|
4287
|
-
|
4976
|
+
useEffect19(() => {
|
4288
4977
|
if (!amIScreenSharing && !wasScreenShared && !screenShareAttemptInProgress.current) {
|
4289
4978
|
screenShareAttemptInProgress.current = true;
|
4290
4979
|
toggleScreenShare({
|
@@ -4298,7 +4987,7 @@ var PDFEmbedComponent = () => {
|
|
4298
4987
|
});
|
4299
4988
|
}
|
4300
4989
|
}, []);
|
4301
|
-
|
4990
|
+
useEffect19(() => {
|
4302
4991
|
if (wasScreenShared && !amIScreenSharing) {
|
4303
4992
|
resetEmbedConfig();
|
4304
4993
|
}
|
@@ -4309,7 +4998,7 @@ var PDFEmbedComponent = () => {
|
|
4309
4998
|
}
|
4310
4999
|
};
|
4311
5000
|
}, [wasScreenShared, amIScreenSharing, resetEmbedConfig, toggleScreenShare]);
|
4312
|
-
return /* @__PURE__ */
|
5001
|
+
return /* @__PURE__ */ React58.createElement(Box, { ref: iframeRef, css: { size: "100%" } }, /* @__PURE__ */ React58.createElement(
|
4313
5002
|
"iframe",
|
4314
5003
|
{
|
4315
5004
|
src: pdfJSURL,
|
@@ -4342,72 +5031,72 @@ var PDFEmbedComponent = () => {
|
|
4342
5031
|
};
|
4343
5032
|
|
4344
5033
|
// src/Prebuilt/layouts/SidePane.tsx
|
4345
|
-
import
|
4346
|
-
import { useMedia as
|
4347
|
-
import { selectAppData as selectAppData3, selectVideoTrackByPeerID, useHMSStore as
|
5034
|
+
import React65 from "react";
|
5035
|
+
import { useMedia as useMedia20 } from "react-use";
|
5036
|
+
import { selectAppData as selectAppData3, selectVideoTrackByPeerID as selectVideoTrackByPeerID3, useHMSStore as useHMSStore37 } from "@100mslive/react-sdk";
|
4348
5037
|
|
4349
5038
|
// src/Prebuilt/components/SidePaneTabs.tsx
|
4350
|
-
import
|
4351
|
-
import { useMedia as
|
4352
|
-
import { selectPeerCount as selectPeerCount3, useHMSStore as
|
4353
|
-
import { CrossIcon as
|
5039
|
+
import React62, { useEffect as useEffect24, useState as useState36 } from "react";
|
5040
|
+
import { useMedia as useMedia19 } from "react-use";
|
5041
|
+
import { selectPeerCount as selectPeerCount3, useHMSStore as useHMSStore34 } from "@100mslive/react-sdk";
|
5042
|
+
import { CrossIcon as CrossIcon9 } from "@100mslive/react-icons";
|
4354
5043
|
|
4355
5044
|
// src/Prebuilt/components/Chat/Chat.jsx
|
4356
|
-
import
|
4357
|
-
import { useMedia as
|
5045
|
+
import React61, { useCallback as useCallback16, useEffect as useEffect23, useRef as useRef15, useState as useState35 } from "react";
|
5046
|
+
import { useMedia as useMedia18 } from "react-use";
|
4358
5047
|
import {
|
4359
5048
|
HMSNotificationTypes,
|
4360
5049
|
selectHMSMessagesCount,
|
4361
|
-
selectPeerNameByID as
|
4362
|
-
selectPermissions as
|
4363
|
-
selectSessionStore,
|
4364
|
-
useHMSActions as
|
5050
|
+
selectPeerNameByID as selectPeerNameByID4,
|
5051
|
+
selectPermissions as selectPermissions12,
|
5052
|
+
selectSessionStore as selectSessionStore3,
|
5053
|
+
useHMSActions as useHMSActions22,
|
4365
5054
|
useHMSNotifications,
|
4366
|
-
useHMSStore as
|
5055
|
+
useHMSStore as useHMSStore33
|
4367
5056
|
} from "@100mslive/react-sdk";
|
4368
|
-
import { ChevronDownIcon as ChevronDownIcon2, CrossIcon as
|
5057
|
+
import { ChevronDownIcon as ChevronDownIcon2, CrossIcon as CrossIcon8, PinIcon as PinIcon3 } from "@100mslive/react-icons";
|
4369
5058
|
|
4370
5059
|
// src/Prebuilt/components/Chat/ChatBody.jsx
|
4371
|
-
import
|
5060
|
+
import React59, { Fragment as Fragment10, useCallback as useCallback13, useEffect as useEffect20, useLayoutEffect, useMemo as useMemo9, useRef as useRef12, useState as useState33 } from "react";
|
4372
5061
|
import { useInView } from "react-intersection-observer";
|
4373
|
-
import { useMedia as
|
5062
|
+
import { useMedia as useMedia16 } from "react-use";
|
4374
5063
|
import AutoSizer from "react-virtualized-auto-sizer";
|
4375
5064
|
import { VariableSizeList } from "react-window";
|
4376
5065
|
import {
|
4377
5066
|
selectHMSMessages,
|
4378
|
-
selectLocalPeerID as
|
5067
|
+
selectLocalPeerID as selectLocalPeerID8,
|
4379
5068
|
selectLocalPeerRoleName as selectLocalPeerRoleName2,
|
4380
5069
|
selectMessagesByPeerID,
|
4381
5070
|
selectMessagesByRole,
|
4382
|
-
selectPeerNameByID as
|
4383
|
-
selectPermissions as
|
4384
|
-
useHMSActions as
|
4385
|
-
useHMSStore as
|
5071
|
+
selectPeerNameByID as selectPeerNameByID3,
|
5072
|
+
selectPermissions as selectPermissions11,
|
5073
|
+
useHMSActions as useHMSActions19,
|
5074
|
+
useHMSStore as useHMSStore31
|
4386
5075
|
} from "@100mslive/react-sdk";
|
4387
|
-
import { PinIcon, VerticalMenuIcon as
|
5076
|
+
import { PinIcon as PinIcon2, VerticalMenuIcon as VerticalMenuIcon6 } from "@100mslive/react-icons";
|
4388
5077
|
|
4389
5078
|
// src/Prebuilt/images/empty-chat.svg
|
4390
5079
|
var empty_chat_default = 'data:image/svg+xml,<svg width="184" height="133" viewBox="0 0 184 133" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path fill-rule="evenodd" clip-rule="evenodd" d="M144.885 91.3998C145.318 91.023 145.861 90.7947 146.433 90.7483L146.446 90.7473L169.355 89.1614C169.702 89.1376 170.049 89.2101 170.358 89.3712C170.662 89.5305 170.918 89.7702 171.096 90.0642C171.098 90.0672 171.1 90.0703 171.102 90.0734L171.104 90.0766C171.281 90.3744 171.373 90.7154 171.369 91.062C171.365 91.4097 171.265 91.7496 171.08 92.044L158.85 111.504C158.539 111.986 158.081 112.356 157.544 112.56C157.007 112.764 156.419 112.791 155.866 112.636C155.313 112.482 154.823 112.155 154.469 111.703C154.115 111.25 153.915 110.697 153.898 110.123C153.898 110.109 153.898 110.094 153.898 110.08L153.996 100.307L145.347 95.7858C145.334 95.779 145.321 95.7721 145.308 95.7649C144.811 95.4785 144.417 95.0404 144.186 94.5146C143.955 93.9888 143.898 93.4029 144.024 92.8425C144.15 92.2821 144.451 91.7765 144.885 91.3998ZM167.441 91.0088L146.603 92.8952C146.49 92.9053 146.383 92.9508 146.298 93.0251C146.211 93.1005 146.151 93.2016 146.125 93.3137C146.1 93.4257 146.112 93.5429 146.158 93.6481C146.202 93.7484 146.276 93.8327 146.369 93.89L155.26 98.296L167.441 91.0088ZM156.32 100.171L168.547 92.8564L157.039 110.339C156.976 110.434 156.886 110.506 156.78 110.547C156.673 110.587 156.555 110.593 156.444 110.562C156.334 110.531 156.236 110.466 156.165 110.375C156.097 110.289 156.058 110.184 156.052 110.075L156.32 100.171Z" fill="%23444954"/>%0A<path d="M83.3248 35.4156C71.7182 47.1017 51.2098 75.5175 62.0292 95.6918C75.5536 120.91 140.453 79.2983 115.364 67.6657C90.2756 56.0331 65.8818 122.018 101.568 120.391C116.398 118.62 131.221 114.699 145.703 105.512" stroke="%23293042" stroke-width="2.25" stroke-dasharray="6 6"/>%0A<rect x="0.00256348" y="0.5" width="173.524" height="58.3398" rx="29.1699" fill="%23272A31"/>%0A<g opacity="0.4">%0A<rect x="24.7526" y="20.9312" width="111" height="4.5" rx="2.25" fill="%23444954"/>%0A</g>%0A<g opacity="0.4">%0A<rect x="38.2526" y="34.4312" width="110.25" height="4.5" rx="2.25" fill="%23444954"/>%0A</g>%0A<path d="M40.3918 71.5547L28.4246 55.0999L52.3589 55.0999L40.3918 71.5547Z" fill="%23272A31"/>%0A</svg>%0A';
|
4391
5080
|
|
4392
5081
|
// src/Prebuilt/components/hooks/useSetPinnedMessage.js
|
4393
|
-
import { useCallback as
|
5082
|
+
import { useCallback as useCallback12 } from "react";
|
4394
5083
|
import {
|
4395
|
-
selectPeerNameByID,
|
5084
|
+
selectPeerNameByID as selectPeerNameByID2,
|
4396
5085
|
selectSessionMetadata,
|
4397
|
-
useHMSActions as
|
4398
|
-
useHMSStore as
|
5086
|
+
useHMSActions as useHMSActions18,
|
5087
|
+
useHMSStore as useHMSStore29,
|
4399
5088
|
useHMSVanillaStore as useHMSVanillaStore5
|
4400
5089
|
} from "@100mslive/react-sdk";
|
4401
5090
|
var useSetPinnedMessage = () => {
|
4402
|
-
const hmsActions =
|
5091
|
+
const hmsActions = useHMSActions18();
|
4403
5092
|
const vanillaStore = useHMSVanillaStore5();
|
4404
|
-
const pinnedMessage =
|
4405
|
-
const setPinnedMessage =
|
5093
|
+
const pinnedMessage = useHMSStore29(selectSessionMetadata);
|
5094
|
+
const setPinnedMessage = useCallback12(
|
4406
5095
|
/**
|
4407
5096
|
* @param {import("@100mslive/react-sdk").HMSMessage | undefined} message
|
4408
5097
|
*/
|
4409
5098
|
(message) => __async(void 0, null, function* () {
|
4410
|
-
const peerName = vanillaStore.getState(
|
5099
|
+
const peerName = vanillaStore.getState(selectPeerNameByID2(message == null ? void 0 : message.sender)) || (message == null ? void 0 : message.senderName);
|
4411
5100
|
const newPinnedMessage = message ? peerName ? `${peerName}: ${message.message}` : message.message : null;
|
4412
5101
|
if (newPinnedMessage !== pinnedMessage) {
|
4413
5102
|
yield hmsActions.sessionStore.set(SESSION_STORE_KEY.PINNED_MESSAGE, newPinnedMessage).catch((err) => ToastManager.addToast({ title: err.description }));
|
@@ -4423,11 +5112,11 @@ import {
|
|
4423
5112
|
selectMessagesUnreadCountByPeerID,
|
4424
5113
|
selectMessagesUnreadCountByRole,
|
4425
5114
|
selectUnreadHMSMessagesCount as selectUnreadHMSMessagesCount2,
|
4426
|
-
useHMSStore as
|
5115
|
+
useHMSStore as useHMSStore30
|
4427
5116
|
} from "@100mslive/react-sdk";
|
4428
5117
|
var useUnreadCount = ({ role, peerId }) => {
|
4429
5118
|
const unreadCountSelector = role ? selectMessagesUnreadCountByRole(role) : peerId ? selectMessagesUnreadCountByPeerID(peerId) : selectUnreadHMSMessagesCount2;
|
4430
|
-
const unreadCount =
|
5119
|
+
const unreadCount = useHMSStore30(unreadCountSelector);
|
4431
5120
|
return unreadCount;
|
4432
5121
|
};
|
4433
5122
|
|
@@ -4448,7 +5137,7 @@ var formatTime = (date) => {
|
|
4448
5137
|
return `${hours}:${mins} ${suffix}`;
|
4449
5138
|
};
|
4450
5139
|
var MessageTypeContainer = ({ left, right }) => {
|
4451
|
-
return /* @__PURE__ */
|
5140
|
+
return /* @__PURE__ */ React59.createElement(
|
4452
5141
|
Flex,
|
4453
5142
|
{
|
4454
5143
|
align: "center",
|
@@ -4460,16 +5149,16 @@ var MessageTypeContainer = ({ left, right }) => {
|
|
4460
5149
|
r: "$0"
|
4461
5150
|
}
|
4462
5151
|
},
|
4463
|
-
left && /* @__PURE__ */
|
4464
|
-
left && right && /* @__PURE__ */
|
4465
|
-
right && /* @__PURE__ */
|
5152
|
+
left && /* @__PURE__ */ React59.createElement(SenderName, { variant: "tiny", as: "span", css: { color: "$on_surface_medium" } }, left),
|
5153
|
+
left && right && /* @__PURE__ */ React59.createElement(Box, { css: { borderLeft: "1px solid $border_bright", mx: "$4", h: "$8" } }),
|
5154
|
+
right && /* @__PURE__ */ React59.createElement(SenderName, { as: "span", variant: "tiny", css: { textTransform: "uppercase" } }, right)
|
4466
5155
|
);
|
4467
5156
|
};
|
4468
5157
|
var MessageType = ({ roles, hasCurrentUserSent, receiver }) => {
|
4469
|
-
const peerName =
|
4470
|
-
const localPeerRoleName =
|
5158
|
+
const peerName = useHMSStore31(selectPeerNameByID3(receiver));
|
5159
|
+
const localPeerRoleName = useHMSStore31(selectLocalPeerRoleName2);
|
4471
5160
|
if (receiver) {
|
4472
|
-
return /* @__PURE__ */
|
5161
|
+
return /* @__PURE__ */ React59.createElement(
|
4473
5162
|
MessageTypeContainer,
|
4474
5163
|
{
|
4475
5164
|
left: hasCurrentUserSent ? `${peerName ? `TO ${peerName}` : ""}` : "TO YOU",
|
@@ -4478,7 +5167,7 @@ var MessageType = ({ roles, hasCurrentUserSent, receiver }) => {
|
|
4478
5167
|
);
|
4479
5168
|
}
|
4480
5169
|
if (roles && roles.length) {
|
4481
|
-
return /* @__PURE__ */
|
5170
|
+
return /* @__PURE__ */ React59.createElement(MessageTypeContainer, { left: "TO", right: hasCurrentUserSent ? roles.join(",") : localPeerRoleName });
|
4482
5171
|
}
|
4483
5172
|
return null;
|
4484
5173
|
};
|
@@ -4492,10 +5181,10 @@ var Link = styled("a", {
|
|
4492
5181
|
});
|
4493
5182
|
var AnnotisedMessage = ({ message }) => {
|
4494
5183
|
if (!message) {
|
4495
|
-
return /* @__PURE__ */
|
5184
|
+
return /* @__PURE__ */ React59.createElement(Fragment10, null);
|
4496
5185
|
}
|
4497
|
-
return /* @__PURE__ */
|
4498
|
-
(part) => URL_REGEX.test(part) ? /* @__PURE__ */
|
5186
|
+
return /* @__PURE__ */ React59.createElement(Fragment10, null, message.trim().split(/(\s)/).map(
|
5187
|
+
(part) => URL_REGEX.test(part) ? /* @__PURE__ */ React59.createElement(Link, { href: part, key: part, target: "_blank", rel: "noopener noreferrer" }, part) : part
|
4499
5188
|
));
|
4500
5189
|
};
|
4501
5190
|
var getMessageType = ({ roles, receiver }) => {
|
@@ -4505,18 +5194,18 @@ var getMessageType = ({ roles, receiver }) => {
|
|
4505
5194
|
return receiver ? "private" : "";
|
4506
5195
|
};
|
4507
5196
|
var ChatActions = ({ onPin, showPinAction }) => {
|
4508
|
-
const [open, setOpen] =
|
5197
|
+
const [open, setOpen] = useState33(false);
|
4509
5198
|
if (!showPinAction) {
|
4510
5199
|
return null;
|
4511
5200
|
}
|
4512
|
-
return /* @__PURE__ */
|
5201
|
+
return /* @__PURE__ */ React59.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React59.createElement(Dropdown.Trigger, { className: "chat_actions", css: { opacity: open ? 1 : 0, "@md": { opacity: 1 } }, asChild: true }, /* @__PURE__ */ React59.createElement(IconButton, null, /* @__PURE__ */ React59.createElement(Tooltip, { title: "More options" }, /* @__PURE__ */ React59.createElement(VerticalMenuIcon6, null)))), /* @__PURE__ */ React59.createElement(Dropdown.Portal, null, /* @__PURE__ */ React59.createElement(
|
4513
5202
|
Dropdown.Content,
|
4514
5203
|
{
|
4515
5204
|
sideOffset: 5,
|
4516
5205
|
align: "end",
|
4517
5206
|
css: { width: "$48", backgroundColor: "$surface_bright", py: "$0", border: "1px solid $border_bright" }
|
4518
5207
|
},
|
4519
|
-
/* @__PURE__ */
|
5208
|
+
/* @__PURE__ */ React59.createElement(Dropdown.Item, { "data-testid": "pin_message_btn", onClick: onPin }, /* @__PURE__ */ React59.createElement(PinIcon2, null), /* @__PURE__ */ React59.createElement(Text, { variant: "sm", css: { ml: "$4" } }, "Pin Message"))
|
4520
5209
|
)));
|
4521
5210
|
};
|
4522
5211
|
var SenderName = styled(Text, {
|
@@ -4528,38 +5217,38 @@ var SenderName = styled(Text, {
|
|
4528
5217
|
color: "$on_surface_high",
|
4529
5218
|
fontWeight: "$semiBold"
|
4530
5219
|
});
|
4531
|
-
var ChatMessage =
|
5220
|
+
var ChatMessage = React59.memo(
|
4532
5221
|
({ index, style = {}, message, setRowHeight, isLast = false, unreadCount = 0, scrollToBottom, onPin }) => {
|
4533
5222
|
var _a, _b;
|
4534
5223
|
const { ref, inView } = useInView({ threshold: 0.5, triggerOnce: true });
|
4535
|
-
const rowRef =
|
4536
|
-
|
5224
|
+
const rowRef = useRef12(null);
|
5225
|
+
useEffect20(() => {
|
4537
5226
|
if (rowRef.current) {
|
4538
5227
|
setRowHeight(index, rowRef.current.clientHeight);
|
4539
5228
|
}
|
4540
5229
|
}, [index, setRowHeight]);
|
4541
|
-
const isMobile =
|
5230
|
+
const isMobile = useMedia16(config.media.md);
|
4542
5231
|
const { elements } = useRoomLayoutConferencingScreen();
|
4543
5232
|
const isOverlay = ((_a = elements == null ? void 0 : elements.chat) == null ? void 0 : _a.is_overlay) && isMobile;
|
4544
|
-
const hmsActions =
|
4545
|
-
const localPeerId =
|
4546
|
-
const permissions =
|
5233
|
+
const hmsActions = useHMSActions19();
|
5234
|
+
const localPeerId = useHMSStore31(selectLocalPeerID8);
|
5235
|
+
const permissions = useHMSStore31(selectPermissions11);
|
4547
5236
|
const messageType = getMessageType({
|
4548
5237
|
roles: message.recipientRoles,
|
4549
5238
|
receiver: message.recipientPeer
|
4550
5239
|
});
|
4551
5240
|
const showPinAction = permissions.removeOthers && !messageType && ((_b = elements == null ? void 0 : elements.chat) == null ? void 0 : _b.allow_pinning_messages);
|
4552
|
-
|
5241
|
+
useEffect20(() => {
|
4553
5242
|
if (message.id && !message.read && inView) {
|
4554
5243
|
hmsActions.setMessageRead(true, message.id);
|
4555
5244
|
}
|
4556
5245
|
}, [message.read, hmsActions, inView, message.id]);
|
4557
|
-
|
5246
|
+
useEffect20(() => {
|
4558
5247
|
if (isLast && inView && unreadCount >= 1) {
|
4559
5248
|
scrollToBottom(1);
|
4560
5249
|
}
|
4561
5250
|
}, [inView, isLast, scrollToBottom, unreadCount]);
|
4562
|
-
return /* @__PURE__ */
|
5251
|
+
return /* @__PURE__ */ React59.createElement(
|
4563
5252
|
Box,
|
4564
5253
|
{
|
4565
5254
|
ref,
|
@@ -4567,7 +5256,7 @@ var ChatMessage = React54.memo(
|
|
4567
5256
|
css: { mb: "$10", pr: "$10", mt: "$8", "&:hover .chat_actions": { opacity: 1 } },
|
4568
5257
|
style
|
4569
5258
|
},
|
4570
|
-
/* @__PURE__ */
|
5259
|
+
/* @__PURE__ */ React59.createElement(
|
4571
5260
|
Flex,
|
4572
5261
|
{
|
4573
5262
|
ref: rowRef,
|
@@ -4584,7 +5273,7 @@ var ChatMessage = React54.memo(
|
|
4584
5273
|
key: message.time,
|
4585
5274
|
"data-testid": "chat_msg"
|
4586
5275
|
},
|
4587
|
-
/* @__PURE__ */
|
5276
|
+
/* @__PURE__ */ React59.createElement(
|
4588
5277
|
Text,
|
4589
5278
|
{
|
4590
5279
|
css: {
|
@@ -4597,7 +5286,7 @@ var ChatMessage = React54.memo(
|
|
4597
5286
|
},
|
4598
5287
|
as: "div"
|
4599
5288
|
},
|
4600
|
-
/* @__PURE__ */
|
5289
|
+
/* @__PURE__ */ React59.createElement(Flex, { align: "baseline" }, message.senderName === "You" || !message.senderName ? /* @__PURE__ */ React59.createElement(SenderName, { as: "span", variant: "sm", css: { color: isOverlay ? "#FFF" : "$on_surface_high" } }, message.senderName || "Anonymous") : /* @__PURE__ */ React59.createElement(Tooltip, { title: message.senderName, side: "top", align: "start" }, /* @__PURE__ */ React59.createElement(SenderName, { as: "span", variant: "sm", css: { color: isOverlay ? "#FFF" : "$on_surface_high" } }, message.senderName)), !isOverlay ? /* @__PURE__ */ React59.createElement(
|
4601
5290
|
Text,
|
4602
5291
|
{
|
4603
5292
|
as: "span",
|
@@ -4610,7 +5299,7 @@ var ChatMessage = React54.memo(
|
|
4610
5299
|
},
|
4611
5300
|
formatTime(message.time)
|
4612
5301
|
) : null),
|
4613
|
-
/* @__PURE__ */
|
5302
|
+
/* @__PURE__ */ React59.createElement(
|
4614
5303
|
MessageType,
|
4615
5304
|
{
|
4616
5305
|
hasCurrentUserSent: message.sender === localPeerId,
|
@@ -4618,9 +5307,9 @@ var ChatMessage = React54.memo(
|
|
4618
5307
|
roles: message.recipientRoles
|
4619
5308
|
}
|
4620
5309
|
),
|
4621
|
-
!isOverlay ? /* @__PURE__ */
|
5310
|
+
!isOverlay ? /* @__PURE__ */ React59.createElement(ChatActions, { onPin, showPinAction }) : null
|
4622
5311
|
),
|
4623
|
-
/* @__PURE__ */
|
5312
|
+
/* @__PURE__ */ React59.createElement(
|
4624
5313
|
Text,
|
4625
5314
|
{
|
4626
5315
|
variant: "sm",
|
@@ -4634,13 +5323,13 @@ var ChatMessage = React54.memo(
|
|
4634
5323
|
},
|
4635
5324
|
onClick: (e) => e.stopPropagation()
|
4636
5325
|
},
|
4637
|
-
/* @__PURE__ */
|
5326
|
+
/* @__PURE__ */ React59.createElement(AnnotisedMessage, { message: message.message })
|
4638
5327
|
)
|
4639
5328
|
)
|
4640
5329
|
);
|
4641
5330
|
}
|
4642
5331
|
);
|
4643
|
-
var ChatList =
|
5332
|
+
var ChatList = React59.forwardRef(
|
4644
5333
|
({ width, height, setRowHeight, getRowHeight, messages, unreadCount = 0, scrollToBottom }, listRef) => {
|
4645
5334
|
const { setPinnedMessage } = useSetPinnedMessage();
|
4646
5335
|
useLayoutEffect(() => {
|
@@ -4648,7 +5337,7 @@ var ChatList = React54.forwardRef(
|
|
4648
5337
|
scrollToBottom(1);
|
4649
5338
|
}
|
4650
5339
|
}, [listRef]);
|
4651
|
-
return /* @__PURE__ */
|
5340
|
+
return /* @__PURE__ */ React59.createElement(
|
4652
5341
|
VariableSizeList,
|
4653
5342
|
{
|
4654
5343
|
ref: listRef,
|
@@ -4660,7 +5349,7 @@ var ChatList = React54.forwardRef(
|
|
4660
5349
|
overflowX: "hidden"
|
4661
5350
|
}
|
4662
5351
|
},
|
4663
|
-
({ index, style }) => /* @__PURE__ */
|
5352
|
+
({ index, style }) => /* @__PURE__ */ React59.createElement(
|
4664
5353
|
ChatMessage,
|
4665
5354
|
{
|
4666
5355
|
style,
|
@@ -4677,19 +5366,19 @@ var ChatList = React54.forwardRef(
|
|
4677
5366
|
);
|
4678
5367
|
}
|
4679
5368
|
);
|
4680
|
-
var VirtualizedChatMessages =
|
4681
|
-
const rowHeights =
|
5369
|
+
var VirtualizedChatMessages = React59.forwardRef(({ messages, unreadCount = 0, scrollToBottom }, listRef) => {
|
5370
|
+
const rowHeights = useRef12({});
|
4682
5371
|
function getRowHeight(index) {
|
4683
5372
|
return rowHeights.current[index] + 16 || 72;
|
4684
5373
|
}
|
4685
|
-
const setRowHeight =
|
5374
|
+
const setRowHeight = useCallback13(
|
4686
5375
|
(index, size) => {
|
4687
5376
|
listRef.current.resetAfterIndex(0);
|
4688
5377
|
rowHeights.current = __spreadProps(__spreadValues({}, rowHeights.current), { [index]: size });
|
4689
5378
|
},
|
4690
5379
|
[listRef]
|
4691
5380
|
);
|
4692
|
-
return /* @__PURE__ */
|
5381
|
+
return /* @__PURE__ */ React59.createElement(
|
4693
5382
|
Box,
|
4694
5383
|
{
|
4695
5384
|
css: {
|
@@ -4698,14 +5387,14 @@ var VirtualizedChatMessages = React54.forwardRef(({ messages, unreadCount = 0, s
|
|
4698
5387
|
},
|
4699
5388
|
as: "div"
|
4700
5389
|
},
|
4701
|
-
/* @__PURE__ */
|
5390
|
+
/* @__PURE__ */ React59.createElement(
|
4702
5391
|
AutoSizer,
|
4703
5392
|
{
|
4704
5393
|
style: {
|
4705
5394
|
width: "90%"
|
4706
5395
|
}
|
4707
5396
|
},
|
4708
|
-
({ height, width }) => /* @__PURE__ */
|
5397
|
+
({ height, width }) => /* @__PURE__ */ React59.createElement(
|
4709
5398
|
ChatList,
|
4710
5399
|
{
|
4711
5400
|
width,
|
@@ -4721,16 +5410,16 @@ var VirtualizedChatMessages = React54.forwardRef(({ messages, unreadCount = 0, s
|
|
4721
5410
|
)
|
4722
5411
|
);
|
4723
5412
|
});
|
4724
|
-
var ChatBody =
|
5413
|
+
var ChatBody = React59.forwardRef(({ role, peerId, scrollToBottom }, listRef) => {
|
4725
5414
|
var _a;
|
4726
5415
|
const storeMessageSelector = role ? selectMessagesByRole(role) : peerId ? selectMessagesByPeerID(peerId) : selectHMSMessages;
|
4727
|
-
let messages =
|
4728
|
-
messages =
|
4729
|
-
const isMobile =
|
5416
|
+
let messages = useHMSStore31(storeMessageSelector);
|
5417
|
+
messages = useMemo9(() => (messages == null ? void 0 : messages.filter((message) => message.type === "chat")) || [], [messages]);
|
5418
|
+
const isMobile = useMedia16(config.media.md);
|
4730
5419
|
const { elements } = useRoomLayoutConferencingScreen();
|
4731
5420
|
const unreadCount = useUnreadCount({ role, peerId });
|
4732
5421
|
if (messages.length === 0 && !(isMobile && ((_a = elements == null ? void 0 : elements.chat) == null ? void 0 : _a.is_overlay))) {
|
4733
|
-
return /* @__PURE__ */
|
5422
|
+
return /* @__PURE__ */ React59.createElement(
|
4734
5423
|
Flex,
|
4735
5424
|
{
|
4736
5425
|
css: {
|
@@ -4742,7 +5431,7 @@ var ChatBody = React54.forwardRef(({ role, peerId, scrollToBottom }, listRef) =>
|
|
4742
5431
|
align: "center",
|
4743
5432
|
justify: "center"
|
4744
5433
|
},
|
4745
|
-
/* @__PURE__ */
|
5434
|
+
/* @__PURE__ */ React59.createElement(Box, null, /* @__PURE__ */ React59.createElement("img", { src: empty_chat_default, alt: "Empty Chat", height: 132, width: 185, style: { margin: "0 auto" } }), /* @__PURE__ */ React59.createElement(Text, { variant: "h5", css: { mt: "$8", c: "$on_surface_high" } }, "Start a conversation"), /* @__PURE__ */ React59.createElement(
|
4746
5435
|
Text,
|
4747
5436
|
{
|
4748
5437
|
variant: "sm",
|
@@ -4752,7 +5441,7 @@ var ChatBody = React54.forwardRef(({ role, peerId, scrollToBottom }, listRef) =>
|
|
4752
5441
|
))
|
4753
5442
|
);
|
4754
5443
|
}
|
4755
|
-
return /* @__PURE__ */
|
5444
|
+
return /* @__PURE__ */ React59.createElement(Fragment10, null, /* @__PURE__ */ React59.createElement(
|
4756
5445
|
VirtualizedChatMessages,
|
4757
5446
|
{
|
4758
5447
|
messages,
|
@@ -4764,23 +5453,23 @@ var ChatBody = React54.forwardRef(({ role, peerId, scrollToBottom }, listRef) =>
|
|
4764
5453
|
});
|
4765
5454
|
|
4766
5455
|
// src/Prebuilt/components/Chat/ChatFooter.tsx
|
4767
|
-
import
|
4768
|
-
import { useMedia as
|
5456
|
+
import React60, { useCallback as useCallback15, useEffect as useEffect22, useRef as useRef14, useState as useState34 } from "react";
|
5457
|
+
import { useMedia as useMedia17 } from "react-use";
|
4769
5458
|
import data2 from "@emoji-mart/data";
|
4770
5459
|
import Picker from "@emoji-mart/react";
|
4771
|
-
import { useHMSActions as
|
5460
|
+
import { useHMSActions as useHMSActions21 } from "@100mslive/react-sdk";
|
4772
5461
|
import { EmojiIcon as EmojiIcon3, SendIcon } from "@100mslive/react-icons";
|
4773
5462
|
|
4774
5463
|
// src/Prebuilt/components/AppData/useChatState.js
|
4775
|
-
import { useCallback as
|
4776
|
-
import { selectAppData as selectAppData2, useHMSActions as
|
5464
|
+
import { useCallback as useCallback14 } from "react";
|
5465
|
+
import { selectAppData as selectAppData2, useHMSActions as useHMSActions20, useHMSStore as useHMSStore32 } from "@100mslive/react-sdk";
|
4777
5466
|
var useChatDraftMessage = () => {
|
4778
|
-
const hmsActions =
|
4779
|
-
let chatDraftMessage =
|
5467
|
+
const hmsActions = useHMSActions20();
|
5468
|
+
let chatDraftMessage = useHMSStore32(selectAppData2(APP_DATA.chatDraft));
|
4780
5469
|
if (chatDraftMessage === void 0 || chatDraftMessage === null) {
|
4781
5470
|
chatDraftMessage = "";
|
4782
5471
|
}
|
4783
|
-
const setDraftMessage =
|
5472
|
+
const setDraftMessage = useCallback14(
|
4784
5473
|
(message) => {
|
4785
5474
|
hmsActions.setAppData(APP_DATA.chatDraft, message, true);
|
4786
5475
|
},
|
@@ -4790,10 +5479,10 @@ var useChatDraftMessage = () => {
|
|
4790
5479
|
};
|
4791
5480
|
|
4792
5481
|
// src/Prebuilt/components/Chat/useEmojiPickerStyles.js
|
4793
|
-
import { useEffect as
|
5482
|
+
import { useEffect as useEffect21, useRef as useRef13 } from "react";
|
4794
5483
|
var useEmojiPickerStyles = (showing) => {
|
4795
|
-
const ref =
|
4796
|
-
|
5484
|
+
const ref = useRef13(null);
|
5485
|
+
useEffect21(() => {
|
4797
5486
|
if (showing) {
|
4798
5487
|
setTimeout(() => {
|
4799
5488
|
var _a, _b;
|
@@ -4841,9 +5530,9 @@ var TextArea = styled("textarea", {
|
|
4841
5530
|
}
|
4842
5531
|
});
|
4843
5532
|
function EmojiPicker({ onSelect }) {
|
4844
|
-
const [showEmoji, setShowEmoji] =
|
5533
|
+
const [showEmoji, setShowEmoji] = useState34(false);
|
4845
5534
|
const ref = useEmojiPickerStyles(showEmoji);
|
4846
|
-
return /* @__PURE__ */
|
5535
|
+
return /* @__PURE__ */ React60.createElement(Popover.Root, { open: showEmoji, onOpenChange: setShowEmoji }, /* @__PURE__ */ React60.createElement(Popover.Trigger, { asChild: true, css: { appearance: "none" } }, /* @__PURE__ */ React60.createElement(IconButton, { as: "div" }, /* @__PURE__ */ React60.createElement(EmojiIcon3, null))), /* @__PURE__ */ React60.createElement(Popover.Portal, null, /* @__PURE__ */ React60.createElement(
|
4847
5536
|
Popover.Content,
|
4848
5537
|
{
|
4849
5538
|
alignOffset: -40,
|
@@ -4853,7 +5542,7 @@ function EmojiPicker({ onSelect }) {
|
|
4853
5542
|
p: 0
|
4854
5543
|
}
|
4855
5544
|
},
|
4856
|
-
/* @__PURE__ */
|
5545
|
+
/* @__PURE__ */ React60.createElement(
|
4857
5546
|
Box,
|
4858
5547
|
{
|
4859
5548
|
css: {
|
@@ -4862,7 +5551,7 @@ function EmojiPicker({ onSelect }) {
|
|
4862
5551
|
},
|
4863
5552
|
ref
|
4864
5553
|
},
|
4865
|
-
/* @__PURE__ */
|
5554
|
+
/* @__PURE__ */ React60.createElement(Picker, { onEmojiSelect: onSelect, data: data2, previewPosition: "none", skinPosition: "search" })
|
4866
5555
|
)
|
4867
5556
|
)));
|
4868
5557
|
}
|
@@ -4873,13 +5562,13 @@ var ChatFooter = ({
|
|
4873
5562
|
children
|
4874
5563
|
}) => {
|
4875
5564
|
var _a;
|
4876
|
-
const hmsActions =
|
4877
|
-
const inputRef =
|
5565
|
+
const hmsActions = useHMSActions21();
|
5566
|
+
const inputRef = useRef14(null);
|
4878
5567
|
const [draftMessage, setDraftMessage] = useChatDraftMessage();
|
4879
|
-
const isMobile =
|
5568
|
+
const isMobile = useMedia17(config.media.md);
|
4880
5569
|
const { elements } = useRoomLayoutConferencingScreen();
|
4881
5570
|
const isOverlayChat = (_a = elements == null ? void 0 : elements.chat) == null ? void 0 : _a.is_overlay;
|
4882
|
-
const sendMessage =
|
5571
|
+
const sendMessage = useCallback15(() => __async(void 0, null, function* () {
|
4883
5572
|
var _a2;
|
4884
5573
|
const message = (_a2 = inputRef == null ? void 0 : inputRef.current) == null ? void 0 : _a2.value;
|
4885
5574
|
if (!message || !message.trim().length) {
|
@@ -4902,19 +5591,19 @@ var ChatFooter = ({
|
|
4902
5591
|
ToastManager.addToast({ title: err.message });
|
4903
5592
|
}
|
4904
5593
|
}), [role, peerId, hmsActions, onSend]);
|
4905
|
-
|
5594
|
+
useEffect22(() => {
|
4906
5595
|
const messageElement = inputRef.current;
|
4907
5596
|
if (messageElement) {
|
4908
5597
|
messageElement.value = draftMessage;
|
4909
5598
|
}
|
4910
5599
|
}, [draftMessage]);
|
4911
|
-
|
5600
|
+
useEffect22(() => {
|
4912
5601
|
const messageElement = inputRef.current;
|
4913
5602
|
return () => {
|
4914
5603
|
setDraftMessage((messageElement == null ? void 0 : messageElement.value) || "");
|
4915
5604
|
};
|
4916
5605
|
}, [setDraftMessage]);
|
4917
|
-
return /* @__PURE__ */
|
5606
|
+
return /* @__PURE__ */ React60.createElement(React60.Fragment, null, /* @__PURE__ */ React60.createElement(Flex, { align: "center", css: { gap: "$4", w: "100%" } }, /* @__PURE__ */ React60.createElement(
|
4918
5607
|
Flex,
|
4919
5608
|
{
|
4920
5609
|
align: "center",
|
@@ -4935,7 +5624,7 @@ var ChatFooter = ({
|
|
4935
5624
|
}
|
4936
5625
|
},
|
4937
5626
|
children,
|
4938
|
-
/* @__PURE__ */
|
5627
|
+
/* @__PURE__ */ React60.createElement(
|
4939
5628
|
TextArea,
|
4940
5629
|
{
|
4941
5630
|
css: {
|
@@ -4963,7 +5652,7 @@ var ChatFooter = ({
|
|
4963
5652
|
onCopy: (e) => e.stopPropagation()
|
4964
5653
|
}
|
4965
5654
|
),
|
4966
|
-
!isMobile ? /* @__PURE__ */
|
5655
|
+
!isMobile ? /* @__PURE__ */ React60.createElement(
|
4967
5656
|
EmojiPicker,
|
4968
5657
|
{
|
4969
5658
|
onSelect: (emoji) => {
|
@@ -4973,7 +5662,7 @@ var ChatFooter = ({
|
|
4973
5662
|
}
|
4974
5663
|
}
|
4975
5664
|
) : null,
|
4976
|
-
/* @__PURE__ */
|
5665
|
+
/* @__PURE__ */ React60.createElement(
|
4977
5666
|
IconButton,
|
4978
5667
|
{
|
4979
5668
|
className: "send-msg",
|
@@ -4986,7 +5675,7 @@ var ChatFooter = ({
|
|
4986
5675
|
},
|
4987
5676
|
"data-testid": "send_msg_btn"
|
4988
5677
|
},
|
4989
|
-
/* @__PURE__ */
|
5678
|
+
/* @__PURE__ */ React60.createElement(SendIcon, null)
|
4990
5679
|
)
|
4991
5680
|
)));
|
4992
5681
|
};
|
@@ -4994,10 +5683,10 @@ var ChatFooter = ({
|
|
4994
5683
|
// src/Prebuilt/components/Chat/Chat.jsx
|
4995
5684
|
var PINNED_MESSAGE_LENGTH = 80;
|
4996
5685
|
var PinnedMessage = ({ clearPinnedMessage }) => {
|
4997
|
-
const permissions =
|
4998
|
-
const pinnedMessage =
|
5686
|
+
const permissions = useHMSStore33(selectPermissions12);
|
5687
|
+
const pinnedMessage = useHMSStore33(selectSessionStore3(SESSION_STORE_KEY.PINNED_MESSAGE));
|
4999
5688
|
const formattedPinnedMessage = (pinnedMessage == null ? void 0 : pinnedMessage.length) && pinnedMessage.length > PINNED_MESSAGE_LENGTH ? `${pinnedMessage.slice(0, PINNED_MESSAGE_LENGTH)}...` : pinnedMessage;
|
5000
|
-
return pinnedMessage ? /* @__PURE__ */
|
5689
|
+
return pinnedMessage ? /* @__PURE__ */ React61.createElement(
|
5001
5690
|
Flex,
|
5002
5691
|
{
|
5003
5692
|
title: pinnedMessage,
|
@@ -5005,8 +5694,8 @@ var PinnedMessage = ({ clearPinnedMessage }) => {
|
|
5005
5694
|
align: "center",
|
5006
5695
|
justify: "between"
|
5007
5696
|
},
|
5008
|
-
/* @__PURE__ */
|
5009
|
-
/* @__PURE__ */
|
5697
|
+
/* @__PURE__ */ React61.createElement(PinIcon3, null),
|
5698
|
+
/* @__PURE__ */ React61.createElement(
|
5010
5699
|
Box,
|
5011
5700
|
{
|
5012
5701
|
css: {
|
@@ -5016,15 +5705,15 @@ var PinnedMessage = ({ clearPinnedMessage }) => {
|
|
5016
5705
|
overflowY: "auto"
|
5017
5706
|
}
|
5018
5707
|
},
|
5019
|
-
/* @__PURE__ */
|
5708
|
+
/* @__PURE__ */ React61.createElement(Text, { variant: "sm" }, /* @__PURE__ */ React61.createElement(AnnotisedMessage, { message: formattedPinnedMessage }))
|
5020
5709
|
),
|
5021
|
-
permissions.removeOthers && /* @__PURE__ */
|
5710
|
+
permissions.removeOthers && /* @__PURE__ */ React61.createElement(
|
5022
5711
|
Flex,
|
5023
5712
|
{
|
5024
5713
|
onClick: () => clearPinnedMessage(),
|
5025
5714
|
css: { cursor: "pointer", color: "$on_surface_medium", "&:hover": { color: "$on_surface_high" } }
|
5026
5715
|
},
|
5027
|
-
/* @__PURE__ */
|
5716
|
+
/* @__PURE__ */ React61.createElement(CrossIcon8, null)
|
5028
5717
|
)
|
5029
5718
|
) : null;
|
5030
5719
|
};
|
@@ -5033,17 +5722,17 @@ var Chat = ({ screenType }) => {
|
|
5033
5722
|
const notification = useHMSNotifications(HMSNotificationTypes.PEER_LEFT);
|
5034
5723
|
const [peerSelector, setPeerSelector] = useSetSubscribedChatSelector(CHAT_SELECTOR.PEER_ID);
|
5035
5724
|
const [roleSelector, setRoleSelector] = useSetSubscribedChatSelector(CHAT_SELECTOR.ROLE);
|
5036
|
-
const peerName =
|
5037
|
-
const [chatOptions, setChatOptions] =
|
5725
|
+
const peerName = useHMSStore33(selectPeerNameByID4(peerSelector));
|
5726
|
+
const [chatOptions, setChatOptions] = useState35({
|
5038
5727
|
role: roleSelector || "",
|
5039
5728
|
peerId: peerSelector && peerName ? peerSelector : "",
|
5040
5729
|
selection: roleSelector ? roleSelector : peerSelector && peerName ? peerName : "Everyone"
|
5041
5730
|
});
|
5042
|
-
const [isSelectorOpen] =
|
5043
|
-
const listRef =
|
5044
|
-
const hmsActions =
|
5731
|
+
const [isSelectorOpen] = useState35(false);
|
5732
|
+
const listRef = useRef15(null);
|
5733
|
+
const hmsActions = useHMSActions22();
|
5045
5734
|
const { setPinnedMessage } = useSetPinnedMessage();
|
5046
|
-
|
5735
|
+
useEffect23(() => {
|
5047
5736
|
if (notification && notification.data && peerSelector === notification.data.id) {
|
5048
5737
|
setPeerSelector("");
|
5049
5738
|
setChatOptions({
|
@@ -5055,14 +5744,14 @@ var Chat = ({ screenType }) => {
|
|
5055
5744
|
}, [notification, peerSelector, setPeerSelector]);
|
5056
5745
|
const storeMessageSelector = selectHMSMessagesCount;
|
5057
5746
|
const { elements } = useRoomLayoutConferencingScreen();
|
5058
|
-
const isMobile =
|
5747
|
+
const isMobile = useMedia18(config.media.md);
|
5059
5748
|
let isScrolledToBottom = false;
|
5060
5749
|
if (listRef.current) {
|
5061
5750
|
const currentRef = listRef.current._outerRef;
|
5062
5751
|
isScrolledToBottom = currentRef.scrollHeight - currentRef.clientHeight - currentRef.scrollTop < 10;
|
5063
5752
|
}
|
5064
|
-
const messagesCount =
|
5065
|
-
const scrollToBottom =
|
5753
|
+
const messagesCount = useHMSStore33(storeMessageSelector) || 0;
|
5754
|
+
const scrollToBottom = useCallback16(
|
5066
5755
|
(unreadCount = 0) => {
|
5067
5756
|
var _a2;
|
5068
5757
|
if (listRef.current && listRef.current.scrollToItem && unreadCount > 0) {
|
@@ -5076,7 +5765,7 @@ var Chat = ({ screenType }) => {
|
|
5076
5765
|
},
|
5077
5766
|
[hmsActions, messagesCount]
|
5078
5767
|
);
|
5079
|
-
return /* @__PURE__ */
|
5768
|
+
return /* @__PURE__ */ React61.createElement(
|
5080
5769
|
Flex,
|
5081
5770
|
{
|
5082
5771
|
direction: "column",
|
@@ -5085,8 +5774,8 @@ var Chat = ({ screenType }) => {
|
|
5085
5774
|
gap: "$4"
|
5086
5775
|
}
|
5087
5776
|
},
|
5088
|
-
isMobile && ((_a = elements == null ? void 0 : elements.chat) == null ? void 0 : _a.is_overlay) ? null : /* @__PURE__ */
|
5089
|
-
/* @__PURE__ */
|
5777
|
+
isMobile && ((_a = elements == null ? void 0 : elements.chat) == null ? void 0 : _a.is_overlay) ? null : /* @__PURE__ */ React61.createElement(React61.Fragment, null, ((_b = elements == null ? void 0 : elements.chat) == null ? void 0 : _b.allow_pinning_messages) ? /* @__PURE__ */ React61.createElement(PinnedMessage, { clearPinnedMessage: setPinnedMessage }) : null),
|
5778
|
+
/* @__PURE__ */ React61.createElement(
|
5090
5779
|
ChatBody,
|
5091
5780
|
{
|
5092
5781
|
role: chatOptions.role,
|
@@ -5096,7 +5785,7 @@ var Chat = ({ screenType }) => {
|
|
5096
5785
|
screenType
|
5097
5786
|
}
|
5098
5787
|
),
|
5099
|
-
/* @__PURE__ */
|
5788
|
+
/* @__PURE__ */ React61.createElement(
|
5100
5789
|
ChatFooter,
|
5101
5790
|
{
|
5102
5791
|
role: chatOptions.role,
|
@@ -5114,7 +5803,7 @@ var Chat = ({ screenType }) => {
|
|
5114
5803
|
},
|
5115
5804
|
peerId: chatOptions.peerId
|
5116
5805
|
},
|
5117
|
-
!isSelectorOpen && !isScrolledToBottom && /* @__PURE__ */
|
5806
|
+
!isSelectorOpen && !isScrolledToBottom && /* @__PURE__ */ React61.createElement(NewMessageIndicator, { role: chatOptions.role, peerId: chatOptions.peerId, scrollToBottom })
|
5118
5807
|
)
|
5119
5808
|
);
|
5120
5809
|
};
|
@@ -5123,7 +5812,7 @@ var NewMessageIndicator = ({ role, peerId, scrollToBottom }) => {
|
|
5123
5812
|
if (!unreadCount) {
|
5124
5813
|
return null;
|
5125
5814
|
}
|
5126
|
-
return /* @__PURE__ */
|
5815
|
+
return /* @__PURE__ */ React61.createElement(
|
5127
5816
|
Flex,
|
5128
5817
|
{
|
5129
5818
|
justify: "center",
|
@@ -5134,7 +5823,7 @@ var NewMessageIndicator = ({ role, peerId, scrollToBottom }) => {
|
|
5134
5823
|
position: "absolute"
|
5135
5824
|
}
|
5136
5825
|
},
|
5137
|
-
/* @__PURE__ */
|
5826
|
+
/* @__PURE__ */ React61.createElement(
|
5138
5827
|
Button,
|
5139
5828
|
{
|
5140
5829
|
variant: "standard",
|
@@ -5157,7 +5846,7 @@ var NewMessageIndicator = ({ role, peerId, scrollToBottom }) => {
|
|
5157
5846
|
},
|
5158
5847
|
"New ",
|
5159
5848
|
unreadCount === 1 ? "message" : "messages",
|
5160
|
-
/* @__PURE__ */
|
5849
|
+
/* @__PURE__ */ React61.createElement(ChevronDownIcon2, null)
|
5161
5850
|
)
|
5162
5851
|
);
|
5163
5852
|
};
|
@@ -5172,23 +5861,23 @@ var tabTriggerCSS = {
|
|
5172
5861
|
justifyContent: "center"
|
5173
5862
|
};
|
5174
5863
|
var ParticipantCount2 = ({ count }) => {
|
5175
|
-
return count < 1e3 ? /* @__PURE__ */
|
5864
|
+
return count < 1e3 ? /* @__PURE__ */ React62.createElement("span", null, "(", count, ")") : /* @__PURE__ */ React62.createElement(Tooltip, { title: count }, /* @__PURE__ */ React62.createElement("span", null, "(", getFormattedCount(count), ")"));
|
5176
5865
|
};
|
5177
|
-
var SidePaneTabs =
|
5866
|
+
var SidePaneTabs = React62.memo(({ active = SIDE_PANE_OPTIONS.CHAT, screenType, hideControls }) => {
|
5178
5867
|
var _a;
|
5179
5868
|
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
5180
5869
|
const toggleParticipants = useSidepaneToggle(SIDE_PANE_OPTIONS.PARTICIPANTS);
|
5181
5870
|
const resetSidePane = useSidepaneReset();
|
5182
|
-
const [activeTab, setActiveTab] =
|
5183
|
-
const peerCount =
|
5871
|
+
const [activeTab, setActiveTab] = useState36(active);
|
5872
|
+
const peerCount = useHMSStore34(selectPeerCount3);
|
5184
5873
|
const { elements } = useRoomLayoutConferencingScreen();
|
5185
5874
|
const showChat = !!(elements == null ? void 0 : elements.chat);
|
5186
5875
|
const showParticipants = !!(elements == null ? void 0 : elements.participant_list);
|
5187
5876
|
const hideTabs = !(showChat && showParticipants);
|
5188
|
-
const isMobile =
|
5877
|
+
const isMobile = useMedia19(config.media.md);
|
5189
5878
|
const isOverlayChat = !!((_a = elements == null ? void 0 : elements.chat) == null ? void 0 : _a.is_overlay) && isMobile;
|
5190
5879
|
const isChatOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.CHAT);
|
5191
|
-
|
5880
|
+
useEffect24(() => {
|
5192
5881
|
if (activeTab === SIDE_PANE_OPTIONS.CHAT && !showChat && showParticipants) {
|
5193
5882
|
setActiveTab(SIDE_PANE_OPTIONS.PARTICIPANTS);
|
5194
5883
|
} else if (activeTab === SIDE_PANE_OPTIONS.PARTICIPANTS && showChat && !showParticipants) {
|
@@ -5197,10 +5886,10 @@ var SidePaneTabs = React57.memo(({ active = SIDE_PANE_OPTIONS.CHAT, screenType,
|
|
5197
5886
|
resetSidePane();
|
5198
5887
|
}
|
5199
5888
|
}, [showChat, activeTab, showParticipants, resetSidePane]);
|
5200
|
-
|
5889
|
+
useEffect24(() => {
|
5201
5890
|
setActiveTab(active);
|
5202
5891
|
}, [active]);
|
5203
|
-
return /* @__PURE__ */
|
5892
|
+
return /* @__PURE__ */ React62.createElement(
|
5204
5893
|
Flex,
|
5205
5894
|
{
|
5206
5895
|
direction: "column",
|
@@ -5211,7 +5900,7 @@ var SidePaneTabs = React57.memo(({ active = SIDE_PANE_OPTIONS.CHAT, screenType,
|
|
5211
5900
|
transition: "margin 0.3s ease-in-out"
|
5212
5901
|
}
|
5213
5902
|
},
|
5214
|
-
isOverlayChat && isChatOpen && showChat ? /* @__PURE__ */
|
5903
|
+
isOverlayChat && isChatOpen && showChat ? /* @__PURE__ */ React62.createElement(Chat, { screenType }) : /* @__PURE__ */ React62.createElement(React62.Fragment, null, hideTabs ? /* @__PURE__ */ React62.createElement(React62.Fragment, null, /* @__PURE__ */ React62.createElement(Text, { variant: "sm", css: { fontWeight: "$semiBold", p: "$4", c: "$on_surface_high", pr: "$12" } }, showChat ? "Chat" : /* @__PURE__ */ React62.createElement("span", null, "Participants ", /* @__PURE__ */ React62.createElement(ParticipantCount2, { count: peerCount }))), showChat ? /* @__PURE__ */ React62.createElement(Chat, { screenType }) : /* @__PURE__ */ React62.createElement(ParticipantList, null)) : /* @__PURE__ */ React62.createElement(
|
5215
5904
|
Tabs.Root,
|
5216
5905
|
{
|
5217
5906
|
value: activeTab,
|
@@ -5221,7 +5910,7 @@ var SidePaneTabs = React57.memo(({ active = SIDE_PANE_OPTIONS.CHAT, screenType,
|
|
5221
5910
|
size: "100%"
|
5222
5911
|
}
|
5223
5912
|
},
|
5224
|
-
/* @__PURE__ */
|
5913
|
+
/* @__PURE__ */ React62.createElement(Tabs.List, { css: { w: "calc(100% - $12)", p: "$2", borderRadius: "$2", bg: "$surface_default" } }, /* @__PURE__ */ React62.createElement(
|
5225
5914
|
Tabs.Trigger,
|
5226
5915
|
{
|
5227
5916
|
value: SIDE_PANE_OPTIONS.CHAT,
|
@@ -5231,7 +5920,7 @@ var SidePaneTabs = React57.memo(({ active = SIDE_PANE_OPTIONS.CHAT, screenType,
|
|
5231
5920
|
})
|
5232
5921
|
},
|
5233
5922
|
"Chat"
|
5234
|
-
), /* @__PURE__ */
|
5923
|
+
), /* @__PURE__ */ React62.createElement(
|
5235
5924
|
Tabs.Trigger,
|
5236
5925
|
{
|
5237
5926
|
value: SIDE_PANE_OPTIONS.PARTICIPANTS,
|
@@ -5241,12 +5930,12 @@ var SidePaneTabs = React57.memo(({ active = SIDE_PANE_OPTIONS.CHAT, screenType,
|
|
5241
5930
|
})
|
5242
5931
|
},
|
5243
5932
|
"Participants ",
|
5244
|
-
/* @__PURE__ */
|
5933
|
+
/* @__PURE__ */ React62.createElement(ParticipantCount2, { count: peerCount })
|
5245
5934
|
)),
|
5246
|
-
/* @__PURE__ */
|
5247
|
-
/* @__PURE__ */
|
5935
|
+
/* @__PURE__ */ React62.createElement(Tabs.Content, { value: SIDE_PANE_OPTIONS.PARTICIPANTS, css: { p: 0 } }, /* @__PURE__ */ React62.createElement(ParticipantList, null)),
|
5936
|
+
/* @__PURE__ */ React62.createElement(Tabs.Content, { value: SIDE_PANE_OPTIONS.CHAT, css: { p: 0 } }, /* @__PURE__ */ React62.createElement(Chat, { screenType }))
|
5248
5937
|
)),
|
5249
|
-
isOverlayChat && isChatOpen ? null : /* @__PURE__ */
|
5938
|
+
isOverlayChat && isChatOpen ? null : /* @__PURE__ */ React62.createElement(
|
5250
5939
|
IconButton,
|
5251
5940
|
{
|
5252
5941
|
css: { position: "absolute", right: "$10", top: "$11", "@md": { top: "$8", right: "$8" } },
|
@@ -5260,22 +5949,22 @@ var SidePaneTabs = React57.memo(({ active = SIDE_PANE_OPTIONS.CHAT, screenType,
|
|
5260
5949
|
},
|
5261
5950
|
"data-testid": "close_chat"
|
5262
5951
|
},
|
5263
|
-
/* @__PURE__ */
|
5952
|
+
/* @__PURE__ */ React62.createElement(CrossIcon9, null)
|
5264
5953
|
)
|
5265
5954
|
);
|
5266
5955
|
});
|
5267
5956
|
|
5268
5957
|
// src/Prebuilt/components/Streaming/StreamingLanding.jsx
|
5269
|
-
import
|
5270
|
-
import { selectPermissions as
|
5271
|
-
import { ColoredHandIcon, CrossIcon as
|
5958
|
+
import React64, { Fragment as Fragment12, useState as useState38 } from "react";
|
5959
|
+
import { selectPermissions as selectPermissions13, useHMSStore as useHMSStore36, useRecordingStreaming as useRecordingStreaming7 } from "@100mslive/react-sdk";
|
5960
|
+
import { ColoredHandIcon, CrossIcon as CrossIcon10, GoLiveIcon as GoLiveIcon3 } from "@100mslive/react-icons";
|
5272
5961
|
|
5273
5962
|
// src/Prebuilt/images/rtmp.png
|
5274
5963
|
var rtmp_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABlCAYAAAC7vkbxAAAVDUlEQVR4Ae1dDXgU9Zl//7OfiWz4SCKEgCR+kIVQWb76aKUSxHp6aiGtvZ6e1XC94l3VKsVeH73rCU/vWu85rHJie9JrDWix3nFH/KhaEY1CvZ58uFQDCVQIKEkgAUO+92Pm3/ed2Zmd2cwmu5uZzQL+nmfJzOwwX7//+/l/31mAz5BTYHCWwe+/ogwc4SrgUCYBTGOMl9Gy+j0H6GQMOjlnzQLAUYmzYNgj1jcHg51wFuCsIMQ/a34V59JS4HwZrpZBBkCigoyxeuaS1jUGg82Qo8hZQsoCgXF5EaFGAn4nPs0AWAgiR2BsXWPD3lrIMeQkIRWz5t0HXFqNT25c4nc8fxJEShZKou8SEMdeFuJOX56UP7EXQMhT9pD6HX1tLtZ/wu0480dwdB+SHB1BQehrMztVM0rNmlwiJqcIIdUkSeJjeFEGiZAKLmmPlFxdHCq/BbhrDGQCIsfV9k7I9clvPYPIYajOXLw6F1RZzhBSUTn3MbQR9+u3iUUBGJi+HKKFlmoscH/8GngOPg2DiOFsZdOBvY/DKGLUCSFb4YmwraieqtRtEqql/sCDlhORCFNiGHu8qWHvShgljCoh/kCgjIfZW6DznMIXfw2loiZj1ZQuiAwvkuJCclSQ0Q+7+eLRcJVHjZBEMogAkorIpIUwGvAc3gLehie09dEiZVQISSSDVFTvlevkv6MJ56kg5O/6B2CRHnl9NEgRYBQghdFm5BgZBLJZdC2quiRvzx0RHoMswgFZxvSZcx/GG/1LWqYb7134s5wgQwX3TgBxfKVs8AlESlHR5DOnOlp/D1lAVgmhOAMDvlp1vX/ew3jzMyHXIA8Qlw+c7e8pGxhcUVw66fmOtjbbVZcTsgguiU+ryyGML+ww4BUTBemGmS6YUcLYZcUM8twCj4ic9YY59IQA2ro4b+nk8PqBKOw5JiZV2aGLbwFH1yHV+xrHI4yufTHYjKwRQqoKKSmjZRqBAxU1YCUmFjD+o6Ue/ueVzsSHzBJ8F3lFlEBCQoY8Zn/lveBs26kYeYyT/JVza+xOs2TFqJNXxYDXqOtkOK1EZYlD2nbvBWBCxohANm4ASdHWOX8YbEZWCJHCwp0Q86rCU6+31IhPHc/gub/2smKfPS48XW+0SMsYlJGUgI3ICiF66SDbYSX+tdojFfuYrfGU/po5TQfYCNsJiY2oMloW0c+3UjrmTxPExdOdtt8DxSdaKodsyaxAFdgE22+Gc1iqLoen3gBW4q4verKWaQij16WCS8IysAn2e1mM0/y3DJxYAiux4KLhx9OOP4p8/dsRaGgReW84PgCjIk9rMIan3ACeptrYGqdBdj/YAFslRAkElVk/UlfcaV0GN88FHF3dIa//0ElJunNjP7xzKMpO9XJhIMJB/UQlSAukanlc3ZbRtAHYAFsJYVzS3BOrpQPJGHaff3o5xPoj1nlf+kDWG7FHbdlKiMRhkbosFlwGVsIpDO9Z7f1Y4mAhxLGXxld4ZtUvw8Feo864JtaGm8kSwlFu6f3pBxXVhIENsFll6QrYnNmZAbQT+nsQmJIGshq2EsJ1cx7nAvT3wc9KlfUZ0sZnhOQYsjofkgm23pXHryh3ZOS6Hvlhcru1cG2f9FGHlHMD8ryUEAwK+ZFTUk6W0Z6XhBzpkDhGKOcfIXjHzfJJzAudRw3HO3lGZOjvA8PSZrAB9rq9DLSigFwipaFVhEwg9Ldqy+j2ngEbYK+ESLBPO1F/7hBy7DTPKKVCFfQqGLAg2AB7CRHiF00VHLmCwx2ZpbgcXTpCHJIthNjq9nKGFx1T187WnRAq/xqki2f/P8LrDw5OEhaO4exbV7mHtAVrt0UkszR74wkxMxuiI4RHwBZCbPc0KirnfEpzIjQF2n3t85bltC4tFmDHqvwh9yn/QQ/OfYAlIJXre+PrygqDYFPD+3PABtjv9nJWT3+otsnVtgPOVrhaddfO2dtgE2wnhAmSVoTlOvYanK1wH9miLTtZvBzWatieOhlwQtATQfcX1RaV+9PH7s6odCD0tcrqKNELlPImyZUmUn6JLB2a247qqqEhaIv9INhOCPVW+GfOXcdBqfrzND0N0S9YW7mYKlhUUZtydy4ODL0bm/IxOKsDG5GV5OKAW3rcE2H3jYaUEAnOjvfBfXiLfN6RAgfW6oqZc2owVK+z4yUEtnhZVJHhHfAaqzKEcI0qJTSd23P1L2AkGM7L6uruhrk1teD4aIvWEZUIj+CDIlcF+ByTwe0YAx7m074L8W7oibZCV7QFOiJNSc/DGasVXNIaq4gZMSHyw486A/TqC855FeZ4yswa/hNB5f76QuZ0MRQhm57ZDOt/ugG6uroN24mAcu9iKPXOhcnu+eBzToZU0RLaDcdDe+BIf70pQVYRkzEh2vtHqG43BQLM0Iu2JFPVZUbI8ZYWePCh1fDerj2G7aWe+bCgYAUUuisMUpApusUW2NX1FJK0R5YgHdB5YWtG0uueNiEKEeLD+r5yPQoKfFA6eTL4fMYbP368RX5gepAX07PoF7JHky4SCTGTCpWIyfjXDhAxjb0vwR96NkNI0kkjg3rm4sszkZaUCVEa/IWHE9+2QAT4Kyrg2iVVsAQ/REYy0MNqbGqCHz/yKBxoVMRebvpESUmXFD0hP3pkLRLynPYdqaIl41fbRkQiVIkhcnRoZm6+OF1SUiLErMGfiLjjG7fBHbffJi+nAzK41V+9VZYaQiakECG/WSHCPfeuMqgo/wU3w1XjHtBUE92gpdVyCVCPT2V7jb0vws7OR/XS0ulkfHE6ccuwhEyfMW8ZRttP6+3EPXfflRERehAZdyxfoZGidCvdk3KFfPnYXpi4+36UtIPatoVIxOVjbrOdhGQgUrrRptS1r9DblrRIGZKQ6ZXz7mS6rtnS0snw5L8/Cn5/BViBRFII5H2FKpYPm4SkBn9X2055mbynhWMfgAqUjlxAD6qwVzpW6b2xlElJ2hZdGQgEuAha8mkGkvDrzRtlUqwCSdi111RBI45y1eA7P90PrpY3MfE1ht6HZfr/6IUxnqMvauu3XLgRpnq/ALkCNw6QS/P/DD4e+D/ok07RJq8E7Pri0kkvDNdabUoI2QwpzF7FRVlNXbtkMaxHyRiJikoGOmb1sptlWVVtgZIZ3ilH1tQCQPkkFe6PX4W8hvXa+jXj18BFOUSGCifzyKR81P+6alPGgcQCp9rbNg71/0xVFqYGjkDMgJNkbHx6gy1kJMJMhRHI6Icuvb1PGjMlPy/4iJbo+3zBXTAfP7kMUl/Pn7g1buiHeSfXIEKUV1/w1bRM6mkTkmGlmkoFW+telGOKRGL0uDhvMVxf+CicDaAonwy9CnSHy5O5wwZCZPc2wt5XPaof/8saRZ2MEpIRQ3HGsuINcg4qHZRfCTCnGmzBjp8DtCcpG6CHvKNzrRxAxjbU44yj6VshjNleJfCTyahe9uXMyZAdc06Z0djlMP0XKUejdA0knXfUrDBsX4BqSs5DpeHbzvgSwJLvYo7Tpik57wXJv6PLpGtu6ntJUV2xTt7GD4P1iftqhCjBX7yf/J5vr0h68MiePeDahyn0jw4DP3ECnGIUoK8fpO4uzLWHkAsu74mcyDUORIH87BwCSBeMAQfaI+7ygFhcCGxaGQgzZoKjapHiyCfg8wvmy5/3du2W14kIf/7NyrEhNQSWAVz9d/H1IM5o9H8KI4bTiw/61tT29Tp8coxEET2Bc0aZ7/pBx9SWIkKVeovqyEwEJhMh8p37wPnkk3KlWOJkipnLxhL+Crp1/WANz5oF7JXfgGvqRTAUFsSMeKpk0AO7ssa4bT/6jx3NMGLkjUudEBqjRIiW90oiJdoz0b+hoHrZTaYHFZ/ZBM7162MSYC1cH34IkXsHdxo3Nh0cJB2pYt5fDCZjNEEBLJGiwqzfXSaE1JWavSXJIBUxGEjC1hdtrRvyvPUGSD3GyaSNm36lLc/W3cxwmP91gKu+CTmHyw33wO9MbK+WCZFEhzYpYU6GbBGAH05/DjodCJQ6P3nSsE2fOCzPq4JUMW0BpI3xUwDm3qJ8DOYMx+LspYotGjcFRgSSktJ4Fhon94wvjZYJEUSuI2Se6YFITbGWVhgOoZtuBn7RVMgUXDdnQupKdXmL3BVpu7nporAcE5TfUj56VUAK+ot/qzgGJX4YMfQDK1FtCbETzlY3lJaWmB6Eh0LATw/vmji/cTvwd3bCwN3fBikTH7MrXlR+4ECjtjzZMw/OFRgknfFF+u+E2EZNjyWbYJI6O9GLSq2M3zHtIsh7Aj2xxgYQv3QdzTdDynNhn8ZJ16fWS7M02ZQNkKQXqPP5HAJ6OyITou8nT5omQQmBIfpceGIMgauOy/zgeP23EHp2M0QuvhhSAR8Ia8uNOkIKHCVwLqHQFZ/CuCASf/5p6JTkozzidkF/vhciXgz2BAbRaBREUZQ/4XAYhGuvgUj1jRByOiDqGwNDSguPl6vTdK/ZDZwL8OkGmAiCZsNTL5QTmNyBYxaRkQfmFBxyRB6ROAjoAEgS7osRfOjxn4D7qQ3gONmOSTU3REQ8gAP3F81jGZYfL1xQCxbSKdc5W1Cguyccg5rKkgnh1C8XU1vk1ZiqLUx3SChQDhjccOFGKYCwompo7DtcLhDf2g7SfSvB98EHkA5Y4QT5L827a6d2ZIeQ5vcAfvlXyrJOUGUX+JnlyvJAD1gCjzBGf3wjITjwj6rmgWbuzAhxFBQo6uZMFwwF3twM0euuA8e2N5C8DCJ6r1f+051Q5JYNRNFM0rt9zXDGpCMvrwAsh2LUda1njQcOmu7ImQBswgQYDs7vfx+c27ap6cS0wX023KUNKJgI8OV/jq9blUxS4hAW75c70GROCD1gqcKCqGgISKQbyhVvzFdgrLPNJRRMAvjKvymkEH6/CeATixoUZEKohwNiLczbt781qCZWAQNhXgb5iDQgzp4NjvGKOi3QVT4aqgJHGZReueXROBnv/hLTO7+CtBGS4sYIfaB4+zj9E/t9DJljMqZ6d9OAVfdD5JJLlJFsNcYWgPiEcapZtWXd0RawFCzJZ5h9ii5BMn4CMKYIZB1Vj7Hv7uchI+hrggWn1KwuO+PnZxsxBV9Fy+uf3ACbagdHxo7xE0Da8Ttgv94M4W3bwdVzBqKftABrawEhFFbyXUOk5tXgUcR4hE0oAl5YiHmvKcD8M8Dxzb+BvMpKw/6UNVBzWXQDBRa5v8seQfUYNW7bgw92X6yyyIvCecMPUBpKjft4cFbQlUfJWIBtawGa3oSMcSoSNw2CFH8rhEbIgEuq80TYYzSfTvMP9DHL/LpKUFZXrgTPSuV3s9zqF+gnciID4wseHsAP5r5ESZ4zZU4XCBiDMJcb6KV7TqI/BSnz+6drcyEt4T2WEZJvUqvvioU/+ei3VCNhhdPM/29kAOAVNOZHd8GIoG9p0BfQaZE6qS3GmdZrRlKSFsgLo+DQ5QSBpmnHF4KzqBicEwpll5mhO8twCleg/VJUeTOQELMbsAu+YsU+JCNjAD3+//37kZNBxdmaXWTGfndD6oRaz1TjTiNz06bNMJqYMSPu1VGjjJ3wXQjwVVRD45IIYd9pgC0PAJywYFxQWZCGhBZrAyEkJVzgy9X19T99ChN89o/MZFj/5FPaMhn2UzZKyeduVNxZM3TjnNmWVQCnj4IlaOx9WVtmglSn/25QcvHgB1SToXSaksd193dWDWq0yQaIjDe2v2XYdthmKTFD1wlFMjotegSkro7HJaQ5scjBNLkYckvLPWFGGcgyubyzZgV6XRuGbMaxEkQGSWciqGLjct9tKbWlnT6GN+c2/45shNM7ePvJQ8YcVghDhe1oVbtPgGXY1x03A+iT1id+n9S6+v2BMi7Em3TkstIskKJ0Q23WXSBfg+7yIrUIQ+0BGQlu+xnGFLrpGSJh+2MA+18H2/Fs201aDMIkXt7YaCwpTTofQjvif1gMsbfCkaRUf+VW2Fr3EtgBUouyJCaQ0bg/uJoxvkbdto/qmixMpZAUvPLD7JBBRXIaGQzqE8kgDPmzeR0dbZ3FhZNewP9NE/HjQphi3/5mPT68VvSAphvSG5mC7NTP/7MWHvrH1XD4SLO2XSVDvo6Tbc1FF5ZU4WJZGN1FKvWfMoIp3c/dhPHGeMVY//d3AVr3g+0gp+R3Z+Ltbk7Gq9vb2wblkIf9HUOVFAzlxuNTkme2yPOikUzEFGBKPpPqeJWIVd97EHbsfBdniGNTt+h2M4Hf0NgQrNXvXzxx0lF0EWtomaJc6r2gkppMQIRE8XT/8z28jiy96O7dM2vlPncC2o7axv3vP2W2X1pJKX9loCZWk1qm364W1y25ZhFMwWWzljc5R3agSS7teWN7vRaBJ1xOHZOklWaiTKiYOXcr3o5cNkNFD0uL0wxeY7gR7+Cd/7DWWA8FckZ2dq5VVmjAiXxOsntMv08djT2qsNWYAlk61AsD9Ma/u6c7SQY5dhGoTzEJtsasGlyP2G+vH1HPOxs9rqvGPgDpwulRJqOyAXJz/8vQsMNXNh0Ipt6wkypkYhxQheJHL5VJ/3UMlBGQ2EbmkOqGI8Jw3lmBKi4xLUCxwuuyC0TGC4aOXFbXtH/vkB0qluTRNXIkIYD6fzbNz3OdWqP399IrYzFXFmRM2ofLwXRIGHS+mYHVOBC0H3mkPkN/jnTgqhhMBsheazJVpcLO2mlb4a+cU4vJZa1iP5ckJVMyCFn/+W6r0NHeVld8YUk5Lsrq8tjAu/L20a5wpHzbyx33xskgzSDxK1Mhg3DWEkIgUoqKJ2NEAVfQOr2dhz6l3nkZu8QjAXlTr55apZ9ybk6HDMJZTQjhVHvra8XFk6iKr4rWSV0cGaiXCSl2Z6HakSlzNdtOPwQNvVv036SsphIOd27ALEaiikdqgUun6yodJHkLEIKvC/XB6ubmYCekiXOGEIIWIzEw/ICwSkypZ54lPSY0wfSHnudwOsA4PUD2gkt8+cEDwTrIEOcUISqSZRQIZPSpP6PINT3l92lRHqolvBvaMWXT1PvS4LIk2aXn6wb64PFMpMJ4qHMYQxGjoij22j8zyemINslkJK0LixEBEtSmayuS4ZwmRIX8c9siqxku3ZMqKNWD2egX+nuhdqQSMejYcJ5BJkcSqqiVjFMMMxxBStFHM6Z53sb57+BAL9RZTYLxdOc5ysoC47xeJMVpVGsODp2iCJ1WqaJU8SdC2O29RZg76wAAAABJRU5ErkJggg==";
|
5275
5964
|
|
5276
5965
|
// src/Prebuilt/components/Streaming/HLSStreaming.jsx
|
5277
|
-
import
|
5278
|
-
import { selectRoomID, useHMSActions as
|
5966
|
+
import React63, { Fragment as Fragment11, useCallback as useCallback17, useEffect as useEffect25, useState as useState37 } from "react";
|
5967
|
+
import { selectRoomID, useHMSActions as useHMSActions23, useHMSStore as useHMSStore35, useRecordingStreaming as useRecordingStreaming6 } from "@100mslive/react-sdk";
|
5279
5968
|
import {
|
5280
5969
|
EndStreamIcon as EndStreamIcon2,
|
5281
5970
|
EyeOpenIcon,
|
@@ -5294,7 +5983,7 @@ var getCardData = (roleName, roomId) => {
|
|
5294
5983
|
data3 = {
|
5295
5984
|
title: formattedRoleName,
|
5296
5985
|
content: "Broadcasters can livestream audio or video, manage stream appearance and control the room via HLS.",
|
5297
|
-
icon: /* @__PURE__ */
|
5986
|
+
icon: /* @__PURE__ */ React63.createElement(SupportIcon, null)
|
5298
5987
|
};
|
5299
5988
|
break;
|
5300
5989
|
}
|
@@ -5302,7 +5991,7 @@ var getCardData = (roleName, roomId) => {
|
|
5302
5991
|
data3 = {
|
5303
5992
|
title: "HLS Viewer",
|
5304
5993
|
content: "Viewers can view and send chat messages, but need to be made broadcasters to participate with audio or video.",
|
5305
|
-
icon: /* @__PURE__ */
|
5994
|
+
icon: /* @__PURE__ */ React63.createElement(EyeOpenIcon, null)
|
5306
5995
|
};
|
5307
5996
|
break;
|
5308
5997
|
}
|
@@ -5310,7 +5999,7 @@ var getCardData = (roleName, roomId) => {
|
|
5310
5999
|
data3 = {
|
5311
6000
|
title: formattedRoleName,
|
5312
6001
|
content: `${formattedRoleName} is customised with specific permissions, which will determine how it interacts with this room.`,
|
5313
|
-
icon: /* @__PURE__ */
|
6002
|
+
icon: /* @__PURE__ */ React63.createElement(WrenchIcon, null),
|
5314
6003
|
order: 1
|
5315
6004
|
};
|
5316
6005
|
}
|
@@ -5318,8 +6007,8 @@ var getCardData = (roleName, roomId) => {
|
|
5318
6007
|
return data3;
|
5319
6008
|
};
|
5320
6009
|
var Card = ({ title, icon, link, content, isHLSRunning, order = 0 }) => {
|
5321
|
-
const [copied, setCopied] =
|
5322
|
-
return isHLSRunning ? /* @__PURE__ */
|
6010
|
+
const [copied, setCopied] = useState37(false);
|
6011
|
+
return isHLSRunning ? /* @__PURE__ */ React63.createElement(
|
5323
6012
|
Box,
|
5324
6013
|
{
|
5325
6014
|
key: title,
|
@@ -5330,9 +6019,9 @@ var Card = ({ title, icon, link, content, isHLSRunning, order = 0 }) => {
|
|
5330
6019
|
borderRadius: "$2"
|
5331
6020
|
}
|
5332
6021
|
},
|
5333
|
-
/* @__PURE__ */
|
5334
|
-
/* @__PURE__ */
|
5335
|
-
/* @__PURE__ */
|
6022
|
+
/* @__PURE__ */ React63.createElement(Flex, { align: "center", gap: "2", css: { color: "$primary_bright" } }, icon, /* @__PURE__ */ React63.createElement(Text, { variant: "h6", css: { fontWeight: "$semiBold" } }, title)),
|
6023
|
+
/* @__PURE__ */ React63.createElement(Text, { variant: "sm", css: { color: "$on_surface_medium", mt: "$6" } }, content),
|
6024
|
+
/* @__PURE__ */ React63.createElement(
|
5336
6025
|
Button,
|
5337
6026
|
{
|
5338
6027
|
variant: "standard",
|
@@ -5344,24 +6033,24 @@ var Card = ({ title, icon, link, content, isHLSRunning, order = 0 }) => {
|
|
5344
6033
|
css: { w: "100%", r: "$1", mt: "$10", fontWeight: "$semiBold" },
|
5345
6034
|
icon: true
|
5346
6035
|
},
|
5347
|
-
copied ? /* @__PURE__ */
|
6036
|
+
copied ? /* @__PURE__ */ React63.createElement(React63.Fragment, null, "Link copied!") : /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(LinkIcon, { style: { color: "inherit" } }), "Copy Invite Link")
|
5348
6037
|
)
|
5349
6038
|
) : null;
|
5350
6039
|
};
|
5351
6040
|
var HLSStreaming = ({ onBack }) => {
|
5352
6041
|
const roleNames = useFilteredRoles();
|
5353
|
-
const roomId =
|
6042
|
+
const roomId = useHMSStore35(selectRoomID);
|
5354
6043
|
const cards = roleNames.map((roleName) => getCardData(roleName, roomId));
|
5355
6044
|
const { isHLSRunning } = useRecordingStreaming6();
|
5356
|
-
const [showLinks, setShowLinks] =
|
5357
|
-
return !showLinks ? /* @__PURE__ */
|
6045
|
+
const [showLinks, setShowLinks] = useState37(false);
|
6046
|
+
return !showLinks ? /* @__PURE__ */ React63.createElement(Container, { rounded: true }, /* @__PURE__ */ React63.createElement(ContentHeader, { title: "Start Streaming", content: "HLS", onBack }), /* @__PURE__ */ React63.createElement(ContentBody, { title: "HLS Streaming", Icon: GoLiveIcon2, removeVerticalPadding: true }, "Stream directly from the browser using any device with multiple hosts and real-time messaging, all within this platform."), isHLSRunning ? /* @__PURE__ */ React63.createElement(EndHLS, { setShowLinks }) : /* @__PURE__ */ React63.createElement(StartHLS, null)) : /* @__PURE__ */ React63.createElement(Container, { rounded: true }, /* @__PURE__ */ React63.createElement(ContentHeader, { title: "Invite People", content: "Start the conversation", onBack: () => setShowLinks(false) }), /* @__PURE__ */ React63.createElement(Flex, { direction: "column", css: { gap: "$10", p: "$0 $10", overflowY: "auto", mb: "$10" } }, cards.map((card) => /* @__PURE__ */ React63.createElement(Card, __spreadProps(__spreadValues({ key: card.title }, card), { isHLSRunning })))));
|
5358
6047
|
};
|
5359
6048
|
var StartHLS = () => {
|
5360
|
-
const [record, setRecord] =
|
5361
|
-
const [error, setError] =
|
5362
|
-
const hmsActions =
|
6049
|
+
const [record, setRecord] = useState37(false);
|
6050
|
+
const [error, setError] = useState37(false);
|
6051
|
+
const hmsActions = useHMSActions23();
|
5363
6052
|
const [isHLSStarted, setHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);
|
5364
|
-
const startHLS =
|
6053
|
+
const startHLS = useCallback17(
|
5365
6054
|
(variants) => __async(void 0, null, function* () {
|
5366
6055
|
try {
|
5367
6056
|
if (isHLSStarted) {
|
@@ -5380,7 +6069,7 @@ var StartHLS = () => {
|
|
5380
6069
|
}),
|
5381
6070
|
[hmsActions, record, isHLSStarted, setHLSStarted]
|
5382
6071
|
);
|
5383
|
-
return /* @__PURE__ */
|
6072
|
+
return /* @__PURE__ */ React63.createElement(Fragment11, null, /* @__PURE__ */ React63.createElement(RecordStream, { record, setRecord, testId: "hls-recording" }), /* @__PURE__ */ React63.createElement(Box, { css: { p: "$4 $10" } }, /* @__PURE__ */ React63.createElement(ErrorText, { error }), /* @__PURE__ */ React63.createElement(
|
5384
6073
|
Button,
|
5385
6074
|
{
|
5386
6075
|
"data-testid": "start_hls",
|
@@ -5389,21 +6078,21 @@ var StartHLS = () => {
|
|
5389
6078
|
onClick: () => startHLS(),
|
5390
6079
|
disabled: isHLSStarted
|
5391
6080
|
},
|
5392
|
-
isHLSStarted ? /* @__PURE__ */
|
6081
|
+
isHLSStarted ? /* @__PURE__ */ React63.createElement(Loading, { size: 24, color: "currentColor" }) : /* @__PURE__ */ React63.createElement(GoLiveIcon2, null),
|
5393
6082
|
isHLSStarted ? "Starting stream..." : "Go Live"
|
5394
|
-
)), /* @__PURE__ */
|
6083
|
+
)), /* @__PURE__ */ React63.createElement(Flex, { align: "center", css: { p: "$4 $10" } }, /* @__PURE__ */ React63.createElement(Text, null, /* @__PURE__ */ React63.createElement(InfoIcon4, { width: 16, height: 16 })), /* @__PURE__ */ React63.createElement(Text, { variant: "tiny", color: "$on_surface_medium", css: { mx: "$8" } }, "You cannot start recording once the stream starts, you will have to stop the stream to enable recording.")));
|
5395
6084
|
};
|
5396
6085
|
var EndHLS = ({ setShowLinks }) => {
|
5397
|
-
const hmsActions =
|
5398
|
-
const [inProgress, setInProgress] =
|
5399
|
-
const [error, setError] =
|
6086
|
+
const hmsActions = useHMSActions23();
|
6087
|
+
const [inProgress, setInProgress] = useState37(false);
|
6088
|
+
const [error, setError] = useState37("");
|
5400
6089
|
const { isHLSRunning } = useRecordingStreaming6();
|
5401
|
-
|
6090
|
+
useEffect25(() => {
|
5402
6091
|
if (inProgress && !isHLSRunning) {
|
5403
6092
|
setInProgress(false);
|
5404
6093
|
}
|
5405
6094
|
}, [inProgress, isHLSRunning]);
|
5406
|
-
return /* @__PURE__ */
|
6095
|
+
return /* @__PURE__ */ React63.createElement(Box, { css: { p: "$4 $10" } }, /* @__PURE__ */ React63.createElement(ErrorText, { error }), /* @__PURE__ */ React63.createElement(
|
5407
6096
|
Button,
|
5408
6097
|
{
|
5409
6098
|
"data-testid": "stop_hls",
|
@@ -5422,23 +6111,23 @@ var EndHLS = ({ setShowLinks }) => {
|
|
5422
6111
|
}
|
5423
6112
|
})
|
5424
6113
|
},
|
5425
|
-
/* @__PURE__ */
|
6114
|
+
/* @__PURE__ */ React63.createElement(EndStreamIcon2, null),
|
5426
6115
|
"End Stream"
|
5427
|
-
), /* @__PURE__ */
|
6116
|
+
), /* @__PURE__ */ React63.createElement(Button, { icon: true, css: { w: "100%", r: "$0", mt: "$8" }, onClick: () => setShowLinks(true) }, /* @__PURE__ */ React63.createElement(PeopleIcon3, null), " Invite People"));
|
5428
6117
|
};
|
5429
6118
|
|
5430
6119
|
// src/Prebuilt/components/Streaming/StreamingLanding.jsx
|
5431
6120
|
var StreamingLanding = () => {
|
5432
6121
|
const toggleStreaming = useSidepaneToggle(SIDE_PANE_OPTIONS.STREAMING);
|
5433
6122
|
const { isHLSRunning, isRTMPRunning } = useRecordingStreaming7();
|
5434
|
-
const permissions =
|
5435
|
-
const [showHLS, setShowHLS] =
|
5436
|
-
const [showRTMP, setShowRTMP] =
|
6123
|
+
const permissions = useHMSStore36(selectPermissions13);
|
6124
|
+
const [showHLS, setShowHLS] = useState38(isHLSRunning);
|
6125
|
+
const [showRTMP, setShowRTMP] = useState38(isRTMPRunning);
|
5437
6126
|
if (!(permissions == null ? void 0 : permissions.hlsStreaming) && !(permissions == null ? void 0 : permissions.rtmpStreaming)) {
|
5438
6127
|
toggleStreaming();
|
5439
6128
|
return null;
|
5440
6129
|
}
|
5441
|
-
return /* @__PURE__ */
|
6130
|
+
return /* @__PURE__ */ React64.createElement(Fragment12, null, /* @__PURE__ */ React64.createElement(Flex, { css: { w: "100%", py: "$8" } }, /* @__PURE__ */ React64.createElement(
|
5442
6131
|
Box,
|
5443
6132
|
{
|
5444
6133
|
css: {
|
@@ -5448,8 +6137,8 @@ var StreamingLanding = () => {
|
|
5448
6137
|
r: "$round"
|
5449
6138
|
}
|
5450
6139
|
},
|
5451
|
-
/* @__PURE__ */
|
5452
|
-
), /* @__PURE__ */
|
6140
|
+
/* @__PURE__ */ React64.createElement(ColoredHandIcon, { width: 40, height: 40 })
|
6141
|
+
), /* @__PURE__ */ React64.createElement(Box, { css: { flex: "1 1 0", mx: "$8" } }, /* @__PURE__ */ React64.createElement(Text, { variant: "sm" }, "Welcome !"), /* @__PURE__ */ React64.createElement(Text, { variant: "h6" }, "Let\u2019s get you started")), /* @__PURE__ */ React64.createElement(IconButton_default, { onClick: toggleStreaming, css: { alignSelf: "flex-start" }, "data-testid": "close_streaming" }, /* @__PURE__ */ React64.createElement(CrossIcon10, null))), /* @__PURE__ */ React64.createElement(Text, { variant: "tiny", color: "$on_surface_medium" }, "Start Streaming"), (permissions == null ? void 0 : permissions.hlsStreaming) && /* @__PURE__ */ React64.createElement(
|
5453
6142
|
StreamCard,
|
5454
6143
|
{
|
5455
6144
|
testId: "hls_stream",
|
@@ -5459,7 +6148,7 @@ var StreamingLanding = () => {
|
|
5459
6148
|
onClick: () => setShowHLS(true),
|
5460
6149
|
Icon: GoLiveIcon3
|
5461
6150
|
}
|
5462
|
-
), (permissions == null ? void 0 : permissions.rtmpStreaming) && /* @__PURE__ */
|
6151
|
+
), (permissions == null ? void 0 : permissions.rtmpStreaming) && /* @__PURE__ */ React64.createElement(
|
5463
6152
|
StreamCard,
|
5464
6153
|
{
|
5465
6154
|
testId: "rtmp_stream",
|
@@ -5471,7 +6160,7 @@ var StreamingLanding = () => {
|
|
5471
6160
|
},
|
5472
6161
|
imgSrc: rtmp_default
|
5473
6162
|
}
|
5474
|
-
), showHLS && /* @__PURE__ */
|
6163
|
+
), showHLS && /* @__PURE__ */ React64.createElement(HLSStreaming, { onBack: () => setShowHLS(false) }), showRTMP && /* @__PURE__ */ React64.createElement(RTMPStreaming, { onBack: () => setShowRTMP(false) }));
|
5475
6164
|
};
|
5476
6165
|
|
5477
6166
|
// src/Prebuilt/layouts/SidePane.tsx
|
@@ -5481,16 +6170,16 @@ var SidePane = ({
|
|
5481
6170
|
hideControls = false
|
5482
6171
|
}) => {
|
5483
6172
|
var _a, _b;
|
5484
|
-
const isMobile =
|
5485
|
-
const sidepane =
|
5486
|
-
const activeScreensharePeerId =
|
5487
|
-
const trackId = (_a =
|
6173
|
+
const isMobile = useMedia20(config.media.md);
|
6174
|
+
const sidepane = useHMSStore37(selectAppData3(APP_DATA.sidePane));
|
6175
|
+
const activeScreensharePeerId = useHMSStore37(selectAppData3(APP_DATA.activeScreensharePeerId));
|
6176
|
+
const trackId = (_a = useHMSStore37(selectVideoTrackByPeerID3(activeScreensharePeerId))) == null ? void 0 : _a.id;
|
5488
6177
|
const { elements } = useRoomLayoutConferencingScreen();
|
5489
6178
|
let ViewComponent;
|
5490
6179
|
if (sidepane === SIDE_PANE_OPTIONS.PARTICIPANTS || sidepane === SIDE_PANE_OPTIONS.CHAT) {
|
5491
|
-
ViewComponent = /* @__PURE__ */
|
6180
|
+
ViewComponent = /* @__PURE__ */ React65.createElement(SidePaneTabs, { screenType, hideControls, active: sidepane });
|
5492
6181
|
} else if (sidepane === SIDE_PANE_OPTIONS.STREAMING) {
|
5493
|
-
ViewComponent = /* @__PURE__ */
|
6182
|
+
ViewComponent = /* @__PURE__ */ React65.createElement(StreamingLanding, null);
|
5494
6183
|
}
|
5495
6184
|
if (!ViewComponent && !trackId) {
|
5496
6185
|
return null;
|
@@ -5503,7 +6192,7 @@ var SidePane = ({
|
|
5503
6192
|
objectFit: tileProps == null ? void 0 : tileProps.video_object_fit
|
5504
6193
|
};
|
5505
6194
|
const mwebStreamingChat = isMobile && sidepane === SIDE_PANE_OPTIONS.CHAT && ((_b = elements == null ? void 0 : elements.chat) == null ? void 0 : _b.is_overlay);
|
5506
|
-
return /* @__PURE__ */
|
6195
|
+
return /* @__PURE__ */ React65.createElement(
|
5507
6196
|
Flex,
|
5508
6197
|
{
|
5509
6198
|
direction: "column",
|
@@ -5516,7 +6205,7 @@ var SidePane = ({
|
|
5516
6205
|
"@md": { position: mwebStreamingChat ? "absolute" : "", zIndex: 12 }
|
5517
6206
|
}
|
5518
6207
|
},
|
5519
|
-
trackId && /* @__PURE__ */
|
6208
|
+
trackId && /* @__PURE__ */ React65.createElement(
|
5520
6209
|
VideoTile_default,
|
5521
6210
|
__spreadValues({
|
5522
6211
|
peerId: activeScreensharePeerId,
|
@@ -5525,7 +6214,7 @@ var SidePane = ({
|
|
5525
6214
|
rootCSS: { p: 0, alignSelf: "start", flexShrink: 0 }
|
5526
6215
|
}, tileLayout)
|
5527
6216
|
),
|
5528
|
-
!!ViewComponent && /* @__PURE__ */
|
6217
|
+
!!ViewComponent && /* @__PURE__ */ React65.createElement(
|
5529
6218
|
Box,
|
5530
6219
|
{
|
5531
6220
|
css: {
|
@@ -5561,10 +6250,10 @@ var SidePane = ({
|
|
5561
6250
|
var SidePane_default = SidePane;
|
5562
6251
|
|
5563
6252
|
// src/Prebuilt/layouts/WaitingView.jsx
|
5564
|
-
import
|
6253
|
+
import React66 from "react";
|
5565
6254
|
import { ColoredTimeIcon } from "@100mslive/react-icons";
|
5566
|
-
var WaitingView =
|
5567
|
-
return /* @__PURE__ */
|
6255
|
+
var WaitingView = React66.memo(() => {
|
6256
|
+
return /* @__PURE__ */ React66.createElement(
|
5568
6257
|
Box,
|
5569
6258
|
{
|
5570
6259
|
css: {
|
@@ -5578,7 +6267,7 @@ var WaitingView = React61.memo(() => {
|
|
5578
6267
|
},
|
5579
6268
|
"data-testid": "waiting_view"
|
5580
6269
|
},
|
5581
|
-
/* @__PURE__ */
|
6270
|
+
/* @__PURE__ */ React66.createElement(
|
5582
6271
|
Flex,
|
5583
6272
|
{
|
5584
6273
|
align: "center",
|
@@ -5592,8 +6281,8 @@ var WaitingView = React61.memo(() => {
|
|
5592
6281
|
gap: "$8"
|
5593
6282
|
}
|
5594
6283
|
},
|
5595
|
-
/* @__PURE__ */
|
5596
|
-
/* @__PURE__ */
|
6284
|
+
/* @__PURE__ */ React66.createElement(ColoredTimeIcon, { width: "80px", height: "80px" }),
|
6285
|
+
/* @__PURE__ */ React66.createElement(
|
5597
6286
|
Flex,
|
5598
6287
|
{
|
5599
6288
|
direction: "column",
|
@@ -5603,28 +6292,28 @@ var WaitingView = React61.memo(() => {
|
|
5603
6292
|
gap: "$4"
|
5604
6293
|
}
|
5605
6294
|
},
|
5606
|
-
/* @__PURE__ */
|
5607
|
-
/* @__PURE__ */
|
6295
|
+
/* @__PURE__ */ React66.createElement(Text, { color: "white", variant: "h6", css: { "@md": { fontSize: "$md" } } }, "Please wait"),
|
6296
|
+
/* @__PURE__ */ React66.createElement(Text, { color: "$on_surface_medium", css: { mt: "$4", "@md": { fontSize: "$sm" } } }, "Sit back and relax till others let you join.")
|
5608
6297
|
)
|
5609
6298
|
)
|
5610
6299
|
);
|
5611
6300
|
});
|
5612
6301
|
|
5613
6302
|
// src/Prebuilt/layouts/VideoStreamingSection.tsx
|
5614
|
-
var HLSView =
|
6303
|
+
var HLSView = React67.lazy(() => import("./HLSView-IQRPLYNH.js"));
|
5615
6304
|
var VideoStreamingSection = ({
|
5616
6305
|
screenType,
|
5617
6306
|
elements,
|
5618
6307
|
hideControls = false
|
5619
6308
|
}) => {
|
5620
6309
|
var _a, _b;
|
5621
|
-
const localPeerRole =
|
5622
|
-
const isConnected =
|
5623
|
-
const hmsActions =
|
6310
|
+
const localPeerRole = useHMSStore38(selectLocalPeerRoleName3);
|
6311
|
+
const isConnected = useHMSStore38(selectIsConnectedToRoom6);
|
6312
|
+
const hmsActions = useHMSActions24();
|
5624
6313
|
const waitingViewerRole = useWaitingViewerRole();
|
5625
6314
|
const urlToIframe = useUrlToEmbed();
|
5626
6315
|
const pdfAnnotatorActive = usePDFAnnotator();
|
5627
|
-
|
6316
|
+
useEffect26(() => {
|
5628
6317
|
if (!isConnected) {
|
5629
6318
|
return;
|
5630
6319
|
}
|
@@ -5635,17 +6324,17 @@ var VideoStreamingSection = ({
|
|
5635
6324
|
}
|
5636
6325
|
let ViewComponent;
|
5637
6326
|
if (screenType === "hls_live_streaming") {
|
5638
|
-
ViewComponent = /* @__PURE__ */
|
6327
|
+
ViewComponent = /* @__PURE__ */ React67.createElement(HLSView, null);
|
5639
6328
|
} else if (localPeerRole === waitingViewerRole) {
|
5640
|
-
ViewComponent = /* @__PURE__ */
|
6329
|
+
ViewComponent = /* @__PURE__ */ React67.createElement(WaitingView, null);
|
5641
6330
|
} else if (pdfAnnotatorActive) {
|
5642
|
-
ViewComponent = /* @__PURE__ */
|
6331
|
+
ViewComponent = /* @__PURE__ */ React67.createElement(PDFView, null);
|
5643
6332
|
} else if (urlToIframe) {
|
5644
|
-
ViewComponent = /* @__PURE__ */
|
6333
|
+
ViewComponent = /* @__PURE__ */ React67.createElement(EmbedView, null);
|
5645
6334
|
} else {
|
5646
|
-
ViewComponent = /* @__PURE__ */
|
6335
|
+
ViewComponent = /* @__PURE__ */ React67.createElement(GridLayout, __spreadValues({}, (_a = elements == null ? void 0 : elements.video_tile_layout) == null ? void 0 : _a.grid));
|
5647
6336
|
}
|
5648
|
-
return /* @__PURE__ */
|
6337
|
+
return /* @__PURE__ */ React67.createElement(Suspense2, { fallback: /* @__PURE__ */ React67.createElement(FullPageProgress_default, null) }, /* @__PURE__ */ React67.createElement(
|
5649
6338
|
Flex,
|
5650
6339
|
{
|
5651
6340
|
css: {
|
@@ -5655,7 +6344,7 @@ var VideoStreamingSection = ({
|
|
5655
6344
|
}
|
5656
6345
|
},
|
5657
6346
|
ViewComponent,
|
5658
|
-
/* @__PURE__ */
|
6347
|
+
/* @__PURE__ */ React67.createElement(
|
5659
6348
|
SidePane_default,
|
5660
6349
|
{
|
5661
6350
|
screenType,
|
@@ -5674,17 +6363,17 @@ var Conference = () => {
|
|
5674
6363
|
const { userName, endpoints } = useHMSPrebuiltContext();
|
5675
6364
|
const screenProps = useRoomLayoutConferencingScreen();
|
5676
6365
|
const { isPreviewScreenEnabled } = useRoomLayoutPreviewScreen();
|
5677
|
-
const roomState =
|
6366
|
+
const roomState = useHMSStore39(selectRoomState);
|
5678
6367
|
const prevState = usePrevious(roomState);
|
5679
|
-
const isConnectedToRoom =
|
5680
|
-
const hmsActions =
|
5681
|
-
const [hideControls, setHideControls] =
|
5682
|
-
const dropdownList =
|
6368
|
+
const isConnectedToRoom = useHMSStore39(selectIsConnectedToRoom7);
|
6369
|
+
const hmsActions = useHMSActions25();
|
6370
|
+
const [hideControls, setHideControls] = useState39(false);
|
6371
|
+
const dropdownList = useHMSStore39(selectAppData4(APP_DATA.dropdownList));
|
5683
6372
|
const authTokenInAppData = useAuthToken();
|
5684
|
-
const headerRef =
|
5685
|
-
const footerRef =
|
6373
|
+
const headerRef = useRef16();
|
6374
|
+
const footerRef = useRef16();
|
5686
6375
|
const isMobileDevice = isAndroid || isIOS || isIPadOS;
|
5687
|
-
const dropdownListRef =
|
6376
|
+
const dropdownListRef = useRef16();
|
5688
6377
|
const [isHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);
|
5689
6378
|
const toggleControls = () => {
|
5690
6379
|
var _a2;
|
@@ -5692,8 +6381,8 @@ var Conference = () => {
|
|
5692
6381
|
setHideControls((value) => !value);
|
5693
6382
|
}
|
5694
6383
|
};
|
5695
|
-
const autoRoomJoined =
|
5696
|
-
|
6384
|
+
const autoRoomJoined = useRef16(isPreviewScreenEnabled);
|
6385
|
+
useEffect27(() => {
|
5697
6386
|
let timeout = null;
|
5698
6387
|
dropdownListRef.current = dropdownList || [];
|
5699
6388
|
if (dropdownListRef.current.length === 0) {
|
@@ -5708,7 +6397,7 @@ var Conference = () => {
|
|
5708
6397
|
clearTimeout(timeout);
|
5709
6398
|
};
|
5710
6399
|
}, [dropdownList, hideControls, isMobileDevice]);
|
5711
|
-
|
6400
|
+
useEffect27(() => {
|
5712
6401
|
if (!roomId) {
|
5713
6402
|
navigate(`/`);
|
5714
6403
|
return;
|
@@ -5723,7 +6412,7 @@ var Conference = () => {
|
|
5723
6412
|
navigate(`/preview/${roomId || ""}`);
|
5724
6413
|
}
|
5725
6414
|
}, [isConnectedToRoom, prevState, roomState, navigate, role, roomId, isPreviewScreenEnabled]);
|
5726
|
-
|
6415
|
+
useEffect27(() => {
|
5727
6416
|
if (authTokenInAppData && !isConnectedToRoom && !isPreviewScreenEnabled && roomState !== HMSRoomState.Connecting && !autoRoomJoined.current) {
|
5728
6417
|
hmsActions.join({
|
5729
6418
|
userName,
|
@@ -5738,15 +6427,15 @@ var Conference = () => {
|
|
5738
6427
|
autoRoomJoined.current = true;
|
5739
6428
|
}
|
5740
6429
|
}, [authTokenInAppData, endpoints == null ? void 0 : endpoints.init, hmsActions, isConnectedToRoom, isPreviewScreenEnabled, roomState, userName]);
|
5741
|
-
|
6430
|
+
useEffect27(() => {
|
5742
6431
|
return () => {
|
5743
6432
|
PictureInPicture.stop().catch((error) => console.error("stopping pip", error));
|
5744
6433
|
};
|
5745
6434
|
}, []);
|
5746
6435
|
if (!isConnectedToRoom) {
|
5747
|
-
return /* @__PURE__ */
|
6436
|
+
return /* @__PURE__ */ React68.createElement(FullPageProgress_default, { text: "Joining..." });
|
5748
6437
|
}
|
5749
|
-
return /* @__PURE__ */
|
6438
|
+
return /* @__PURE__ */ React68.createElement(React68.Fragment, null, isHLSStarted ? /* @__PURE__ */ React68.createElement(Box, { css: { position: "fixed", zIndex: 100, w: "100%", h: "100%", left: 0, top: 0 } }, /* @__PURE__ */ React68.createElement(FullPageProgress_default, { text: "Starting live stream...", css: { opacity: 0.8, bg: "$background_dim" } })) : null, /* @__PURE__ */ React68.createElement(Flex, { css: { size: "100%", overflow: "hidden" }, direction: "column" }, !screenProps.hideSections.includes("header") && /* @__PURE__ */ React68.createElement(
|
5750
6439
|
Box,
|
5751
6440
|
{
|
5752
6441
|
ref: headerRef,
|
@@ -5760,8 +6449,8 @@ var Conference = () => {
|
|
5760
6449
|
},
|
5761
6450
|
"data-testid": "header"
|
5762
6451
|
},
|
5763
|
-
/* @__PURE__ */
|
5764
|
-
), /* @__PURE__ */
|
6452
|
+
/* @__PURE__ */ React68.createElement(Header, { elements: screenProps.elements, screenType: screenProps.screenType })
|
6453
|
+
), /* @__PURE__ */ React68.createElement(
|
5765
6454
|
Box,
|
5766
6455
|
{
|
5767
6456
|
css: {
|
@@ -5779,7 +6468,7 @@ var Conference = () => {
|
|
5779
6468
|
"data-testid": "conferencing",
|
5780
6469
|
onClick: toggleControls
|
5781
6470
|
},
|
5782
|
-
/* @__PURE__ */
|
6471
|
+
/* @__PURE__ */ React68.createElement(
|
5783
6472
|
VideoStreamingSection,
|
5784
6473
|
{
|
5785
6474
|
screenType: screenProps.screenType,
|
@@ -5787,7 +6476,7 @@ var Conference = () => {
|
|
5787
6476
|
hideControls
|
5788
6477
|
}
|
5789
6478
|
)
|
5790
|
-
), !screenProps.hideSections.includes("footer") && /* @__PURE__ */
|
6479
|
+
), !screenProps.hideSections.includes("footer") && /* @__PURE__ */ React68.createElement(
|
5791
6480
|
Box,
|
5792
6481
|
{
|
5793
6482
|
ref: footerRef,
|
@@ -5804,11 +6493,11 @@ var Conference = () => {
|
|
5804
6493
|
},
|
5805
6494
|
"data-testid": "footer"
|
5806
6495
|
},
|
5807
|
-
/* @__PURE__ */
|
5808
|
-
), /* @__PURE__ */
|
6496
|
+
/* @__PURE__ */ React68.createElement(Footer2, { elements: screenProps.elements, screenType: screenProps.screenType })
|
6497
|
+
), /* @__PURE__ */ React68.createElement(RoleChangeRequestModal, null), /* @__PURE__ */ React68.createElement(HLSFailureModal, null), /* @__PURE__ */ React68.createElement(ActivatedPIP, null)));
|
5809
6498
|
};
|
5810
6499
|
var conference_default = Conference;
|
5811
6500
|
export {
|
5812
6501
|
conference_default as default
|
5813
6502
|
};
|
5814
|
-
//# sourceMappingURL=conference-
|
6503
|
+
//# sourceMappingURL=conference-JD35TNH4.js.map
|