diff --git a/apps/100ms-custom-app/package.json b/apps/100ms-custom-app/package.json
index e2c6d78b70..04256a045c 100644
--- a/apps/100ms-custom-app/package.json
+++ b/apps/100ms-custom-app/package.json
@@ -3,8 +3,8 @@
"version": "0.1.0",
"private": true,
"dependencies": {
- "@100mslive/react-icons": "0.8.18",
- "@100mslive/roomkit-react": "0.1.9",
+ "@100mslive/react-icons": "0.8.19",
+ "@100mslive/roomkit-react": "0.1.10",
"axios": "^0.21.1",
"js-cookies": "^1.0.4",
"lodash.merge": "^4.6.2",
diff --git a/apps/100ms-custom-app/src/utils/utils.js b/apps/100ms-custom-app/src/utils/utils.js
index 6c66086ab0..8da1b1a8ba 100644
--- a/apps/100ms-custom-app/src/utils/utils.js
+++ b/apps/100ms-custom-app/src/utils/utils.js
@@ -170,16 +170,18 @@ export const getAuthTokenUsingRoomIdRole = async function ({
userId = '',
}) {
try {
- const resp = await fetch(`${apiBasePath}${subdomain}/api/token`, {
- method: 'POST',
- body: JSON.stringify({
- room_id: roomId,
- role,
- user_id: userId,
- }),
- });
- const { token = '' } = await resp.json();
- return token;
+ if (roomId && role) {
+ const resp = await fetch(`${apiBasePath}${subdomain}/api/token`, {
+ method: 'POST',
+ body: JSON.stringify({
+ room_id: roomId,
+ role,
+ user_id: userId,
+ }),
+ });
+ const { token = '' } = await resp.json();
+ return token;
+ }
} catch (e) {
console.error('failed to getAuthTokenUsingRoomIdRole', e);
throw Error('failed to get auth token using roomid and role');
diff --git a/apps/100ms-web/package.json b/apps/100ms-web/package.json
index 4e138557b1..1413e06e00 100644
--- a/apps/100ms-web/package.json
+++ b/apps/100ms-web/package.json
@@ -9,11 +9,11 @@
"src"
],
"dependencies": {
- "@100mslive/hls-player": "0.1.18",
- "@100mslive/hms-virtual-background": "1.11.18",
- "@100mslive/react-icons": "0.8.18",
- "@100mslive/react-sdk": "0.8.18",
- "@100mslive/roomkit-react": "0.1.9",
+ "@100mslive/hls-player": "0.1.19",
+ "@100mslive/hms-virtual-background": "1.11.19",
+ "@100mslive/react-icons": "0.8.19",
+ "@100mslive/react-sdk": "0.8.19",
+ "@100mslive/roomkit-react": "0.1.10",
"@emoji-mart/data": "^1.0.6",
"@emoji-mart/react": "^1.0.1",
"@tldraw/tldraw": "^1.18.4",
diff --git a/packages/hls-player/package.json b/packages/hls-player/package.json
index a044353e4b..4f7d857a4e 100644
--- a/packages/hls-player/package.json
+++ b/packages/hls-player/package.json
@@ -1,6 +1,6 @@
{
"name": "@100mslive/hls-player",
- "version": "0.1.18",
+ "version": "0.1.19",
"description": "HLS client library which uses HTML5 Video element and Media Source Extension for playback",
"main": "dist/index.cjs.js",
"module": "dist/index.js",
@@ -31,7 +31,7 @@
"author": "100ms",
"license": "MIT",
"dependencies": {
- "@100mslive/hls-stats": "0.2.18",
+ "@100mslive/hls-stats": "0.2.19",
"eventemitter2": "^6.4.7",
"hls.js": "1.4.12"
}
diff --git a/packages/hls-stats/package.json b/packages/hls-stats/package.json
index c4fa78e910..37e6ec18cc 100644
--- a/packages/hls-stats/package.json
+++ b/packages/hls-stats/package.json
@@ -1,6 +1,6 @@
{
"name": "@100mslive/hls-stats",
- "version": "0.2.18",
+ "version": "0.2.19",
"description": "A simple library that provides stats for your hls stream",
"main": "dist/index.cjs.js",
"module": "dist/index.js",
diff --git a/packages/hms-noise-suppression/package.json b/packages/hms-noise-suppression/package.json
index e8ce8d2d3a..bc5f3bb807 100644
--- a/packages/hms-noise-suppression/package.json
+++ b/packages/hms-noise-suppression/package.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.18",
+ "version": "0.9.19",
"license": "MIT",
"main": "dist/index.cjs.js",
"typings": "dist/index.d.ts",
@@ -37,6 +37,6 @@
"author": "vishaldhull09",
"module": "dist/index.js",
"devDependencies": {
- "@100mslive/hms-video": "0.9.18"
+ "@100mslive/hms-video": "0.9.19"
}
}
diff --git a/packages/hms-video-store/package.json b/packages/hms-video-store/package.json
index 341d28aacf..913b0807be 100644
--- a/packages/hms-video-store/package.json
+++ b/packages/hms-video-store/package.json
@@ -1,5 +1,5 @@
{
- "version": "0.10.18",
+ "version": "0.10.19",
"license": "MIT",
"main": "dist/index.cjs.js",
"module": "dist/index.js",
@@ -41,7 +41,7 @@
"author": "100ms",
"sideEffects": false,
"dependencies": {
- "@100mslive/hms-video": "0.9.18",
+ "@100mslive/hms-video": "0.9.19",
"eventemitter2": "^6.4.7",
"immer": "^9.0.6",
"reselect": "4.0.0",
@@ -51,19 +51,11 @@
"ts-node": "^10.4.0",
"tslib": "^2.2.0"
},
- "description": "This is an addon to the core sdk provided by 100ms. It abstracts away the intricacies of data management and provides a flux based reactive data store where data flows in only one direction.",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/100mslive/hms-video-store.git"
- },
+ "description": "@100mslive Core SDK which abstracts the complexities of webRTC while providing a reactive store for data management with a unidirectional data flow",
"keywords": [
"video",
"webrtc",
"conferencing",
"100ms"
- ],
- "bugs": {
- "url": "https://github.com/100mslive/hms-video-store/issues"
- },
- "homepage": "https://github.com/100mslive/hms-video-store#readme"
+ ]
}
diff --git a/packages/hms-video-web/package.json b/packages/hms-video-web/package.json
index 239dbf6ba3..78a3c6165b 100644
--- a/packages/hms-video-web/package.json
+++ b/packages/hms-video-web/package.json
@@ -1,6 +1,6 @@
{
"name": "@100mslive/hms-video",
- "version": "0.9.18",
+ "version": "0.9.19",
"license": "MIT",
"main": "dist/index.cjs.js",
"typings": "dist/index.d.ts",
diff --git a/packages/hms-virtual-background/package.json b/packages/hms-virtual-background/package.json
index ec10ef8cff..f7a4478ab4 100755
--- a/packages/hms-virtual-background/package.json
+++ b/packages/hms-virtual-background/package.json
@@ -1,5 +1,5 @@
{
- "version": "1.11.18",
+ "version": "1.11.19",
"license": "MIT",
"main": "dist/index.cjs.js",
"typings": "dist/index.d.ts",
@@ -30,7 +30,7 @@
"author": "ashish17",
"module": "dist/index.js",
"devDependencies": {
- "@100mslive/hms-video": "0.9.18"
+ "@100mslive/hms-video": "0.9.19"
},
"dependencies": {
"@mediapipe/selfie_segmentation": "^0.1.1632777926",
diff --git a/packages/react-icons/assets/BluetoothIcon.svg b/packages/react-icons/assets/BluetoothIcon.svg
new file mode 100644
index 0000000000..60af6f9365
--- /dev/null
+++ b/packages/react-icons/assets/BluetoothIcon.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/packages/react-icons/assets/BlurPersonHighIcon.svg b/packages/react-icons/assets/BlurPersonHighIcon.svg
new file mode 100644
index 0000000000..1bb4b581fb
--- /dev/null
+++ b/packages/react-icons/assets/BlurPersonHighIcon.svg
@@ -0,0 +1,18 @@
+
diff --git a/packages/react-icons/assets/BlurPersonLowIcon.svg b/packages/react-icons/assets/BlurPersonLowIcon.svg
new file mode 100644
index 0000000000..15811eea54
--- /dev/null
+++ b/packages/react-icons/assets/BlurPersonLowIcon.svg
@@ -0,0 +1,18 @@
+
diff --git a/packages/react-icons/assets/SparkleIcon.svg b/packages/react-icons/assets/SparkleIcon.svg
new file mode 100644
index 0000000000..9016989109
--- /dev/null
+++ b/packages/react-icons/assets/SparkleIcon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/react-icons/package.json b/packages/react-icons/package.json
index e8a3b2b272..a1bdc6e994 100644
--- a/packages/react-icons/package.json
+++ b/packages/react-icons/package.json
@@ -4,7 +4,7 @@
"main": "dist/index.cjs.js",
"module": "dist/index.js",
"typings": "dist/index.d.ts",
- "version": "0.8.18",
+ "version": "0.8.19",
"author": "100ms",
"license": "MIT",
"files": [
diff --git a/packages/react-icons/src/BluetoothIcon.tsx b/packages/react-icons/src/BluetoothIcon.tsx
new file mode 100644
index 0000000000..f4b70b13b8
--- /dev/null
+++ b/packages/react-icons/src/BluetoothIcon.tsx
@@ -0,0 +1,17 @@
+import * as React from 'react';
+import { SVGProps } from 'react';
+const SvgBluetoothIcon = (props: SVGProps) => (
+
+);
+export default SvgBluetoothIcon;
diff --git a/packages/react-icons/src/BlurPersonHighIcon.tsx b/packages/react-icons/src/BlurPersonHighIcon.tsx
new file mode 100644
index 0000000000..81a1b11838
--- /dev/null
+++ b/packages/react-icons/src/BlurPersonHighIcon.tsx
@@ -0,0 +1,17 @@
+import * as React from 'react';
+import { SVGProps } from 'react';
+const SvgBlurPersonHighIcon = (props: SVGProps) => (
+
+);
+export default SvgBlurPersonHighIcon;
diff --git a/packages/react-icons/src/BlurPersonLowIcon.tsx b/packages/react-icons/src/BlurPersonLowIcon.tsx
new file mode 100644
index 0000000000..cbad4a8a53
--- /dev/null
+++ b/packages/react-icons/src/BlurPersonLowIcon.tsx
@@ -0,0 +1,21 @@
+import * as React from 'react';
+import { SVGProps } from 'react';
+const SvgBlurPersonLowIcon = (props: SVGProps) => (
+
+);
+export default SvgBlurPersonLowIcon;
diff --git a/packages/react-icons/src/SparkleIcon.tsx b/packages/react-icons/src/SparkleIcon.tsx
new file mode 100644
index 0000000000..909338e0a4
--- /dev/null
+++ b/packages/react-icons/src/SparkleIcon.tsx
@@ -0,0 +1,14 @@
+import * as React from 'react';
+import { SVGProps } from 'react';
+const SvgSparkleIcon = (props: SVGProps) => (
+
+);
+export default SvgSparkleIcon;
diff --git a/packages/react-icons/src/index.ts b/packages/react-icons/src/index.ts
index 53ca615ccb..6642166993 100644
--- a/packages/react-icons/src/index.ts
+++ b/packages/react-icons/src/index.ts
@@ -29,6 +29,9 @@ export { default as BarIcon } from './BarIcon';
export { default as BatteryFullIcon } from './BatteryFullIcon';
export { default as BatteryPowerIcon } from './BatteryPowerIcon';
export { default as BillIcon } from './BillIcon';
+export { default as BluetoothIcon } from './BluetoothIcon';
+export { default as BlurPersonHighIcon } from './BlurPersonHighIcon';
+export { default as BlurPersonLowIcon } from './BlurPersonLowIcon';
export { default as BoltIcon } from './BoltIcon';
export { default as BookIcon } from './BookIcon';
export { default as BookmarkIcon } from './BookmarkIcon';
@@ -217,6 +220,7 @@ export { default as ShrinkIcon } from './ShrinkIcon';
export { default as ShuffleIcon } from './ShuffleIcon';
export { default as SlackIcon } from './SlackIcon';
export { default as SolidCheckCircleIcon } from './SolidCheckCircleIcon';
+export { default as SparkleIcon } from './SparkleIcon';
export { default as SpeakerIcon } from './SpeakerIcon';
export { default as SpotlightIcon } from './SpotlightIcon';
export { default as SquareMenuIcon } from './SquareMenuIcon';
diff --git a/packages/react-sdk/package.json b/packages/react-sdk/package.json
index 37a6025393..eef940d948 100644
--- a/packages/react-sdk/package.json
+++ b/packages/react-sdk/package.json
@@ -4,7 +4,7 @@
"main": "dist/index.cjs.js",
"module": "dist/index.js",
"typings": "dist/index.d.ts",
- "version": "0.8.18",
+ "version": "0.8.19",
"author": "100ms",
"license": "MIT",
"files": [
@@ -43,7 +43,7 @@
"react": ">=16.8 <19.0.0"
},
"dependencies": {
- "@100mslive/hms-video-store": "0.10.18",
+ "@100mslive/hms-video-store": "0.10.19",
"react-resize-detector": "^7.0.0",
"zustand": "^3.6.2"
}
diff --git a/packages/roomkit-react/package.json b/packages/roomkit-react/package.json
index c314d8cc69..2f1ef89108 100644
--- a/packages/roomkit-react/package.json
+++ b/packages/roomkit-react/package.json
@@ -10,7 +10,7 @@
"prebuilt",
"roomkit"
],
- "version": "0.1.9",
+ "version": "0.1.10",
"author": "100ms",
"license": "MIT",
"files": [
@@ -76,10 +76,10 @@
"react": ">=17.0.2 <19.0.0"
},
"dependencies": {
- "@100mslive/hls-player": "0.1.18",
- "@100mslive/hms-virtual-background": "1.11.18",
- "@100mslive/react-icons": "0.8.18",
- "@100mslive/react-sdk": "0.8.18",
+ "@100mslive/hls-player": "0.1.19",
+ "@100mslive/hms-virtual-background": "1.11.19",
+ "@100mslive/react-icons": "0.8.19",
+ "@100mslive/react-sdk": "0.8.19",
"@100mslive/types-prebuilt": "0.12.0",
"@emoji-mart/data": "^1.0.6",
"@emoji-mart/react": "^1.0.1",
diff --git a/packages/roomkit-react/src/Modal/Dialog.tsx b/packages/roomkit-react/src/Modal/Dialog.tsx
index fe9c7cb2e0..21cca76a07 100644
--- a/packages/roomkit-react/src/Modal/Dialog.tsx
+++ b/packages/roomkit-react/src/Modal/Dialog.tsx
@@ -1,28 +1,20 @@
import React, { ReactNode, useRef } from 'react';
import { Root } from '@radix-ui/react-dialog';
import { styled } from '@stitches/react';
-import { CSS } from '../Theme';
import {
+ CustomDialogContent,
+ CustomDialogOverlay,
DialogClose,
DialogDefaultCloseIcon,
DialogDescription,
DialogTitle,
- StyledDialogContent,
- StyledDialogOverlay,
StyledDialogPortal,
StyledDialogTrigger,
} from './DialogContent';
import { useDialogContainerSelector } from '../hooks/useDialogContainerSelector';
const StyledDialog = styled(Root, {});
-const CustomDialogContent = ({ children, props = {}, css = {} }: { children: ReactNode; props?: any; css?: CSS }) => (
-
- {children}
-
-);
-const CustomDialogOverlay = ({ css = {} }: { css?: CSS }) => (
-
-);
+
const CustomDialogPortal = ({ children, container }: { children: ReactNode; container?: HTMLElement | null }) => {
const dialogContainerSelector = useDialogContainerSelector();
const containerRef = useRef(null);
diff --git a/packages/roomkit-react/src/Modal/DialogContent.tsx b/packages/roomkit-react/src/Modal/DialogContent.tsx
index 91a7dae300..8631bae8a7 100644
--- a/packages/roomkit-react/src/Modal/DialogContent.tsx
+++ b/packages/roomkit-react/src/Modal/DialogContent.tsx
@@ -17,19 +17,19 @@ export const StyledDialogTrigger = styled(DialogPrimitive.Trigger, {
appearance: 'none !important', // Needed for safari it shows white overlay
});
-export const StyledDialogOverlay = styled(DialogPrimitive.Overlay, {
+export const CustomDialogOverlay = styled(DialogPrimitive.Overlay, {
backgroundColor: 'rgba(0, 0, 0, 0.5);',
- position: 'fixed',
+ position: 'absolute',
inset: 0,
});
export const StyledDialogPortal = styled(DialogPrimitive.Portal, {});
-export const StyledDialogContent = styled(DialogPrimitive.Content, {
+export const CustomDialogContent = styled(DialogPrimitive.Content, {
color: '$on_surface_medium',
backgroundColor: '$surface_default',
borderRadius: '8px',
- position: 'fixed',
+ position: 'absolute',
top: '50%',
left: '50%',
border: '$space$px solid $border_bright',
diff --git a/packages/roomkit-react/src/Prebuilt/common/constants.js b/packages/roomkit-react/src/Prebuilt/common/constants.js
index bb9e4692ba..4aaa2aa6d5 100644
--- a/packages/roomkit-react/src/Prebuilt/common/constants.js
+++ b/packages/roomkit-react/src/Prebuilt/common/constants.js
@@ -46,6 +46,8 @@ export const APP_DATA = {
activeScreensharePeerId: 'activeScreensharePeerId',
disableNotifications: 'disableNotifications',
pollState: 'pollState',
+ background: 'background',
+ backgroundType: 'backgroundType',
};
export const UI_SETTINGS = {
isAudioOnly: 'isAudioOnly',
@@ -61,6 +63,7 @@ export const SIDE_PANE_OPTIONS = {
CHAT: 'Chat',
STREAMING: 'STREAMING',
POLLS: 'POLLS',
+ VB: 'VB',
};
export const POLL_STATE = {
diff --git a/packages/roomkit-react/src/Prebuilt/components/AppData/AppData.jsx b/packages/roomkit-react/src/Prebuilt/components/AppData/AppData.jsx
index 1039ce6225..4e206005b8 100644
--- a/packages/roomkit-react/src/Prebuilt/components/AppData/AppData.jsx
+++ b/packages/roomkit-react/src/Prebuilt/components/AppData/AppData.jsx
@@ -4,7 +4,6 @@ import {
selectAvailableRoleNames,
selectFullAppData,
selectHLSState,
- selectIsConnectedToRoom,
selectLocalPeerRoleName,
selectRolesMap,
selectRoomState,
@@ -15,7 +14,7 @@ import {
} from '@100mslive/react-sdk';
import { normalizeAppPolicyConfig } from '../init/initUtils';
import { UserPreferencesKeys, useUserPreferences } from '../hooks/useUserPreferences';
-import { useIsSidepaneTypeOpen, useSidepaneReset, useSidepaneState, useSidepaneToggle } from './useSidepane';
+import { useIsSidepaneTypeOpen, useSidepaneToggle } from './useSidepane';
import { useSetAppDataByKey } from './useUISettings';
import {
APP_DATA,
@@ -26,6 +25,7 @@ import {
UI_MODE_GRID,
UI_SETTINGS,
} from '../../common/constants';
+import { VB_EFFECT } from '../VirtualBackground/constants';
export const getAppDetails = appDetails => {
try {
@@ -67,6 +67,8 @@ const initialAppData = {
[APP_DATA.minimiseInset]: false,
[APP_DATA.activeScreensharePeerId]: '',
[APP_DATA.disableNotifications]: false,
+ [APP_DATA.background]: VB_EFFECT.NONE,
+ [APP_DATA.backgroundType]: VB_EFFECT.NONE,
[APP_DATA.pollState]: {
[POLL_STATE.pollInView]: '',
[POLL_STATE.view]: '',
@@ -75,21 +77,12 @@ const initialAppData = {
export const AppData = React.memo(({ appDetails, tokenEndpoint }) => {
const hmsActions = useHMSActions();
- const isConnected = useHMSStore(selectIsConnectedToRoom);
- const sidePane = useSidepaneState();
- const resetSidePane = useSidepaneReset();
const [preferences = {}] = useUserPreferences(UserPreferencesKeys.UI_SETTINGS);
const roleNames = useHMSStore(selectAvailableRoleNames);
const rolesMap = useHMSStore(selectRolesMap);
const localPeerRole = useHMSStore(selectLocalPeerRoleName);
const appData = useHMSStore(selectFullAppData);
- useEffect(() => {
- if (!isConnected && sidePane && sidePane !== SIDE_PANE_OPTIONS.PARTICIPANTS) {
- resetSidePane();
- }
- }, [isConnected, sidePane, resetSidePane]);
-
useEffect(() => {
hmsActions.initAppData({
...initialAppData,
diff --git a/packages/roomkit-react/src/Prebuilt/components/AppData/useSidepane.js b/packages/roomkit-react/src/Prebuilt/components/AppData/useSidepane.js
index 05a386a47b..d0e99386a1 100644
--- a/packages/roomkit-react/src/Prebuilt/components/AppData/useSidepane.js
+++ b/packages/roomkit-react/src/Prebuilt/components/AppData/useSidepane.js
@@ -60,7 +60,7 @@ export const usePollViewToggle = () => {
};
/**
- * reset's the sidepane value
+ * resets the sidepane value
*/
export const useSidepaneReset = () => {
const hmsActions = useHMSActions();
diff --git a/packages/roomkit-react/src/Prebuilt/components/Connection/ConnectionIndicator.tsx b/packages/roomkit-react/src/Prebuilt/components/Connection/ConnectionIndicator.tsx
index f401acd0e0..2267172f64 100644
--- a/packages/roomkit-react/src/Prebuilt/components/Connection/ConnectionIndicator.tsx
+++ b/packages/roomkit-react/src/Prebuilt/components/Connection/ConnectionIndicator.tsx
@@ -39,7 +39,7 @@ export const ConnectionIndicator = ({
}
if (downlinkQuality === 0) {
return (
-
+
@@ -48,7 +48,7 @@ export const ConnectionIndicator = ({
}
const size = isTile ? 12 : 16;
return (
-
+