@100mslive/roomkit-react 0.2.6-alpha.2 → 0.2.6-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{HLSView-U3DKJBM7.js → HLSView-H6Q2FEMZ.js} +3 -3
- package/dist/{HLSView-U3DKJBM7.js.map → HLSView-H6Q2FEMZ.js.map} +2 -2
- package/dist/Prebuilt/common/constants.d.ts +0 -1
- package/dist/Prebuilt/components/VirtualBackground/VBHandler.d.ts +1 -1
- package/dist/{chunk-DO5NCPPI.js → chunk-HRUQKLGN.js} +532 -515
- package/dist/chunk-HRUQKLGN.js.map +7 -0
- package/dist/index.cjs.js +4294 -4275
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +1 -1
- package/dist/meta.cjs.json +176 -156
- package/dist/meta.esbuild.json +187 -167
- package/package.json +6 -6
- package/src/Prebuilt/App.tsx +7 -8
- package/src/Prebuilt/common/constants.ts +1 -1
- package/src/Prebuilt/components/AppData/AppData.tsx +23 -1
- package/src/Prebuilt/components/Header/HeaderComponents.jsx +1 -1
- package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +4 -5
- package/src/Prebuilt/components/Preview/PreviewJoin.tsx +1 -2
- package/src/Prebuilt/components/ScreenshareTile.tsx +1 -1
- package/src/Prebuilt/components/VirtualBackground/VBHandler.tsx +2 -2
- package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +29 -12
- package/src/Prebuilt/layouts/HLSView.jsx +1 -2
- package/dist/chunk-DO5NCPPI.js.map +0 -7
- package/src/Prebuilt/plugins/VirtualBackground/VirtualBackground.jsx +0 -112
- package/src/Prebuilt/plugins/VirtualBackground/vbutils.js +0 -66
@@ -46,8 +46,8 @@ export const APP_DATA = {
|
|
46
46
|
disableNotifications: 'disableNotifications',
|
47
47
|
pollState: 'pollState',
|
48
48
|
background: 'background',
|
49
|
-
backgroundType: 'backgroundType',
|
50
49
|
};
|
50
|
+
|
51
51
|
export const UI_SETTINGS = {
|
52
52
|
isAudioOnly: 'isAudioOnly',
|
53
53
|
maxTileCount: 'maxTileCount',
|
@@ -1,15 +1,19 @@
|
|
1
1
|
import React, { useEffect } from 'react';
|
2
|
+
import { useMedia } from 'react-use';
|
2
3
|
import {
|
3
4
|
HMSRoomState,
|
4
5
|
selectFullAppData,
|
5
6
|
selectHLSState,
|
6
7
|
selectRoomState,
|
7
8
|
selectRTMPState,
|
9
|
+
useAVToggle,
|
8
10
|
useHMSActions,
|
9
11
|
useHMSStore,
|
10
12
|
useRecordingStreaming,
|
11
13
|
} from '@100mslive/react-sdk';
|
14
|
+
import { config as cssConfig } from '../../../Theme';
|
12
15
|
import { LayoutMode } from '../Settings/LayoutSettings';
|
16
|
+
import { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';
|
13
17
|
//@ts-ignore
|
14
18
|
import { UserPreferencesKeys, useUserPreferences } from '../hooks/useUserPreferences';
|
15
19
|
// @ts-ignore
|
@@ -60,7 +64,6 @@ const initialAppData = {
|
|
60
64
|
[APP_DATA.activeScreensharePeerId]: '',
|
61
65
|
[APP_DATA.disableNotifications]: false,
|
62
66
|
[APP_DATA.background]: 'none',
|
63
|
-
[APP_DATA.backgroundType]: 'none',
|
64
67
|
[APP_DATA.pollState]: {
|
65
68
|
[POLL_STATE.pollInView]: '',
|
66
69
|
[POLL_STATE.view]: '',
|
@@ -71,6 +74,10 @@ export const AppData = React.memo(() => {
|
|
71
74
|
const hmsActions = useHMSActions();
|
72
75
|
const [preferences = {}] = useUserPreferences(UserPreferencesKeys.UI_SETTINGS);
|
73
76
|
const appData = useHMSStore(selectFullAppData);
|
77
|
+
const { elements } = useRoomLayoutConferencingScreen();
|
78
|
+
const toggleVB = useSidepaneToggle(SIDE_PANE_OPTIONS.VB);
|
79
|
+
const isMobile = useMedia(cssConfig.media.md);
|
80
|
+
const { isLocalVideoEnabled } = useAVToggle();
|
74
81
|
|
75
82
|
useEffect(() => {
|
76
83
|
hmsActions.initAppData({
|
@@ -103,6 +110,21 @@ export const AppData = React.memo(() => {
|
|
103
110
|
hmsActions.setAppData(APP_DATA.subscribedNotifications, preferences.subscribedNotifications, true);
|
104
111
|
}, [preferences.subscribedNotifications, hmsActions]);
|
105
112
|
|
113
|
+
useEffect(() => {
|
114
|
+
let defaultMediaURL;
|
115
|
+
elements?.virtual_background?.background_media?.forEach(media => {
|
116
|
+
if (media.default && media.url) {
|
117
|
+
defaultMediaURL = media.url;
|
118
|
+
}
|
119
|
+
});
|
120
|
+
if (defaultMediaURL) {
|
121
|
+
hmsActions.setAppData(APP_DATA.background, defaultMediaURL);
|
122
|
+
if (isLocalVideoEnabled && !isMobile) {
|
123
|
+
toggleVB();
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}, [hmsActions, elements?.virtual_background?.background_media, toggleVB, isLocalVideoEnabled, isMobile]);
|
127
|
+
|
106
128
|
return <ResetStreamingStart />;
|
107
129
|
});
|
108
130
|
|
@@ -12,7 +12,7 @@ export const SpeakerTag = () => {
|
|
12
12
|
<Flex
|
13
13
|
align="center"
|
14
14
|
justify="center"
|
15
|
-
css={{ flex: '1 1 0', color: '$
|
15
|
+
css={{ flex: '1 1 0', color: '$on_surface_high', '@md': { display: 'none' } }}
|
16
16
|
>
|
17
17
|
<VerticalDivider css={{ ml: '$8' }} />
|
18
18
|
<VolumeOneIcon />
|
@@ -22,7 +22,6 @@ import {
|
|
22
22
|
QuizIcon,
|
23
23
|
RecordIcon,
|
24
24
|
SettingsIcon,
|
25
|
-
VirtualBackgroundIcon,
|
26
25
|
} from '@100mslive/react-icons';
|
27
26
|
import { Box, Loading, Tooltip } from '../../../..';
|
28
27
|
import { Sheet } from '../../../../Sheet';
|
@@ -91,10 +90,10 @@ export const MwebOptions = ({
|
|
91
90
|
const peerCount = useHMSStore(selectPeerCount);
|
92
91
|
const emojiCardRef = useRef(null);
|
93
92
|
const { isBRBOn, toggleBRB, isHandRaised, toggleHandRaise } = useMyMetadata();
|
94
|
-
const { toggleAudio, toggleVideo
|
93
|
+
const { toggleAudio, toggleVideo } = useAVToggle();
|
95
94
|
const noAVPermissions = !(toggleAudio || toggleVideo);
|
96
95
|
const { unreadPollQuiz, setUnreadPollQuiz } = useUnreadPollQuizPresent();
|
97
|
-
const toggleVB = useSidepaneToggle(SIDE_PANE_OPTIONS.VB);
|
96
|
+
// const toggleVB = useSidepaneToggle(SIDE_PANE_OPTIONS.VB);
|
98
97
|
|
99
98
|
useDropdownList({ open: openModals.size > 0 || openOptionsSheet || openSettingsSheet, name: 'MoreSettings' });
|
100
99
|
|
@@ -181,7 +180,7 @@ export const MwebOptions = ({
|
|
181
180
|
</ActionTile.Root>
|
182
181
|
) : null}
|
183
182
|
|
184
|
-
{isLocalVideoEnabled && !!elements?.virtual_background ? (
|
183
|
+
{/* {isLocalVideoEnabled && !!elements?.virtual_background ? (
|
185
184
|
<ActionTile.Root
|
186
185
|
onClick={() => {
|
187
186
|
toggleVB();
|
@@ -191,7 +190,7 @@ export const MwebOptions = ({
|
|
191
190
|
<VirtualBackgroundIcon />
|
192
191
|
<ActionTile.Title>Virtual Background</ActionTile.Title>
|
193
192
|
</ActionTile.Root>
|
194
|
-
) : null}
|
193
|
+
) : null} */}
|
195
194
|
|
196
195
|
{elements?.emoji_reactions && (
|
197
196
|
<ActionTile.Root
|
@@ -103,7 +103,6 @@ const PreviewJoin = ({
|
|
103
103
|
asRole,
|
104
104
|
});
|
105
105
|
const roomState = useHMSStore(selectRoomState);
|
106
|
-
|
107
106
|
const savePreferenceAndJoin = useCallback(() => {
|
108
107
|
setPreviewPreference({
|
109
108
|
name,
|
@@ -268,7 +267,7 @@ export const PreviewControls = ({ hideSettings, vbEnabled }: { hideSettings: boo
|
|
268
267
|
>
|
269
268
|
<Flex css={{ gap: '$4' }}>
|
270
269
|
<AudioVideoToggle />
|
271
|
-
{vbEnabled ? <VBToggle /> : null}
|
270
|
+
{vbEnabled && !isMobile ? <VBToggle /> : null}
|
272
271
|
</Flex>
|
273
272
|
{!hideSettings ? <PreviewSettings /> : null}
|
274
273
|
</Flex>
|
@@ -95,7 +95,7 @@ const Tile = ({ peerId, width = '100%', height = '100%' }: { peerId: string; wid
|
|
95
95
|
{isFullscreen ? <ShrinkIcon /> : <ExpandIcon />}
|
96
96
|
</StyledVideoTile.FullScreenButton>
|
97
97
|
) : null}
|
98
|
-
{!isMobile && isMouseHovered && (
|
98
|
+
{!isMobile && isMouseHovered && !isFullscreen && (
|
99
99
|
<Box
|
100
100
|
css={{
|
101
101
|
position: 'absolute',
|
@@ -1,5 +1,10 @@
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
2
|
-
import {
|
2
|
+
import {
|
3
|
+
selectAppData,
|
4
|
+
selectEffectsKey,
|
5
|
+
selectIsEffectsEnabled,
|
6
|
+
selectLocalPeerRole,
|
7
|
+
} from '@100mslive/hms-video-store';
|
3
8
|
import { HMSEffectsPlugin, HMSVBPlugin, HMSVirtualBackgroundTypes } from '@100mslive/hms-virtual-background';
|
4
9
|
import { VirtualBackgroundMedia } from '@100mslive/types-prebuilt/elements/virtual_background';
|
5
10
|
import {
|
@@ -22,7 +27,7 @@ import { VBHandler } from './VBHandler';
|
|
22
27
|
import { useSidepaneToggle } from '../AppData/useSidepane';
|
23
28
|
// @ts-ignore
|
24
29
|
import { useUISettings } from '../AppData/useUISettings';
|
25
|
-
import { SIDE_PANE_OPTIONS, UI_SETTINGS } from '../../common/constants';
|
30
|
+
import { APP_DATA, SIDE_PANE_OPTIONS, UI_SETTINGS } from '../../common/constants';
|
26
31
|
import { defaultMedia } from './constants';
|
27
32
|
|
28
33
|
const iconDims = { height: '40px', width: '40px' };
|
@@ -42,9 +47,7 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
42
47
|
const isEffectsEnabled = useHMSStore(selectIsEffectsEnabled);
|
43
48
|
const effectsKey = useHMSStore(selectEffectsKey);
|
44
49
|
const isPluginAdded = useHMSStore(selectIsLocalVideoPluginPresent(VBHandler?.getName() || ''));
|
45
|
-
const
|
46
|
-
(VBHandler?.getBackground() as string | HMSVirtualBackgroundTypes) || HMSVirtualBackgroundTypes.NONE,
|
47
|
-
);
|
50
|
+
const background = useHMSStore(selectAppData(APP_DATA.background));
|
48
51
|
const mediaList = backgroundMedia.length
|
49
52
|
? backgroundMedia.map((media: VirtualBackgroundMedia) => media.url || '')
|
50
53
|
: defaultMedia;
|
@@ -71,8 +74,22 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
71
74
|
hmsActions.addPluginToVideoTrack(vbObject as HMSVBPlugin, Math.floor(role.publishParams.video.frameRate / 2));
|
72
75
|
}
|
73
76
|
}
|
77
|
+
const handleDefaultBackground = async () => {
|
78
|
+
switch (background) {
|
79
|
+
case HMSVirtualBackgroundTypes.NONE: {
|
80
|
+
break;
|
81
|
+
}
|
82
|
+
case HMSVirtualBackgroundTypes.BLUR: {
|
83
|
+
await VBHandler.setBlur(blurAmount);
|
84
|
+
break;
|
85
|
+
}
|
86
|
+
default:
|
87
|
+
await VBHandler.setBackground(background);
|
88
|
+
}
|
89
|
+
};
|
90
|
+
handleDefaultBackground();
|
74
91
|
}
|
75
|
-
}, [hmsActions, role, isPluginAdded, isEffectsEnabled, effectsKey, track?.id]);
|
92
|
+
}, [hmsActions, role, isPluginAdded, isEffectsEnabled, effectsKey, track?.id, background, blurAmount]);
|
76
93
|
|
77
94
|
useEffect(() => {
|
78
95
|
if (!isVideoOn) {
|
@@ -120,7 +137,7 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
120
137
|
value: HMSVirtualBackgroundTypes.NONE,
|
121
138
|
onClick: async () => {
|
122
139
|
await VBHandler.removeEffects();
|
123
|
-
|
140
|
+
hmsActions.setAppData(APP_DATA.background, HMSVirtualBackgroundTypes.NONE);
|
124
141
|
},
|
125
142
|
},
|
126
143
|
{
|
@@ -129,16 +146,16 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
129
146
|
value: HMSVirtualBackgroundTypes.BLUR,
|
130
147
|
onClick: async () => {
|
131
148
|
await VBHandler?.setBlur(blurAmount);
|
132
|
-
|
149
|
+
hmsActions.setAppData(APP_DATA.background, HMSVirtualBackgroundTypes.BLUR);
|
133
150
|
},
|
134
151
|
},
|
135
152
|
]}
|
136
|
-
activeBackground={
|
153
|
+
activeBackground={background}
|
137
154
|
/>
|
138
155
|
|
139
156
|
{/* Slider */}
|
140
157
|
<Flex direction="column" css={{ w: '100%', gap: '$8', mt: '$8' }}>
|
141
|
-
{
|
158
|
+
{background === HMSVirtualBackgroundTypes.BLUR && isEffectsEnabled && effectsKey ? (
|
142
159
|
<Box>
|
143
160
|
<Text variant="sm" css={{ color: '$on_surface_high', fontWeight: '$semiBold', mb: '$4' }}>
|
144
161
|
Blur intensity
|
@@ -173,10 +190,10 @@ export const VBPicker = ({ backgroundMedia = [] }: { backgroundMedia: VirtualBac
|
|
173
190
|
value: mediaURL,
|
174
191
|
onClick: async () => {
|
175
192
|
await VBHandler?.setBackground(mediaURL);
|
176
|
-
|
193
|
+
hmsActions.setAppData(APP_DATA.background, mediaURL);
|
177
194
|
},
|
178
195
|
}))}
|
179
|
-
activeBackground={
|
196
|
+
activeBackground={background}
|
180
197
|
/>
|
181
198
|
</Box>
|
182
199
|
</Flex>
|
@@ -308,8 +308,7 @@ const HLSView = () => {
|
|
308
308
|
align="center"
|
309
309
|
justify="center"
|
310
310
|
css={{
|
311
|
-
width:
|
312
|
-
videoRef.current && videoRef.current.clientWidth <= 720 ? `${videoRef.current.clientWidth}px` : '100%',
|
311
|
+
width: '100%',
|
313
312
|
margin: '0 auto',
|
314
313
|
height: '100%',
|
315
314
|
}}
|