@stream-io/video-react-sdk 1.39.3 → 1.40.0
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 +18 -1
- package/dist/css/embedded.css +69 -0
- package/dist/css/embedded.css.map +1 -1
- package/dist/css/styles.css +69 -0
- package/dist/css/styles.css.map +1 -1
- package/dist/embedded.cjs.js +20 -3
- package/dist/embedded.cjs.js.map +1 -1
- package/dist/embedded.es.js +20 -3
- package/dist/embedded.es.js.map +1 -1
- package/dist/index.cjs.js +22 -4
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +22 -5
- package/dist/index.es.js.map +1 -1
- package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.d.ts +14 -1
- package/dist/src/translations/index.d.ts +2 -0
- package/package.json +6 -6
- package/src/core/components/ParticipantView/DefaultParticipantViewUI.tsx +49 -0
- package/src/translations/en.json +3 -0
package/dist/index.cjs.js
CHANGED
|
@@ -1406,7 +1406,7 @@ const SpeakerTest = (props) => {
|
|
|
1406
1406
|
const audioElementRef = react.useRef(null);
|
|
1407
1407
|
const [isPlaying, setIsPlaying] = react.useState(false);
|
|
1408
1408
|
const { t } = videoReactBindings.useI18n();
|
|
1409
|
-
const { audioUrl = `https://unpkg.com/${"@stream-io/video-react-sdk"}@${"1.
|
|
1409
|
+
const { audioUrl = `https://unpkg.com/${"@stream-io/video-react-sdk"}@${"1.40.0"}/assets/piano.mp3`, } = props;
|
|
1410
1410
|
// Update audio output device when selection changes
|
|
1411
1411
|
react.useEffect(() => {
|
|
1412
1412
|
const audio = audioElementRef.current;
|
|
@@ -2392,15 +2392,30 @@ const DefaultScreenShareOverlay = () => {
|
|
|
2392
2392
|
};
|
|
2393
2393
|
return (jsxRuntime.jsxs("div", { className: "str-video__screen-share-overlay", children: [jsxRuntime.jsx(Icon, { icon: "screen-share-off" }), jsxRuntime.jsx("span", { className: "str-video__screen-share-overlay__title", children: t('You are presenting your screen') }), jsxRuntime.jsxs("button", { onClick: stopScreenShare, type: "button", className: "str-video__screen-share-overlay__button", children: [jsxRuntime.jsx(Icon, { icon: "close" }), " ", t('Stop Screen Sharing')] })] }));
|
|
2394
2394
|
};
|
|
2395
|
-
|
|
2395
|
+
/**
|
|
2396
|
+
* Rendered over a remote participant's tile when the browser's autoplay policy
|
|
2397
|
+
* has blocked their audio. Selecting it calls `call.resumeAudio()`, unblocking
|
|
2398
|
+
* every blocked element at once.
|
|
2399
|
+
*/
|
|
2400
|
+
const DefaultAudioBlockedNotification = () => {
|
|
2401
|
+
const call = videoReactBindings.useCall();
|
|
2402
|
+
const { t } = videoReactBindings.useI18n();
|
|
2403
|
+
return (jsxRuntime.jsx("button", { type: "button", className: "str-video__audio-blocked-notification", onClick: call?.resumeAudio, "aria-live": "polite", children: jsxRuntime.jsxs("span", { className: "str-video__audio-blocked-notification__message", children: [jsxRuntime.jsx(Icon, { icon: "speaker" }), jsxRuntime.jsxs("span", { className: "str-video__audio-blocked-notification__text", children: [jsxRuntime.jsx("span", { className: "str-video__audio-blocked-notification__title", children: t('Audio is blocked by your system') }), jsxRuntime.jsx("span", { className: "str-video__audio-blocked-notification__subtitle", children: t('Click or tap to play audio') })] })] }) }));
|
|
2404
|
+
};
|
|
2405
|
+
const DefaultParticipantViewUI = ({ indicatorsVisible = true, menuPlacement = 'bottom-start', showMenuButton = true, ParticipantActionsContextMenu: ParticipantActionsContextMenu$1 = ParticipantActionsContextMenu, AudioBlockedNotification = DefaultAudioBlockedNotification, }) => {
|
|
2396
2406
|
const { participant, trackType } = useParticipantViewContext();
|
|
2407
|
+
const { useAutoplayBlockedSessionIds } = videoReactBindings.useCallStateHooks();
|
|
2408
|
+
const blockedSessionIds = useAutoplayBlockedSessionIds();
|
|
2397
2409
|
const isScreenSharing = videoClient.hasScreenShare(participant);
|
|
2410
|
+
const shouldShowAudioBlockedNotification = !participant.isLocalParticipant &&
|
|
2411
|
+
trackType !== 'screenShareTrack' &&
|
|
2412
|
+
blockedSessionIds.includes(participant.sessionId);
|
|
2398
2413
|
if (participant.isLocalParticipant &&
|
|
2399
2414
|
isScreenSharing &&
|
|
2400
2415
|
trackType === 'screenShareTrack') {
|
|
2401
2416
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(DefaultScreenShareOverlay, {}), jsxRuntime.jsx(ParticipantDetails, { indicatorsVisible: indicatorsVisible })] }));
|
|
2402
2417
|
}
|
|
2403
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [showMenuButton && (jsxRuntime.jsx(MenuToggle, { strategy: "fixed", placement: menuPlacement, ToggleButton: ToggleButton, children: jsxRuntime.jsx(ParticipantActionsContextMenu$1, {}) })), jsxRuntime.jsx(Reaction, { participant: participant }), jsxRuntime.jsx(ParticipantDetails, { indicatorsVisible: indicatorsVisible })] }));
|
|
2418
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [showMenuButton && (jsxRuntime.jsx(MenuToggle, { strategy: "fixed", placement: menuPlacement, ToggleButton: ToggleButton, children: jsxRuntime.jsx(ParticipantActionsContextMenu$1, {}) })), jsxRuntime.jsx(Reaction, { participant: participant }), jsxRuntime.jsx(ParticipantDetails, { indicatorsVisible: indicatorsVisible }), AudioBlockedNotification && shouldShowAudioBlockedNotification && (jsxRuntime.jsx(AudioBlockedNotification, {}))] }));
|
|
2404
2419
|
};
|
|
2405
2420
|
const ParticipantDetails = ({ indicatorsVisible = true, }) => {
|
|
2406
2421
|
const { participant, trackType } = useParticipantViewContext();
|
|
@@ -2557,6 +2572,8 @@ var en = {
|
|
|
2557
2572
|
"You have no permission to share your audio": "You have no permission to share your audio",
|
|
2558
2573
|
"You are presenting your screen": "You are presenting your screen",
|
|
2559
2574
|
"Stop Screen Sharing": "Stop Screen Sharing",
|
|
2575
|
+
"Audio is blocked by your system": "Audio is blocked by your system",
|
|
2576
|
+
"Click or tap to play audio": "Click or tap to play audio",
|
|
2560
2577
|
Allow: Allow,
|
|
2561
2578
|
Revoke: Revoke,
|
|
2562
2579
|
Dismiss: Dismiss,
|
|
@@ -3261,7 +3278,7 @@ const checkCanJoinEarly = (startsAt, joinAheadTimeSeconds) => {
|
|
|
3261
3278
|
return Date.now() >= +startsAt - (joinAheadTimeSeconds ?? 0) * 1000;
|
|
3262
3279
|
};
|
|
3263
3280
|
|
|
3264
|
-
const [major, minor, patch] = ("1.
|
|
3281
|
+
const [major, minor, patch] = ("1.40.0").split('.');
|
|
3265
3282
|
videoClient.setSdkInfo({
|
|
3266
3283
|
type: videoClient.SfuModels.SdkType.REACT,
|
|
3267
3284
|
major,
|
|
@@ -3290,6 +3307,7 @@ exports.CallStatsButton = CallStatsButton;
|
|
|
3290
3307
|
exports.CancelCallButton = CancelCallButton;
|
|
3291
3308
|
exports.CancelCallConfirmButton = CancelCallConfirmButton;
|
|
3292
3309
|
exports.CompositeButton = CompositeButton;
|
|
3310
|
+
exports.DefaultAudioBlockedNotification = DefaultAudioBlockedNotification;
|
|
3293
3311
|
exports.DefaultParticipantViewUI = DefaultParticipantViewUI;
|
|
3294
3312
|
exports.DefaultReactionsMenu = DefaultReactionsMenu;
|
|
3295
3313
|
exports.DefaultScreenShareOverlay = DefaultScreenShareOverlay;
|