@100mslive/roomkit-react 0.3.22-alpha.0 → 0.3.22-alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/Accordion/Accordion.d.ts +134 -322
- package/dist/Accordion/index.d.ts +134 -322
- package/dist/Avatar/Avatar.d.ts +47 -141
- package/dist/Button/Button.d.ts +47 -141
- package/dist/Checkbox/Checkbox.d.ts +134 -322
- package/dist/Collapsible/Collapsible.d.ts +201 -483
- package/dist/ConferenceScreen-5G5WGPIO.css +2780 -0
- package/dist/{HLSView-JYFTZVCM.css.map → ConferenceScreen-5G5WGPIO.css.map} +1 -1
- package/dist/ConferenceScreen-KS5URW6Z.js +1778 -0
- package/dist/ConferenceScreen-KS5URW6Z.js.map +7 -0
- package/dist/Divider/Divider.d.ts +134 -322
- package/dist/Dropdown/Dropdown.d.ts +804 -1932
- package/dist/EmbedView-BCRQ3GHV.js +17 -0
- package/dist/EmbedView-BCRQ3GHV.js.map +7 -0
- package/dist/EmbedView-Y24VRONT.css +2780 -0
- package/dist/EmbedView-Y24VRONT.css.map +7 -0
- package/dist/EmojiReaction-NA5F5DWN.js +11 -0
- package/dist/EmojiReaction-NA5F5DWN.js.map +7 -0
- package/dist/Fieldset/Fieldset.d.ts +47 -141
- package/dist/Footer/Footer.d.ts +536 -1288
- package/dist/{HLSView-JYFTZVCM.css → HLSView-DC43TOIW.css} +3 -3
- package/dist/HLSView-DC43TOIW.css.map +7 -0
- package/dist/{HLSView-EPPGI6XI.js → HLSView-XRGOWFRB.js} +38 -24
- package/dist/HLSView-XRGOWFRB.js.map +7 -0
- package/dist/IconButton/IconButton.d.ts +47 -141
- package/dist/Input/Input.d.ts +362 -926
- package/dist/Label/Label.d.ts +47 -141
- package/dist/Layout/Box.d.ts +47 -141
- package/dist/Layout/Flex.d.ts +47 -141
- package/dist/LeaveScreen-3OZN3MU3.css +2780 -0
- package/dist/LeaveScreen-3OZN3MU3.css.map +7 -0
- package/dist/LeaveScreen-PC4KB6OG.js +556 -0
- package/dist/LeaveScreen-PC4KB6OG.js.map +7 -0
- package/dist/Link/Link.d.ts +47 -141
- package/dist/Modal/Dialog.d.ts +329 -987
- package/dist/Modal/DialogContent.d.ts +469 -1127
- package/dist/MoreSettings-KTRYHDB2.css +2780 -0
- package/dist/MoreSettings-KTRYHDB2.css.map +7 -0
- package/dist/MoreSettings-XLNYT7PW.js +16 -0
- package/dist/MoreSettings-XLNYT7PW.js.map +7 -0
- package/dist/PDFView-LJ7I3K3H.js +84 -0
- package/dist/PDFView-LJ7I3K3H.js.map +7 -0
- package/dist/PDFView-RJK44WVO.css +2780 -0
- package/dist/PDFView-RJK44WVO.css.map +7 -0
- package/dist/Pagination/StyledPagination.d.ts +268 -644
- package/dist/Polls-AULCHMLW.js +1584 -0
- package/dist/Polls-AULCHMLW.js.map +7 -0
- package/dist/Polls-K4GO5ZOC.css +2780 -0
- package/dist/Polls-K4GO5ZOC.css.map +7 -0
- package/dist/Popover/index.d.ts +201 -483
- package/dist/Prebuilt/IconButton.d.ts +134 -322
- package/dist/Prebuilt/components/Chat/ChatBody.d.ts +134 -322
- package/dist/Prebuilt/components/Leave/LeaveAtoms.d.ts +335 -805
- package/dist/Prebuilt/components/Notifications/DeviceChangeNotifications.d.ts +1 -0
- package/dist/Prebuilt/components/Notifications/DeviceInUseError.d.ts +2 -0
- package/dist/Prebuilt/components/Notifications/ErrorNotifications.d.ts +1 -0
- package/dist/Prebuilt/components/Notifications/MessageNotifications.d.ts +1 -0
- package/dist/Prebuilt/components/Notifications/PollNotificationModal.d.ts +1 -0
- package/dist/Prebuilt/components/Settings/common.d.ts +134 -322
- package/dist/Progress/index.d.ts +134 -322
- package/dist/RadioGroup/RadioGroup.d.ts +201 -483
- package/dist/RaiseHand-E4OVMBW6.js +10 -0
- package/dist/RaiseHand-E4OVMBW6.js.map +7 -0
- package/dist/ReactSelect/ReactSelect.d.ts +670 -1610
- package/dist/RoleProminence-LHUXHLVI.css +2780 -0
- package/dist/RoleProminence-LHUXHLVI.css.map +7 -0
- package/dist/RoleProminence-RWJP2Z36.js +116 -0
- package/dist/RoleProminence-RWJP2Z36.js.map +7 -0
- package/dist/RoomDetailsPane-6BM2FPWW.css +2780 -0
- package/dist/RoomDetailsPane-6BM2FPWW.css.map +7 -0
- package/dist/RoomDetailsPane-7OP2CNJW.js +53 -0
- package/dist/RoomDetailsPane-7OP2CNJW.js.map +7 -0
- package/dist/ScreenshareLayout-RHTD2PQT.css +2780 -0
- package/dist/ScreenshareLayout-RHTD2PQT.css.map +7 -0
- package/dist/ScreenshareLayout-TM7DLYLH.js +358 -0
- package/dist/ScreenshareLayout-TM7DLYLH.js.map +7 -0
- package/dist/Select/Select.d.ts +201 -483
- package/dist/Sheet/Sheet.d.ts +329 -987
- package/dist/SidePaneTabs-T7BKZ2AT.js +1354 -0
- package/dist/SidePaneTabs-T7BKZ2AT.js.map +7 -0
- package/dist/SidePaneTabs-TBUPHNAU.css +2780 -0
- package/dist/SidePaneTabs-TBUPHNAU.css.map +7 -0
- package/dist/Slider/Slider.d.ts +47 -141
- package/dist/Stats/StyledStats.d.ts +402 -966
- package/dist/Switch/Switch.d.ts +47 -141
- package/dist/Tabs/Tabs.d.ts +268 -644
- package/dist/Text/Text.d.ts +47 -141
- package/dist/TextArea/TextArea.d.ts +47 -141
- package/dist/Theme/base.config.d.ts +26 -78
- package/dist/Theme/stitches.config.d.ts +1046 -1493
- package/dist/TileMenu/StyledMenuTile.d.ts +469 -1127
- package/dist/Toast/Toast.d.ts +382 -946
- package/dist/VBPicker-M5VYFEUB.css +2780 -0
- package/dist/VBPicker-M5VYFEUB.css.map +7 -0
- package/dist/VBPicker-TQLIL3NC.js +322 -0
- package/dist/VBPicker-TQLIL3NC.js.map +7 -0
- package/dist/Video/Video.d.ts +47 -141
- package/dist/VideoList/StyledVideoList.d.ts +201 -483
- package/dist/VideoTile/StyledVideoTile.d.ts +670 -1610
- package/dist/WaitingView-TLJ52XYA.js +10 -0
- package/dist/WaitingView-TLJ52XYA.js.map +7 -0
- package/dist/WhiteboardLayout-PZZTM2FW.css +2780 -0
- package/dist/WhiteboardLayout-PZZTM2FW.css.map +7 -0
- package/dist/WhiteboardLayout-YYZ5UVGG.js +96 -0
- package/dist/WhiteboardLayout-YYZ5UVGG.js.map +7 -0
- package/dist/android-perm-1.png +0 -0
- package/dist/audio-level.png +0 -0
- package/dist/chunk-42XPBCZO.js +487 -0
- package/dist/chunk-42XPBCZO.js.map +7 -0
- package/dist/chunk-4BQ3AMVG.js +16802 -0
- package/dist/chunk-4BQ3AMVG.js.map +7 -0
- package/dist/chunk-4L5OKEIV.js +90 -0
- package/dist/chunk-4L5OKEIV.js.map +7 -0
- package/dist/chunk-6BX3VCVC.js +6337 -0
- package/dist/chunk-6BX3VCVC.js.map +7 -0
- package/dist/chunk-A3COGXMF.js +114 -0
- package/dist/chunk-A3COGXMF.js.map +7 -0
- package/dist/chunk-B3HHL3ND.js +178 -0
- package/dist/chunk-B3HHL3ND.js.map +7 -0
- package/dist/chunk-B5NLX6N6.js +41 -0
- package/dist/chunk-B5NLX6N6.js.map +7 -0
- package/dist/chunk-BXBPZGSP.js +161 -0
- package/dist/chunk-BXBPZGSP.js.map +7 -0
- package/dist/chunk-DVVFWHQG.js +136 -0
- package/dist/chunk-DVVFWHQG.js.map +7 -0
- package/dist/chunk-GV2DTYSU.js +262 -0
- package/dist/chunk-GV2DTYSU.js.map +7 -0
- package/dist/chunk-KF2YEUWU.js +254 -0
- package/dist/chunk-KF2YEUWU.js.map +7 -0
- package/dist/chunk-KQXTIHI6.js +59 -0
- package/dist/chunk-KQXTIHI6.js.map +7 -0
- package/dist/chunk-MR3HE7HV.js +830 -0
- package/dist/chunk-MR3HE7HV.js.map +7 -0
- package/dist/chunk-OQBTPJPO.js +71 -0
- package/dist/chunk-OQBTPJPO.js.map +7 -0
- package/dist/chunk-P7OOTR7P.js +2595 -0
- package/dist/chunk-P7OOTR7P.js.map +7 -0
- package/dist/chunk-THDU2DKP.js +30 -0
- package/dist/chunk-THDU2DKP.js.map +7 -0
- package/dist/chunk-U4QYH2BP.js +98 -0
- package/dist/chunk-U4QYH2BP.js.map +7 -0
- package/dist/chunk-USEEH3QW.js +418 -0
- package/dist/chunk-USEEH3QW.js.map +7 -0
- package/dist/chunk-UZW3C3ML.js +171 -0
- package/dist/chunk-UZW3C3ML.js.map +7 -0
- package/dist/chunk-YDIB6WKJ.js +576 -0
- package/dist/chunk-YDIB6WKJ.js.map +7 -0
- package/dist/chunk-ZFTULCCP.js +62 -0
- package/dist/chunk-ZFTULCCP.js.map +7 -0
- package/dist/empty-chat.svg +12 -0
- package/dist/index.cjs.css +2 -2
- package/dist/index.cjs.css.map +1 -1
- package/dist/index.cjs.js +22737 -22481
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/index.js +25 -15
- package/dist/ios-perm-0.png +0 -0
- package/dist/meta.cjs.json +5680 -5307
- package/dist/meta.esbuild.json +8824 -5953
- package/dist/pdf-share.png +0 -0
- package/dist/screen-share.png +0 -0
- package/dist/transaction_error.svg +12 -0
- package/package.json +8 -8
- package/src/Avatar/Avatar.tsx +1 -1
- package/src/Popover/Popover.stories.tsx +1 -1
- package/src/Prebuilt/App.tsx +6 -2
- package/src/Prebuilt/components/Chat/Chat.tsx +12 -8
- package/src/Prebuilt/components/Chat/ChatFooter.tsx +1 -1
- package/src/Prebuilt/components/Header/common.jsx +6 -5
- package/src/Prebuilt/components/Notifications/DeviceChangeNotifications.tsx +18 -0
- package/src/Prebuilt/components/Notifications/DeviceInUseError.tsx +79 -0
- package/src/Prebuilt/components/Notifications/ErrorNotifications.tsx +56 -0
- package/src/Prebuilt/components/Notifications/MessageNotifications.tsx +24 -0
- package/src/Prebuilt/components/Notifications/Notifications.tsx +13 -159
- package/src/Prebuilt/components/Notifications/PeerNotifications.tsx +23 -2
- package/src/Prebuilt/components/Notifications/PollNotificationModal.tsx +71 -0
- package/src/Prebuilt/components/Notifications/ReconnectNotifications.tsx +1 -5
- package/src/Prebuilt/components/Notifications/TrackBulkUnmuteModal.tsx +7 -5
- package/src/Prebuilt/components/Notifications/TrackNotifications.tsx +23 -1
- package/src/Prebuilt/components/Notifications/TrackUnmuteModal.tsx +13 -5
- package/src/Prebuilt/components/StatsForNerds.jsx +32 -3
- package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +43 -31
- package/src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx +2 -2
- package/src/Prebuilt/components/VirtualBackground/VBOption.tsx +3 -1
- package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +6 -0
- package/src/Prebuilt/layouts/HLSView.jsx +1 -0
- package/src/Prebuilt/layouts/PDFView.jsx +1 -0
- package/src/Prebuilt/layouts/SidePane.tsx +12 -6
- package/src/Prebuilt/layouts/VideoStreamingSection.tsx +35 -34
- package/dist/HLSView-EPPGI6XI.js.map +0 -7
- package/dist/chunk-ZAX5VT7V.js +0 -34686
- package/dist/chunk-ZAX5VT7V.js.map +0 -7
@@ -0,0 +1,71 @@
|
|
1
|
+
import React, { useEffect } from 'react';
|
2
|
+
import {
|
3
|
+
HMSNotificationTypes,
|
4
|
+
selectLocalPeerID,
|
5
|
+
selectPeerNameByID,
|
6
|
+
useHMSNotifications,
|
7
|
+
useHMSStore,
|
8
|
+
useHMSVanillaStore,
|
9
|
+
} from '@100mslive/react-sdk';
|
10
|
+
import { Button } from '../../../Button';
|
11
|
+
// @ts-ignore: No implicit Any
|
12
|
+
import { ToastManager } from '../Toast/ToastManager';
|
13
|
+
import { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';
|
14
|
+
// @ts-ignore: No implicit Any
|
15
|
+
import { usePollViewToggle } from '../AppData/useSidepane';
|
16
|
+
|
17
|
+
const notificationTypes = [HMSNotificationTypes.POLL_STARTED, HMSNotificationTypes.POLL_STOPPED];
|
18
|
+
|
19
|
+
const pollToastKey: Record<string, string> = {};
|
20
|
+
|
21
|
+
export const PollNotificationModal = () => {
|
22
|
+
const togglePollView = usePollViewToggle();
|
23
|
+
const localPeerID = useHMSStore(selectLocalPeerID);
|
24
|
+
const vanillaStore = useHMSVanillaStore();
|
25
|
+
const screenProps = useRoomLayoutConferencingScreen();
|
26
|
+
|
27
|
+
const notification = useHMSNotifications(notificationTypes);
|
28
|
+
|
29
|
+
useEffect(() => {
|
30
|
+
switch (notification?.type) {
|
31
|
+
case HMSNotificationTypes.POLL_STARTED:
|
32
|
+
if (notification.data.startedBy !== localPeerID && screenProps.screenType !== 'hls_live_streaming') {
|
33
|
+
const pollStartedBy = vanillaStore.getState(selectPeerNameByID(notification.data.startedBy)) || 'Participant';
|
34
|
+
|
35
|
+
const pollToastID = ToastManager.addToast({
|
36
|
+
title: `${pollStartedBy} started a ${notification.data.type}: ${notification.data.title}`,
|
37
|
+
action: (
|
38
|
+
<Button
|
39
|
+
onClick={() => togglePollView(notification.data.id)}
|
40
|
+
variant="standard"
|
41
|
+
css={{
|
42
|
+
backgroundColor: '$surface_bright',
|
43
|
+
fontWeight: '$semiBold',
|
44
|
+
color: '$on_surface_high',
|
45
|
+
p: '$xs $md',
|
46
|
+
}}
|
47
|
+
>
|
48
|
+
{notification.data.type === 'quiz' ? 'Answer' : 'Vote'}
|
49
|
+
</Button>
|
50
|
+
),
|
51
|
+
duration: Infinity,
|
52
|
+
});
|
53
|
+
pollToastKey[notification.data.id] = pollToastID;
|
54
|
+
}
|
55
|
+
break;
|
56
|
+
case HMSNotificationTypes.POLL_STOPPED:
|
57
|
+
{
|
58
|
+
const pollID = notification?.data.id;
|
59
|
+
if (pollID && pollToastKey?.[pollID]) {
|
60
|
+
ToastManager.removeToast(pollToastKey?.[notification.data.id]);
|
61
|
+
delete pollToastKey[notification?.data.id];
|
62
|
+
}
|
63
|
+
}
|
64
|
+
break;
|
65
|
+
default:
|
66
|
+
break;
|
67
|
+
}
|
68
|
+
}, [notification]);
|
69
|
+
|
70
|
+
return null;
|
71
|
+
};
|
@@ -5,11 +5,7 @@ import { ToastConfig } from '../Toast/ToastConfig';
|
|
5
5
|
// @ts-ignore: No implicit Any
|
6
6
|
import { ToastManager } from '../Toast/ToastManager';
|
7
7
|
|
8
|
-
const notificationTypes = [
|
9
|
-
HMSNotificationTypes.RECONNECTED,
|
10
|
-
HMSNotificationTypes.RECONNECTING,
|
11
|
-
HMSNotificationTypes.ERROR,
|
12
|
-
];
|
8
|
+
const notificationTypes = [HMSNotificationTypes.RECONNECTED, HMSNotificationTypes.RECONNECTING];
|
13
9
|
let notificationId: string | null = null;
|
14
10
|
|
15
11
|
export const ReconnectNotifications = () => {
|
@@ -9,14 +9,16 @@ import { MicOnIcon } from '@100mslive/react-icons';
|
|
9
9
|
// @ts-ignore: No implicit Any
|
10
10
|
import { RequestDialog } from '../../primitives/DialogContent';
|
11
11
|
|
12
|
+
const notificationTypes = [
|
13
|
+
HMSNotificationTypes.CHANGE_MULTI_TRACK_STATE_REQUEST,
|
14
|
+
HMSNotificationTypes.ROOM_ENDED,
|
15
|
+
HMSNotificationTypes.REMOVED_FROM_ROOM,
|
16
|
+
];
|
17
|
+
|
12
18
|
export const TrackBulkUnmuteModal = () => {
|
13
19
|
const hmsActions = useHMSActions();
|
14
20
|
const [muteNotification, setMuteNotification] = useState<HMSChangeMultiTrackStateRequest | null>(null);
|
15
|
-
const notification = useHMSNotifications(
|
16
|
-
HMSNotificationTypes.CHANGE_MULTI_TRACK_STATE_REQUEST,
|
17
|
-
HMSNotificationTypes.ROOM_ENDED,
|
18
|
-
HMSNotificationTypes.REMOVED_FROM_ROOM,
|
19
|
-
]);
|
21
|
+
const notification = useHMSNotifications(notificationTypes);
|
20
22
|
|
21
23
|
useEffect(() => {
|
22
24
|
switch (notification?.type) {
|
@@ -1,17 +1,39 @@
|
|
1
1
|
import { useEffect } from 'react';
|
2
2
|
import { HMSNotificationTypes, useHMSNotifications } from '@100mslive/react-sdk';
|
3
|
+
// @ts-ignore: No implicit Any
|
4
|
+
import { ToastManager } from '../Toast/ToastManager';
|
3
5
|
|
4
6
|
const notificationTypes = [
|
5
7
|
HMSNotificationTypes.TRACK_ADDED,
|
6
8
|
HMSNotificationTypes.TRACK_REMOVED,
|
7
9
|
HMSNotificationTypes.TRACK_MUTED,
|
8
10
|
HMSNotificationTypes.TRACK_UNMUTED,
|
11
|
+
HMSNotificationTypes.CHANGE_TRACK_STATE_REQUEST,
|
9
12
|
];
|
13
|
+
|
10
14
|
export const TrackNotifications = () => {
|
11
15
|
const notification = useHMSNotifications(notificationTypes);
|
12
16
|
useEffect(() => {
|
13
17
|
if (notification) {
|
14
|
-
|
18
|
+
switch (notification.type) {
|
19
|
+
case HMSNotificationTypes.TRACK_ADDED:
|
20
|
+
case HMSNotificationTypes.TRACK_REMOVED:
|
21
|
+
case HMSNotificationTypes.TRACK_MUTED:
|
22
|
+
case HMSNotificationTypes.TRACK_UNMUTED:
|
23
|
+
console.debug(`[${notification.type}]`, notification);
|
24
|
+
break;
|
25
|
+
case HMSNotificationTypes.CHANGE_TRACK_STATE_REQUEST:
|
26
|
+
{
|
27
|
+
const track = notification.data?.track;
|
28
|
+
if (!notification.data.enabled) {
|
29
|
+
ToastManager.addToast({
|
30
|
+
title: `Your ${track.source} ${track.type} was muted by
|
31
|
+
${notification.data.requestedBy?.name}.`,
|
32
|
+
});
|
33
|
+
}
|
34
|
+
}
|
35
|
+
break;
|
36
|
+
}
|
15
37
|
}
|
16
38
|
}, [notification]);
|
17
39
|
|
@@ -8,20 +8,28 @@ import {
|
|
8
8
|
import { MicOnIcon } from '@100mslive/react-icons';
|
9
9
|
// @ts-ignore: No implicit Any
|
10
10
|
import { RequestDialog } from '../../primitives/DialogContent';
|
11
|
+
// @ts-ignore: No implicit Any
|
12
|
+
import { ToastManager } from '../Toast/ToastManager';
|
13
|
+
|
14
|
+
const notificationTypes = [
|
15
|
+
HMSNotificationTypes.CHANGE_TRACK_STATE_REQUEST,
|
16
|
+
HMSNotificationTypes.ROOM_ENDED,
|
17
|
+
HMSNotificationTypes.REMOVED_FROM_ROOM,
|
18
|
+
];
|
11
19
|
|
12
20
|
export const TrackUnmuteModal = () => {
|
13
21
|
const hmsActions = useHMSActions();
|
14
|
-
const notification = useHMSNotifications(
|
15
|
-
HMSNotificationTypes.CHANGE_TRACK_STATE_REQUEST,
|
16
|
-
HMSNotificationTypes.ROOM_ENDED,
|
17
|
-
HMSNotificationTypes.REMOVED_FROM_ROOM,
|
18
|
-
]);
|
22
|
+
const notification = useHMSNotifications(notificationTypes);
|
19
23
|
const [muteNotification, setMuteNotification] = useState<HMSChangeTrackStateRequest | null>(null);
|
20
24
|
|
21
25
|
useEffect(() => {
|
22
26
|
switch (notification?.type) {
|
23
27
|
case HMSNotificationTypes.REMOVED_FROM_ROOM:
|
24
28
|
case HMSNotificationTypes.ROOM_ENDED:
|
29
|
+
ToastManager.addToast({
|
30
|
+
title: `${notification.message}.
|
31
|
+
${notification.data.reason && `Reason: ${notification.data.reason}`}`,
|
32
|
+
});
|
25
33
|
setMuteNotification(null);
|
26
34
|
break;
|
27
35
|
case HMSNotificationTypes.CHANGE_TRACK_STATE_REQUEST:
|
@@ -5,9 +5,11 @@ import {
|
|
5
5
|
selectLocalPeerID,
|
6
6
|
selectPeersMap,
|
7
7
|
selectTracksMap,
|
8
|
+
useHMSActions,
|
8
9
|
useHMSStatsStore,
|
9
10
|
useHMSStore,
|
10
11
|
} from '@100mslive/react-sdk';
|
12
|
+
import { Accordion } from '../../Accordion';
|
11
13
|
import { HorizontalDivider } from '../../Divider';
|
12
14
|
import { Dropdown } from '../../Dropdown';
|
13
15
|
import { Label } from '../../Label';
|
@@ -27,6 +29,8 @@ export const StatsForNerds = ({ onOpenChange }) => {
|
|
27
29
|
() => [{ id: 'local-peer', label: 'Local Peer Stats' }, ...tracksWithLabels],
|
28
30
|
[tracksWithLabels],
|
29
31
|
);
|
32
|
+
const hmsActions = useHMSActions();
|
33
|
+
const details = hmsActions.getDebugInfo();
|
30
34
|
const [selectedStat, setSelectedStat] = useState(statsOptions[0]);
|
31
35
|
const [showStatsOnTiles, setShowStatsOnTiles] = useSetUiSettings(UI_SETTINGS.showStatsOnTiles);
|
32
36
|
const [open, setOpen] = useState(false);
|
@@ -46,7 +50,7 @@ export const StatsForNerds = ({ onOpenChange }) => {
|
|
46
50
|
<Dialog.Content
|
47
51
|
css={{
|
48
52
|
width: 'min(500px, 95%)',
|
49
|
-
|
53
|
+
height: 'min(656px, 90%)',
|
50
54
|
overflowY: 'auto',
|
51
55
|
}}
|
52
56
|
>
|
@@ -70,6 +74,7 @@ export const StatsForNerds = ({ onOpenChange }) => {
|
|
70
74
|
</Text>
|
71
75
|
</Flex>
|
72
76
|
{/* Select */}
|
77
|
+
|
73
78
|
<Flex
|
74
79
|
direction="column"
|
75
80
|
css={{
|
@@ -119,6 +124,9 @@ export const StatsForNerds = ({ onOpenChange }) => {
|
|
119
124
|
) : (
|
120
125
|
<TrackStats trackID={selectedStat.id} layer={selectedStat.layer} local={selectedStat.local} />
|
121
126
|
)}
|
127
|
+
<Flex justify="start" gap={4} css={{ m: '$10 0', w: '100%' }}>
|
128
|
+
<DebugInfo details={details} />
|
129
|
+
</Flex>
|
122
130
|
</Dialog.Content>
|
123
131
|
</Dialog.Portal>
|
124
132
|
</Dialog.Root>
|
@@ -229,8 +237,29 @@ const TrackStats = ({ trackID, layer, local }) => {
|
|
229
237
|
);
|
230
238
|
};
|
231
239
|
|
232
|
-
const
|
233
|
-
|
240
|
+
const DebugInfo = ({ details }) => {
|
241
|
+
return (
|
242
|
+
<Accordion.Root type="single" collapsible css={{ w: '100%' }}>
|
243
|
+
<Accordion.Item value="Debug Info">
|
244
|
+
<Accordion.Header>
|
245
|
+
<Label variant="body2" css={{ c: '$on_surface_high' }}>
|
246
|
+
Debug Info
|
247
|
+
</Label>
|
248
|
+
</Accordion.Header>
|
249
|
+
<Accordion.Content>
|
250
|
+
<Flex css={{ flexWrap: 'wrap', mt: '$10', gap: '$10' }}>
|
251
|
+
<StatsRow css={{ w: '100%' }} label="Websocket URL" value={details?.websocketURL} />
|
252
|
+
<StatsRow css={{ w: '100%' }} label="Init Endpoint" value={details?.initEndpoint} />
|
253
|
+
<StatsRow css={{ w: '100%' }} label="Enabled flags" value={details?.enabledFlags?.join(', ')} />
|
254
|
+
</Flex>
|
255
|
+
</Accordion.Content>
|
256
|
+
</Accordion.Item>
|
257
|
+
</Accordion.Root>
|
258
|
+
);
|
259
|
+
};
|
260
|
+
|
261
|
+
const StatsRow = React.memo(({ label, value, css }) => (
|
262
|
+
<Box css={{ bg: '$surface_bright', w: 'calc(50% - $6)', p: '$8', r: '$3', ...css }}>
|
234
263
|
<Text
|
235
264
|
variant="overline"
|
236
265
|
css={{
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useEffect, useMemo, useState } from 'react';
|
1
|
+
import React, { Suspense, useEffect, useMemo, useState } from 'react';
|
2
2
|
import { GridVideoTileLayout } from '@100mslive/types-prebuilt/elements/video_tile_layout';
|
3
3
|
import {
|
4
4
|
selectLocalPeerID,
|
@@ -9,16 +9,22 @@ import {
|
|
9
9
|
useHMSStore,
|
10
10
|
useHMSVanillaStore,
|
11
11
|
} from '@100mslive/react-sdk';
|
12
|
-
|
12
|
+
import FullPageProgress from '../FullPageProgress';
|
13
13
|
import { EqualProminence } from './EqualProminence';
|
14
|
-
import { RoleProminence } from './RoleProminence';
|
15
|
-
import { ScreenshareLayout } from './ScreenshareLayout';
|
16
|
-
import { WhiteboardLayout } from './WhiteboardLayout';
|
17
14
|
// @ts-ignore: No implicit Any
|
18
15
|
import { usePinnedTrack, useSetAppDataByKey } from '../AppData/useUISettings';
|
19
16
|
import { VideoTileContext } from '../hooks/useVideoTileLayout';
|
20
17
|
import PeersSorter from '../../common/PeersSorter';
|
21
18
|
import { APP_DATA } from '../../common/constants';
|
19
|
+
const RoleProminence = React.lazy(() =>
|
20
|
+
import('./RoleProminence').then(module => ({ default: module.RoleProminence })),
|
21
|
+
);
|
22
|
+
const ScreenshareLayout = React.lazy(() =>
|
23
|
+
import('./ScreenshareLayout').then(module => ({ default: module.ScreenshareLayout })),
|
24
|
+
);
|
25
|
+
const WhiteboardLayout = React.lazy(() =>
|
26
|
+
import('./WhiteboardLayout').then(module => ({ default: module.WhiteboardLayout })),
|
27
|
+
);
|
22
28
|
|
23
29
|
export type TileCustomisationProps = {
|
24
30
|
hide_participant_name_on_tile: boolean;
|
@@ -108,38 +114,44 @@ export const GridLayout = ({
|
|
108
114
|
|
109
115
|
if (peerSharing) {
|
110
116
|
return (
|
111
|
-
<
|
112
|
-
<
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
117
|
+
<Suspense fallback={<FullPageProgress />}>
|
118
|
+
<VideoTileContext.Provider value={tileLayout}>
|
119
|
+
<ScreenshareLayout
|
120
|
+
peers={sortedPeers}
|
121
|
+
onPageSize={setPageSize}
|
122
|
+
onPageChange={setMainPage}
|
123
|
+
edgeToEdge={edge_to_edge}
|
124
|
+
/>
|
125
|
+
</VideoTileContext.Provider>
|
126
|
+
</Suspense>
|
119
127
|
);
|
120
128
|
} else if (whiteboard?.open) {
|
121
129
|
return (
|
122
|
-
<
|
123
|
-
<
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
+
<Suspense fallback={<FullPageProgress />}>
|
131
|
+
<VideoTileContext.Provider value={tileLayout}>
|
132
|
+
<WhiteboardLayout
|
133
|
+
peers={sortedPeers}
|
134
|
+
onPageSize={setPageSize}
|
135
|
+
onPageChange={setMainPage}
|
136
|
+
edgeToEdge={edge_to_edge}
|
137
|
+
/>
|
138
|
+
</VideoTileContext.Provider>
|
139
|
+
</Suspense>
|
130
140
|
);
|
131
141
|
} else if (isRoleProminence) {
|
132
142
|
return (
|
133
|
-
<
|
134
|
-
<
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
+
<Suspense fallback={<FullPageProgress />}>
|
144
|
+
<VideoTileContext.Provider value={tileLayout}>
|
145
|
+
<RoleProminence
|
146
|
+
peers={sortedPeers}
|
147
|
+
onPageSize={setPageSize}
|
148
|
+
onPageChange={setMainPage}
|
149
|
+
prominentRoles={prominentRoles}
|
150
|
+
isInsetEnabled={isInsetEnabled}
|
151
|
+
edgeToEdge={edge_to_edge}
|
152
|
+
/>
|
153
|
+
</VideoTileContext.Provider>
|
154
|
+
</Suspense>
|
143
155
|
);
|
144
156
|
}
|
145
157
|
return (
|
@@ -70,9 +70,9 @@ const SecondarySection = ({
|
|
70
70
|
rootCSS={{
|
71
71
|
padding: 0,
|
72
72
|
maxWidth: 240,
|
73
|
-
aspectRatio: 16 / 9,
|
73
|
+
aspectRatio: '16 / 9',
|
74
74
|
...(hasSidebar ? { w: '100%' } : { h: '100%' }),
|
75
|
-
'@md': { aspectRatio: 1 },
|
75
|
+
'@md': { aspectRatio: '1' },
|
76
76
|
}}
|
77
77
|
objectFit="contain"
|
78
78
|
{...tileLayoutProps}
|
@@ -25,7 +25,9 @@ const Root = ({
|
|
25
25
|
bg: '$surface_bright',
|
26
26
|
border: `4px solid ${isActive ? '$primary_default' : '$surface_dim'}`,
|
27
27
|
cursor: 'pointer',
|
28
|
-
'
|
28
|
+
'@media (hover:hover)': {
|
29
|
+
'&:hover': { border: '4px solid $primary_dim' },
|
30
|
+
},
|
29
31
|
...(mediaURL ? { height: '$20', backgroundImage: `url("${mediaURL}")`, backgroundSize: 'cover' } : {}),
|
30
32
|
}}
|
31
33
|
onClick={async () => {
|
@@ -180,6 +180,9 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
180
180
|
onClick: async () => {
|
181
181
|
await VBHandler.removeEffects();
|
182
182
|
hmsActions.setAppData(APP_DATA.background, HMSVirtualBackgroundTypes.NONE);
|
183
|
+
if (isMobile) {
|
184
|
+
toggleVB();
|
185
|
+
}
|
183
186
|
},
|
184
187
|
supported: true,
|
185
188
|
},
|
@@ -235,6 +238,9 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
235
238
|
onClick: async () => {
|
236
239
|
await VBHandler?.setBackground(mediaURL);
|
237
240
|
hmsActions.setAppData(APP_DATA.background, mediaURL);
|
241
|
+
if (isMobile) {
|
242
|
+
toggleVB();
|
243
|
+
}
|
238
244
|
},
|
239
245
|
supported: true,
|
240
246
|
}))}
|
@@ -1,14 +1,10 @@
|
|
1
|
-
import React, { useEffect } from 'react';
|
1
|
+
import React, { Suspense, useEffect } from 'react';
|
2
2
|
import { useMedia } from 'react-use';
|
3
3
|
import { match } from 'ts-pattern';
|
4
4
|
import { selectAppData, selectVideoTrackByPeerID, useHMSStore } from '@100mslive/react-sdk';
|
5
|
-
import { Polls } from '../components/Polls/Polls';
|
6
|
-
import { RoomDetailsPane } from '../components/RoomDetails/RoomDetailsPane';
|
7
5
|
import { LayoutMode } from '../components/Settings/LayoutSettings';
|
8
|
-
import { SidePaneTabs } from '../components/SidePaneTabs';
|
9
6
|
import { TileCustomisationProps } from '../components/VideoLayouts/GridLayout';
|
10
7
|
import VideoTile from '../components/VideoTile';
|
11
|
-
import { VBPicker } from '../components/VirtualBackground/VBPicker';
|
12
8
|
import { Flex } from '../../Layout';
|
13
9
|
import { config as cssConfig, styled } from '../../Theme';
|
14
10
|
// @ts-ignore: No implicit Any
|
@@ -22,6 +18,16 @@ import {
|
|
22
18
|
import { useLandscapeHLSStream, useMobileHLSStream } from '../common/hooks';
|
23
19
|
import { translateAcross } from '../../utils';
|
24
20
|
import { APP_DATA, SIDE_PANE_OPTIONS, UI_SETTINGS } from '../common/constants';
|
21
|
+
const SidePaneTabs = React.lazy(() =>
|
22
|
+
import('../components/SidePaneTabs').then(module => ({ default: module.SidePaneTabs })),
|
23
|
+
);
|
24
|
+
const Polls = React.lazy(() => import('../components/Polls/Polls').then(module => ({ default: module.Polls })));
|
25
|
+
const RoomDetailsPane = React.lazy(() =>
|
26
|
+
import('../components/RoomDetails/RoomDetailsPane').then(module => ({ default: module.RoomDetailsPane })),
|
27
|
+
);
|
28
|
+
const VBPicker = React.lazy(() =>
|
29
|
+
import('../components/VirtualBackground/VBPicker').then(module => ({ default: module.VBPicker })),
|
30
|
+
);
|
25
31
|
|
26
32
|
const Wrapper = styled('div', {
|
27
33
|
w: '$100',
|
@@ -233,7 +239,7 @@ const SidePane = ({
|
|
233
239
|
{...tileLayout}
|
234
240
|
/>
|
235
241
|
)}
|
236
|
-
{SidepaneComponent}
|
242
|
+
<Suspense fallback={<></>}>{SidepaneComponent}</Suspense>
|
237
243
|
</Flex>
|
238
244
|
);
|
239
245
|
};
|
@@ -19,13 +19,7 @@ import FullPageProgress from '../components/FullPageProgress';
|
|
19
19
|
import { GridLayout } from '../components/VideoLayouts/GridLayout';
|
20
20
|
import { Box, Flex } from '../../Layout';
|
21
21
|
import { config } from '../../Theme';
|
22
|
-
// @ts-ignore: No implicit Any
|
23
|
-
import { EmbedView } from './EmbedView';
|
24
|
-
// @ts-ignore: No implicit Any
|
25
|
-
import { PDFView } from './PDFView';
|
26
22
|
import SidePane from './SidePane';
|
27
|
-
// @ts-ignore: No implicit Any
|
28
|
-
import { WaitingView } from './WaitingView';
|
29
23
|
import { CaptionsViewer } from '../plugins/CaptionsViewer';
|
30
24
|
// @ts-ignore: No implicit Any
|
31
25
|
import { usePDFConfig, useUrlToEmbed } from '../components/AppData/useUISettings';
|
@@ -34,6 +28,11 @@ import { useLandscapeHLSStream, useMobileHLSStream, useWaitingRoomInfo } from '.
|
|
34
28
|
import { SESSION_STORE_KEY } from '../common/constants';
|
35
29
|
// @ts-ignore: No implicit Any
|
36
30
|
const HLSView = React.lazy(() => import('./HLSView'));
|
31
|
+
// @ts-ignore: No implicit Any
|
32
|
+
const EmbedView = React.lazy(() => import('./EmbedView').then(module => ({ default: module.EmbedView })));
|
33
|
+
// @ts-ignore: No implicit Any
|
34
|
+
const PDFView = React.lazy(() => import('./PDFView').then(module => ({ default: module.PDFView })));
|
35
|
+
const WaitingView = React.lazy(() => import('./WaitingView').then(module => ({ default: module.WaitingView })));
|
37
36
|
|
38
37
|
export const VideoStreamingSection = ({
|
39
38
|
screenType,
|
@@ -79,18 +78,18 @@ export const VideoStreamingSection = ({
|
|
79
78
|
}
|
80
79
|
|
81
80
|
return (
|
82
|
-
<
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
>
|
81
|
+
<Flex
|
82
|
+
css={{
|
83
|
+
size: '100%',
|
84
|
+
position: 'relative',
|
85
|
+
gap: isMobileHLSStream || isLandscapeHLSStream ? '0' : '$4',
|
86
|
+
}}
|
87
|
+
direction={match<Record<string, boolean>, 'row' | 'column'>({ isLandscapeHLSStream, isMobileHLSStream })
|
88
|
+
.with({ isLandscapeHLSStream: true }, () => 'row')
|
89
|
+
.with({ isMobileHLSStream: true }, () => 'column')
|
90
|
+
.otherwise(() => 'row')}
|
91
|
+
>
|
92
|
+
<Suspense fallback={<FullPageProgress />}>
|
94
93
|
{match({
|
95
94
|
screenType,
|
96
95
|
isNotAllowedToPublish,
|
@@ -142,27 +141,29 @@ export const VideoStreamingSection = ({
|
|
142
141
|
return <GridLayout {...(elements as DefaultConferencingScreen_Elements)?.video_tile_layout?.grid} />;
|
143
142
|
})}
|
144
143
|
<CaptionsViewer setDefaultPosition={setCaptionPosition} defaultPosition={captionPosition} />
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
144
|
+
</Suspense>
|
145
|
+
<Box
|
146
|
+
css={{
|
147
|
+
flex: match({ isLandscapeHLSStream, isMobileHLSStream })
|
148
|
+
.with({ isLandscapeHLSStream: true }, () => '1 1 0')
|
149
|
+
.with({ isMobileHLSStream: true }, () => '2 1 0')
|
150
|
+
.otherwise(() => undefined),
|
151
|
+
position: 'relative',
|
152
|
+
height: !isMobileHLSStream ? '100%' : undefined,
|
153
|
+
maxHeight: '100%',
|
154
|
+
'&:empty': { display: 'none' },
|
155
|
+
overflowY: 'clip',
|
156
|
+
}}
|
157
|
+
>
|
158
|
+
<Suspense fallback={<></>}>
|
158
159
|
<SidePane
|
159
160
|
screenType={screenType}
|
160
161
|
// @ts-ignore
|
161
162
|
tileProps={(elements as DefaultConferencingScreen_Elements)?.video_tile_layout?.grid}
|
162
163
|
hideControls={hideControls}
|
163
164
|
/>
|
164
|
-
</
|
165
|
-
</
|
166
|
-
</
|
165
|
+
</Suspense>
|
166
|
+
</Box>
|
167
|
+
</Flex>
|
167
168
|
);
|
168
169
|
};
|