@stream-io/video-react-sdk 1.12.7 → 1.12.9
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/CHANGELOG.md +22 -0
- package/dist/index.cjs.js +10 -9
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.es.js +10 -10
- package/dist/index.es.js.map +1 -1
- package/index.ts +1 -0
- package/package.json +3 -3
- package/src/components/CallControls/ToggleAudioButton.tsx +27 -4
- package/src/components/CallControls/ToggleVideoButton.tsx +27 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.12.9](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.12.8...@stream-io/video-react-sdk-1.12.9) (2025-03-13)
|
|
6
|
+
|
|
7
|
+
### Dependency Updates
|
|
8
|
+
|
|
9
|
+
* `@stream-io/video-client` updated to version `1.18.6`
|
|
10
|
+
* `@stream-io/video-react-bindings` updated to version `1.5.8`
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* expose useDeviceList ([#1723](https://github.com/GetStream/stream-video-js/issues/1723)) ([547703b](https://github.com/GetStream/stream-video-js/commit/547703b75daefbd0e34db6bd17cfc2f45d861005)), closes [#1701](https://github.com/GetStream/stream-video-js/issues/1701)
|
|
15
|
+
|
|
16
|
+
## [1.12.8](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.12.7...@stream-io/video-react-sdk-1.12.8) (2025-03-12)
|
|
17
|
+
|
|
18
|
+
### Dependency Updates
|
|
19
|
+
|
|
20
|
+
* `@stream-io/video-client` updated to version `1.18.5`
|
|
21
|
+
* `@stream-io/video-react-bindings` updated to version `1.5.7`
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* add pending browser permission state ([#1718](https://github.com/GetStream/stream-video-js/issues/1718)) ([7f24be6](https://github.com/GetStream/stream-video-js/commit/7f24be63d33105d0688be7b5b625bc9b6aa0d3a9))
|
|
26
|
+
|
|
5
27
|
## [1.12.7](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.12.6...@stream-io/video-react-sdk-1.12.7) (2025-03-10)
|
|
6
28
|
|
|
7
29
|
### Dependency Updates
|
package/dist/index.cjs.js
CHANGED
|
@@ -1334,7 +1334,7 @@ const ToggleAudioPreviewButton = (props) => {
|
|
|
1334
1334
|
const { caption, onMenuToggle, ...restCompositeButtonProps } = props;
|
|
1335
1335
|
const { t } = videoReactBindings.useI18n();
|
|
1336
1336
|
const { useMicrophoneState } = videoReactBindings.useCallStateHooks();
|
|
1337
|
-
const { microphone, optimisticIsMute, hasBrowserPermission } = useMicrophoneState();
|
|
1337
|
+
const { microphone, optimisticIsMute, hasBrowserPermission, isPromptingPermission, } = useMicrophoneState();
|
|
1338
1338
|
const [tooltipDisabled, setTooltipDisabled] = react.useState(false);
|
|
1339
1339
|
const handleClick = createCallControlHandler(props, () => microphone.toggle());
|
|
1340
1340
|
return (jsxRuntime.jsx(WithTooltip, { title: !hasBrowserPermission
|
|
@@ -1344,14 +1344,14 @@ const ToggleAudioPreviewButton = (props) => {
|
|
|
1344
1344
|
: 'preview-audio-mute-button', onClick: handleClick, ...restCompositeButtonProps, onMenuToggle: (shown) => {
|
|
1345
1345
|
setTooltipDisabled(shown);
|
|
1346
1346
|
onMenuToggle?.(shown);
|
|
1347
|
-
}, children: [jsxRuntime.jsx(Icon, { icon: !optimisticIsMute ? 'mic' : 'mic-off' }), !hasBrowserPermission && (jsxRuntime.jsx("span", { className: "str-video__no-media-permission", title: t('Check your browser audio permissions'), children: "!" }))] }) }));
|
|
1347
|
+
}, children: [jsxRuntime.jsx(Icon, { icon: !optimisticIsMute ? 'mic' : 'mic-off' }), !hasBrowserPermission && (jsxRuntime.jsx("span", { className: "str-video__no-media-permission", title: t('Check your browser audio permissions'), children: "!" })), isPromptingPermission && (jsxRuntime.jsx("span", { className: "str-video__pending-permission", title: t('Waiting for permission'), children: "?" }))] }) }));
|
|
1348
1348
|
};
|
|
1349
1349
|
const ToggleAudioPublishingButton = (props) => {
|
|
1350
1350
|
const { t } = videoReactBindings.useI18n();
|
|
1351
1351
|
const { caption, Menu = jsxRuntime.jsx(DeviceSelectorAudioInput, { visualType: "list" }), menuPlacement = 'top', onMenuToggle, ...restCompositeButtonProps } = props;
|
|
1352
1352
|
const { hasPermission, requestPermission, isAwaitingPermission } = useRequestPermission(videoClient.OwnCapability.SEND_AUDIO);
|
|
1353
1353
|
const { useMicrophoneState } = videoReactBindings.useCallStateHooks();
|
|
1354
|
-
const { microphone, optimisticIsMute, hasBrowserPermission } = useMicrophoneState();
|
|
1354
|
+
const { microphone, optimisticIsMute, hasBrowserPermission, isPromptingPermission, } = useMicrophoneState();
|
|
1355
1355
|
const [tooltipDisabled, setTooltipDisabled] = react.useState(false);
|
|
1356
1356
|
const handleClick = createCallControlHandler(props, async () => {
|
|
1357
1357
|
if (!hasPermission) {
|
|
@@ -1368,14 +1368,14 @@ const ToggleAudioPublishingButton = (props) => {
|
|
|
1368
1368
|
: caption ?? t('Mic'), tooltipDisabled: tooltipDisabled, children: jsxRuntime.jsxs(CompositeButton, { active: optimisticIsMute, caption: caption, variant: "secondary", disabled: !hasBrowserPermission || !hasPermission, "data-testid": optimisticIsMute ? 'audio-unmute-button' : 'audio-mute-button', onClick: handleClick, Menu: Menu, menuPlacement: menuPlacement, menuOffset: 16, ...restCompositeButtonProps, onMenuToggle: (shown) => {
|
|
1369
1369
|
setTooltipDisabled(shown);
|
|
1370
1370
|
onMenuToggle?.(shown);
|
|
1371
|
-
}, children: [jsxRuntime.jsx(Icon, { icon: optimisticIsMute ? 'mic-off' : 'mic' }), (!hasBrowserPermission || !hasPermission) && (jsxRuntime.jsx("span", { className: "str-video__no-media-permission", children: "!" }))] }) }) }) }));
|
|
1371
|
+
}, children: [jsxRuntime.jsx(Icon, { icon: optimisticIsMute ? 'mic-off' : 'mic' }), (!hasBrowserPermission || !hasPermission) && (jsxRuntime.jsx("span", { className: "str-video__no-media-permission", children: "!" })), isPromptingPermission && (jsxRuntime.jsx("span", { className: "str-video__pending-permission", title: t('Waiting for permission'), children: "?" }))] }) }) }) }));
|
|
1372
1372
|
};
|
|
1373
1373
|
|
|
1374
1374
|
const ToggleVideoPreviewButton = (props) => {
|
|
1375
1375
|
const { caption, Menu = DeviceSelectorVideo, menuPlacement = 'top', onMenuToggle, ...restCompositeButtonProps } = props;
|
|
1376
1376
|
const { t } = videoReactBindings.useI18n();
|
|
1377
1377
|
const { useCameraState } = videoReactBindings.useCallStateHooks();
|
|
1378
|
-
const { camera, optimisticIsMute, hasBrowserPermission } = useCameraState();
|
|
1378
|
+
const { camera, optimisticIsMute, hasBrowserPermission, isPromptingPermission, } = useCameraState();
|
|
1379
1379
|
const [tooltipDisabled, setTooltipDisabled] = react.useState(false);
|
|
1380
1380
|
const handleClick = createCallControlHandler(props, () => camera.toggle());
|
|
1381
1381
|
return (jsxRuntime.jsx(WithTooltip, { title: !hasBrowserPermission
|
|
@@ -1385,14 +1385,14 @@ const ToggleVideoPreviewButton = (props) => {
|
|
|
1385
1385
|
: 'preview-video-mute-button', onClick: handleClick, disabled: !hasBrowserPermission, Menu: Menu, menuPlacement: menuPlacement, ...restCompositeButtonProps, onMenuToggle: (shown) => {
|
|
1386
1386
|
setTooltipDisabled(shown);
|
|
1387
1387
|
onMenuToggle?.(shown);
|
|
1388
|
-
}, children: [jsxRuntime.jsx(Icon, { icon: !optimisticIsMute ? 'camera' : 'camera-off' }), !hasBrowserPermission && (jsxRuntime.jsx("span", { className: "str-video__no-media-permission", title: t('Check your browser video permissions'), children: "!" }))] }) }));
|
|
1388
|
+
}, children: [jsxRuntime.jsx(Icon, { icon: !optimisticIsMute ? 'camera' : 'camera-off' }), !hasBrowserPermission && (jsxRuntime.jsx("span", { className: "str-video__no-media-permission", title: t('Check your browser video permissions'), children: "!" })), isPromptingPermission && (jsxRuntime.jsx("span", { className: "str-video__pending-permission", title: t('Waiting for permission'), children: "?" }))] }) }));
|
|
1389
1389
|
};
|
|
1390
1390
|
const ToggleVideoPublishingButton = (props) => {
|
|
1391
1391
|
const { t } = videoReactBindings.useI18n();
|
|
1392
1392
|
const { caption, Menu = jsxRuntime.jsx(DeviceSelectorVideo, { visualType: "list" }), menuPlacement = 'top', onMenuToggle, ...restCompositeButtonProps } = props;
|
|
1393
1393
|
const { hasPermission, requestPermission, isAwaitingPermission } = useRequestPermission(videoClient.OwnCapability.SEND_VIDEO);
|
|
1394
1394
|
const { useCameraState, useCallSettings } = videoReactBindings.useCallStateHooks();
|
|
1395
|
-
const { camera, optimisticIsMute, hasBrowserPermission } = useCameraState();
|
|
1395
|
+
const { camera, optimisticIsMute, hasBrowserPermission, isPromptingPermission, } = useCameraState();
|
|
1396
1396
|
const callSettings = useCallSettings();
|
|
1397
1397
|
const isPublishingVideoAllowed = callSettings?.video.enabled;
|
|
1398
1398
|
const [tooltipDisabled, setTooltipDisabled] = react.useState(false);
|
|
@@ -1417,7 +1417,7 @@ const ToggleVideoPublishingButton = (props) => {
|
|
|
1417
1417
|
onMenuToggle?.(shown);
|
|
1418
1418
|
}, children: [jsxRuntime.jsx(Icon, { icon: optimisticIsMute ? 'camera-off' : 'camera' }), (!hasBrowserPermission ||
|
|
1419
1419
|
!hasPermission ||
|
|
1420
|
-
!isPublishingVideoAllowed) && (jsxRuntime.jsx("span", { className: "str-video__no-media-permission", children: "!" }))] }) }) }) }));
|
|
1420
|
+
!isPublishingVideoAllowed) && (jsxRuntime.jsx("span", { className: "str-video__no-media-permission", children: "!" })), isPromptingPermission && (jsxRuntime.jsx("span", { className: "str-video__pending-permission", title: t('Waiting for permission'), children: "?" }))] }) }) }) }));
|
|
1421
1421
|
};
|
|
1422
1422
|
|
|
1423
1423
|
const EndCallMenu = (props) => {
|
|
@@ -2680,7 +2680,7 @@ const LivestreamPlayer = (props) => {
|
|
|
2680
2680
|
return (jsxRuntime.jsx(StreamCall, { call: call, children: jsxRuntime.jsx(LivestreamLayout, { ...layoutProps }) }));
|
|
2681
2681
|
};
|
|
2682
2682
|
|
|
2683
|
-
const [major, minor, patch] = ("1.12.
|
|
2683
|
+
const [major, minor, patch] = ("1.12.9").split('.');
|
|
2684
2684
|
videoClient.setSdkInfo({
|
|
2685
2685
|
type: videoClient.SfuModels.SdkType.REACT,
|
|
2686
2686
|
major,
|
|
@@ -2768,6 +2768,7 @@ exports.WithTooltip = WithTooltip;
|
|
|
2768
2768
|
exports.defaultReactions = defaultReactions;
|
|
2769
2769
|
exports.translations = translations;
|
|
2770
2770
|
exports.useBackgroundFilters = useBackgroundFilters;
|
|
2771
|
+
exports.useDeviceList = useDeviceList;
|
|
2771
2772
|
exports.useHorizontalScrollPosition = useHorizontalScrollPosition;
|
|
2772
2773
|
exports.useMenuContext = useMenuContext;
|
|
2773
2774
|
exports.useNoiseCancellation = useNoiseCancellation;
|