@azure/communication-react 1.12.1-alpha-202401190013 → 1.12.1-alpha-202401200012
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/communication-react.d.ts +10 -0
- package/dist/dist-cjs/communication-react/index.js +111 -51
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/LocalVideoTile.d.ts +1 -0
- package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +31 -8
- package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -0
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +5 -2
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.js +14 -10
- package/dist/dist-esm/react-components/src/components/Survey/TagsSurvey/TagsSurvey.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +4 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +4 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.d.ts +1 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +20 -14
- package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +25 -8
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/VideoTile.js +8 -3
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
- package/dist/dist-esm/react-components/src/theming/icons.js +5 -1
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Reaction.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Reaction.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +10 -10
@@ -6085,6 +6085,7 @@ export declare const DEFAULT_COMPONENT_ICONS: {
|
|
6085
6085
|
ContextMenuSpeakerIcon: React_2.JSX.Element;
|
6086
6086
|
SurveyStarIcon: React_2.JSX.Element;
|
6087
6087
|
SurveyStarIconFilled: React_2.JSX.Element;
|
6088
|
+
VideoSpotlighted: React_2.JSX.Element;
|
6088
6089
|
};
|
6089
6090
|
|
6090
6091
|
/**
|
@@ -6228,6 +6229,7 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
|
|
6228
6229
|
ContextMenuSpeakerIcon: React_2.JSX.Element;
|
6229
6230
|
SurveyStarIcon: React_2.JSX.Element;
|
6230
6231
|
SurveyStarIconFilled: React_2.JSX.Element;
|
6232
|
+
VideoSpotlighted: React_2.JSX.Element;
|
6231
6233
|
};
|
6232
6234
|
|
6233
6235
|
/**
|
@@ -10758,6 +10760,10 @@ export declare interface VideoGalleryProps {
|
|
10758
10760
|
* This callback will be called when a participant video tile is un-pinned.
|
10759
10761
|
*/
|
10760
10762
|
onUnpinParticipant?: (userId: string) => void;
|
10763
|
+
/**
|
10764
|
+
* List of spotlighted participant userIds.
|
10765
|
+
*/
|
10766
|
+
spotlightedParticipants?: string[];
|
10761
10767
|
/**
|
10762
10768
|
* Options for showing the remote video tile menu.
|
10763
10769
|
*
|
@@ -11057,6 +11063,10 @@ export declare interface VideoTileProps {
|
|
11057
11063
|
* Callback triggered by video tile on touch and hold.
|
11058
11064
|
*/
|
11059
11065
|
onLongTouch?: () => void;
|
11066
|
+
/**
|
11067
|
+
* If true, the video tile will show the spotlighted icon.
|
11068
|
+
*/
|
11069
|
+
isSpotlighted?: boolean;
|
11060
11070
|
}
|
11061
11071
|
|
11062
11072
|
/**
|
@@ -170,7 +170,7 @@ function getDefaultExportFromCjs (x) {
|
|
170
170
|
// Copyright (c) Microsoft Corporation.
|
171
171
|
// Licensed under the MIT License.
|
172
172
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
173
|
-
var telemetryVersion = '1.12.1-alpha-
|
173
|
+
var telemetryVersion = '1.12.1-alpha-202401200012';
|
174
174
|
|
175
175
|
|
176
176
|
var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
|
@@ -6473,7 +6473,9 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
6473
6473
|
/* @conditional-compile-remove(end-of-call-survey) */
|
6474
6474
|
SurveyStarIcon: React.createElement(reactIcons.Star28Regular, null),
|
6475
6475
|
/* @conditional-compile-remove(end-of-call-survey) */
|
6476
|
-
SurveyStarIconFilled: React.createElement(reactIcons.Star28Filled, null)
|
6476
|
+
SurveyStarIconFilled: React.createElement(reactIcons.Star28Filled, null),
|
6477
|
+
/* @conditional-compile-remove(spotlight) */
|
6478
|
+
VideoSpotlighted: React.createElement(reactIcons.VideoPersonStar20Filled, { style: { height: '16px', width: '16px' } })
|
6477
6479
|
};
|
6478
6480
|
|
6479
6481
|
// Copyright (c) Microsoft Corporation.
|
@@ -13262,6 +13264,8 @@ const VideoTileMoreOptionsButton = (props) => {
|
|
13262
13264
|
*/
|
13263
13265
|
const VideoTile = (props) => {
|
13264
13266
|
const { children, displayName, initialsName, isMirrored, isMuted,
|
13267
|
+
/* @conditional-compile-remove(spotlight) */
|
13268
|
+
isSpotlighted,
|
13265
13269
|
/* @conditional-compile-remove(pinned-participants) */
|
13266
13270
|
isPinned, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking,
|
13267
13271
|
/* @conditional-compile-remove(raise-hand) */
|
@@ -13396,11 +13400,14 @@ const VideoTile = (props) => {
|
|
13396
13400
|
participantStateString && (React.createElement(react.Text, { className: react.mergeStyles(participantStateStringStyles(theme)) }, bracketedParticipantString(participantStateString, !!canShowLabel))),
|
13397
13401
|
showMuteIndicator && isMuted && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
13398
13402
|
React.createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
|
13399
|
-
/* @conditional-compile-remove(
|
13400
|
-
React.createElement(
|
13403
|
+
/* @conditional-compile-remove(spotlight) */
|
13404
|
+
isSpotlighted && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
13405
|
+
React.createElement(react.Icon, { iconName: "VideoSpotlighted" }))),
|
13401
13406
|
/* @conditional-compile-remove(pinned-participants) */
|
13402
13407
|
isPinned && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
13403
|
-
React.createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) })))
|
13408
|
+
React.createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) }))),
|
13409
|
+
/* @conditional-compile-remove(pinned-participants) */
|
13410
|
+
React.createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu, canShowContextMenuButton: canShowContextMenuButton })))),
|
13404
13411
|
children && (React.createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === void 0 ? void 0 : styles.overlayContainer) }, children)),
|
13405
13412
|
/* @conditional-compile-remove(raise-hand) */ raisedHand && (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.2rem' }, className: raiseHandContainerStyles(theme, !canShowLabel) },
|
13406
13413
|
React.createElement(react.Stack.Item, null,
|
@@ -13441,7 +13448,8 @@ const bracketedParticipantString = (participantString, withBrackets) => {
|
|
13441
13448
|
const _RemoteVideoTile = React.memo((props) => {
|
13442
13449
|
var _a;
|
13443
13450
|
const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
|
13444
|
-
isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant,
|
13451
|
+
isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant,
|
13452
|
+
/* @conditional-compile-remove(spotlight) */ isSpotlighted, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings } = props;
|
13445
13453
|
const remoteVideoStreamProps = React.useMemo(() => ({
|
13446
13454
|
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
|
13447
13455
|
isScreenSharingOn,
|
@@ -13530,7 +13538,9 @@ const _RemoteVideoTile = React.memo((props) => {
|
|
13530
13538
|
/* @conditional-compile-remove(pinned-participants) */
|
13531
13539
|
isPinned: props.isPinned,
|
13532
13540
|
/* @conditional-compile-remove(pinned-participants) */
|
13533
|
-
onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([])))
|
13541
|
+
onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([]))),
|
13542
|
+
/* @conditional-compile-remove(spotlight) */
|
13543
|
+
isSpotlighted: isSpotlighted })),
|
13534
13544
|
drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
|
13535
13545
|
React.createElement(react.Stack, { styles: drawerMenuWrapperStyles },
|
13536
13546
|
React.createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItemProps([]), items: drawerMenuItemProps, heading: remoteParticipant.displayName }))))));
|
@@ -13784,7 +13794,11 @@ const _LocalVideoTile = React.memo((props) => {
|
|
13784
13794
|
/* @conditional-compile-remove(raise-hand) */
|
13785
13795
|
raisedHand,
|
13786
13796
|
/* @conditional-compile-remove(reaction) */
|
13787
|
-
reaction
|
13797
|
+
reaction,
|
13798
|
+
/* @conditional-compile-remove(spotlight) */
|
13799
|
+
isSpotlighted } = props;
|
13800
|
+
/* @conditional-compile-remove(spotlight) */
|
13801
|
+
const theme = useTheme();
|
13788
13802
|
const localVideoStreamProps = React.useMemo(() => ({
|
13789
13803
|
isMirrored: localVideoViewOptions === null || localVideoViewOptions === void 0 ? void 0 : localVideoViewOptions.isMirrored,
|
13790
13804
|
isStreamAvailable: isAvailable,
|
@@ -13802,6 +13816,14 @@ const _LocalVideoTile = React.memo((props) => {
|
|
13802
13816
|
]);
|
13803
13817
|
// Handle creating, destroying and updating the video stream as necessary
|
13804
13818
|
useLocalVideoStreamLifecycleMaintainer(localVideoStreamProps);
|
13819
|
+
/* @conditional-compile-remove(spotlight) */
|
13820
|
+
const spotlightBorder = React.useMemo(() => (React.createElement(react.Stack, { className: react.mergeStyles({
|
13821
|
+
position: 'absolute',
|
13822
|
+
height: '100%',
|
13823
|
+
width: '100%',
|
13824
|
+
zIndex: 100,
|
13825
|
+
border: `0.25rem solid ${theme.palette.black}`
|
13826
|
+
}) })), [theme.palette.black]);
|
13805
13827
|
const renderVideoStreamElement = React.useMemo(() => {
|
13806
13828
|
// Checking if renderElement is well defined or not as calling SDK has a number of video streams limitation which
|
13807
13829
|
// implies that, after their threshold, all streams have no child (blank video)
|
@@ -13811,19 +13833,26 @@ const _LocalVideoTile = React.memo((props) => {
|
|
13811
13833
|
}
|
13812
13834
|
return (React.createElement(React.Fragment, null,
|
13813
13835
|
React.createElement(FloatingLocalCameraCycleButton, { showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview !== null && showCameraSwitcherInLocalPreview !== void 0 ? showCameraSwitcherInLocalPreview : false, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: localVideoCameraSwitcherLabel, localVideoSelectedDescription: localVideoSelectedDescription }),
|
13814
|
-
React.createElement(StreamMedia, { videoStreamElement: renderElement, isMirrored: true }))
|
13836
|
+
React.createElement(StreamMedia, { videoStreamElement: renderElement, isMirrored: true }), /* @conditional-compile-remove(spotlight) */
|
13837
|
+
isSpotlighted && spotlightBorder));
|
13815
13838
|
}, [
|
13816
13839
|
localVideoCameraCycleButtonProps,
|
13817
13840
|
localVideoCameraSwitcherLabel,
|
13818
13841
|
localVideoSelectedDescription,
|
13819
13842
|
renderElement,
|
13820
|
-
showCameraSwitcherInLocalPreview
|
13843
|
+
showCameraSwitcherInLocalPreview,
|
13844
|
+
/* @conditional-compile-remove(spotlight) */ isSpotlighted,
|
13845
|
+
/* @conditional-compile-remove(spotlight) */ spotlightBorder
|
13821
13846
|
]);
|
13822
|
-
return (React.createElement(
|
13823
|
-
|
13824
|
-
|
13825
|
-
|
13826
|
-
|
13847
|
+
return (React.createElement(React.Fragment, null,
|
13848
|
+
React.createElement(VideoTile, { key: userId !== null && userId !== void 0 ? userId : 'local-video-tile', userId: userId, renderElement: renderVideoStreamElement, showLabel: showLabel, displayName: displayName, initialsName: initialsName, styles: styles, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize,
|
13849
|
+
/* @conditional-compile-remove(raise-hand) */
|
13850
|
+
raisedHand: raisedHand,
|
13851
|
+
/* @conditional-compile-remove(reaction) */
|
13852
|
+
reaction: reaction,
|
13853
|
+
/* @conditional-compile-remove(spotlight) */
|
13854
|
+
isSpotlighted: isSpotlighted }), /* @conditional-compile-remove(spotlight) */
|
13855
|
+
isSpotlighted && spotlightBorder));
|
13827
13856
|
});
|
13828
13857
|
const FloatingLocalCameraCycleButton = (props) => {
|
13829
13858
|
const { showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel, localVideoSelectedDescription } = props;
|
@@ -14016,35 +14045,41 @@ const _useOrganizedParticipants = (props) => {
|
|
14016
14045
|
return { gridParticipants, overflowGalleryParticipants: overflowGalleryParticipants };
|
14017
14046
|
};
|
14018
14047
|
/* @conditional-compile-remove(pinned-participants) */
|
14019
|
-
const
|
14020
|
-
var _a;
|
14048
|
+
const _useOrganizedParticipantsWithFocusedParticipants = (props) => {
|
14049
|
+
var _a, _b;
|
14021
14050
|
// map remote participants by userId
|
14022
14051
|
const remoteParticipantMap = props.remoteParticipants.reduce((map, remoteParticipant) => {
|
14023
14052
|
map[remoteParticipant.userId] = remoteParticipant;
|
14024
14053
|
return map;
|
14025
14054
|
}, {});
|
14026
|
-
|
14027
|
-
|
14028
|
-
|
14055
|
+
const spotlightedParticipantUserIds = (_a = props.spotlightedParticipantUserIds) !== null && _a !== void 0 ? _a : [];
|
14056
|
+
// declare focused participant user ids as spotlighted participants user ids followed by
|
14057
|
+
// pinned participants user ids
|
14058
|
+
const focusedParticipantUserIds = [
|
14059
|
+
...new Set(spotlightedParticipantUserIds.concat((_b = props.pinnedParticipantUserIds) !== null && _b !== void 0 ? _b : []))
|
14060
|
+
];
|
14061
|
+
// get focused participants from map of remote participants in the order of the user ids
|
14062
|
+
const focusedParticipants = [];
|
14063
|
+
focusedParticipantUserIds.forEach((id) => {
|
14029
14064
|
const pinnedParticipant = remoteParticipantMap[id];
|
14030
14065
|
if (pinnedParticipant) {
|
14031
|
-
|
14066
|
+
focusedParticipants.push(pinnedParticipant);
|
14032
14067
|
}
|
14033
14068
|
});
|
14034
|
-
// get
|
14035
|
-
const
|
14036
|
-
const
|
14069
|
+
// get unfocused participants by filtering out set of focused participant user ids from all remote participants
|
14070
|
+
const focusedParticipantUserIdSet = new Set(focusedParticipantUserIds);
|
14071
|
+
const unfocusedParticipants = props.remoteParticipants.filter((p) => !focusedParticipantUserIdSet.has(p.userId));
|
14037
14072
|
const useOrganizedParticipantsProps = Object.assign(Object.assign({}, props), {
|
14038
14073
|
// if there are pinned participants then we should only consider unpinned participants
|
14039
|
-
remoteParticipants:
|
14074
|
+
remoteParticipants: unfocusedParticipants });
|
14040
14075
|
const useOrganizedParticipantsResult = _useOrganizedParticipants(useOrganizedParticipantsProps);
|
14041
|
-
if (
|
14076
|
+
if (focusedParticipants.length === 0) {
|
14042
14077
|
return useOrganizedParticipantsResult;
|
14043
14078
|
}
|
14044
14079
|
return {
|
14045
|
-
gridParticipants: props.isScreenShareActive ? [] :
|
14080
|
+
gridParticipants: props.isScreenShareActive ? [] : focusedParticipants,
|
14046
14081
|
overflowGalleryParticipants: props.isScreenShareActive
|
14047
|
-
?
|
14082
|
+
? focusedParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)
|
14048
14083
|
: useOrganizedParticipantsResult.gridParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)
|
14049
14084
|
};
|
14050
14085
|
};
|
@@ -14069,7 +14104,7 @@ const putVideoParticipantsFirst = (remoteParticipants) => {
|
|
14069
14104
|
*/
|
14070
14105
|
const useOrganizedParticipants = (args) => {
|
14071
14106
|
/* @conditional-compile-remove(pinned-participants) */
|
14072
|
-
return
|
14107
|
+
return _useOrganizedParticipantsWithFocusedParticipants(args);
|
14073
14108
|
};
|
14074
14109
|
|
14075
14110
|
// Copyright (c) Microsoft Corporation.
|
@@ -14869,7 +14904,8 @@ const DefaultLayout = (props) => {
|
|
14869
14904
|
const { remoteParticipants = [], localParticipant, dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth,
|
14870
14905
|
/* @conditional-compile-remove(vertical-gallery) */
|
14871
14906
|
parentHeight, pinnedParticipantUserIds = [],
|
14872
|
-
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition = 'horizontalBottom'
|
14907
|
+
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition = 'horizontalBottom',
|
14908
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds } = props;
|
14873
14909
|
const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
|
14874
14910
|
/* @conditional-compile-remove(vertical-gallery) */
|
14875
14911
|
const isShort = parentHeight ? isShortHeight(parentHeight) : false;
|
@@ -14887,7 +14923,8 @@ const DefaultLayout = (props) => {
|
|
14887
14923
|
? childrenPerPage.current - ((pinnedParticipantUserIds.length + 1) % childrenPerPage.current)
|
14888
14924
|
: childrenPerPage.current,
|
14889
14925
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipantUserIds,
|
14890
|
-
/* @conditional-compile-remove(gallery-layouts) */ layout: 'default'
|
14926
|
+
/* @conditional-compile-remove(gallery-layouts) */ layout: 'default',
|
14927
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds
|
14891
14928
|
});
|
14892
14929
|
let activeVideoStreams = 0;
|
14893
14930
|
const gridTiles = gridParticipants.map((p) => {
|
@@ -15709,7 +15746,8 @@ const layerHostStyle = {
|
|
15709
15746
|
const FloatingLocalVideoLayout = (props) => {
|
15710
15747
|
const { remoteParticipants = [], dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, showCameraSwitcherInLocalPreview, parentWidth, parentHeight,
|
15711
15748
|
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition = 'horizontalBottom', pinnedParticipantUserIds = [],
|
15712
|
-
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize
|
15749
|
+
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize,
|
15750
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds } = props;
|
15713
15751
|
const theme = useTheme();
|
15714
15752
|
const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
|
15715
15753
|
/* @conditional-compile-remove(vertical-gallery) */
|
@@ -15726,7 +15764,8 @@ const FloatingLocalVideoLayout = (props) => {
|
|
15726
15764
|
? childrenPerPage.current - (pinnedParticipantUserIds.length % childrenPerPage.current)
|
15727
15765
|
: childrenPerPage.current,
|
15728
15766
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipantUserIds,
|
15729
|
-
/* @conditional-compile-remove(gallery-layouts) */ layout: 'floatingLocalVideo'
|
15767
|
+
/* @conditional-compile-remove(gallery-layouts) */ layout: 'floatingLocalVideo',
|
15768
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds
|
15730
15769
|
});
|
15731
15770
|
let activeVideoStreams = 0;
|
15732
15771
|
const gridTiles = gridParticipants.map((p) => {
|
@@ -16140,7 +16179,9 @@ const VideoGallery = (props) => {
|
|
16140
16179
|
/* @conditional-compile-remove(vertical-gallery) */
|
16141
16180
|
overflowGalleryPosition = 'horizontalBottom',
|
16142
16181
|
/* @conditional-compile-remove(rooms) */
|
16143
|
-
localVideoTileSize = 'followDeviceOrientation'
|
16182
|
+
localVideoTileSize = 'followDeviceOrientation',
|
16183
|
+
/* @conditional-compile-remove(spotlight) */
|
16184
|
+
spotlightedParticipants } = props;
|
16144
16185
|
const ids = useIdentifiers();
|
16145
16186
|
const theme = useTheme();
|
16146
16187
|
const localeStrings = useLocale$1().strings.videoGallery;
|
@@ -16197,6 +16238,8 @@ const VideoGallery = (props) => {
|
|
16197
16238
|
if (onRenderLocalVideoTile) {
|
16198
16239
|
return onRenderLocalVideoTile(localParticipant);
|
16199
16240
|
}
|
16241
|
+
/* @conditional-compile-remove(spotlight) */
|
16242
|
+
const isSpotlighted = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.includes(localParticipant.userId);
|
16200
16243
|
const localVideoTileStyles = react.concatStyleSets(localTileNotInGrid ? floatingLocalVideoTileStyle : {}, {
|
16201
16244
|
root: { borderRadius: theme.effects.roundedCorner4 }
|
16202
16245
|
}, styles === null || styles === void 0 ? void 0 : styles.localVideo);
|
@@ -16210,7 +16253,9 @@ const VideoGallery = (props) => {
|
|
16210
16253
|
/* @conditional-compile-remove(raise-hand) */
|
16211
16254
|
raisedHand: localParticipant.raisedHand,
|
16212
16255
|
/* @conditional-compile-remove(reaction) */
|
16213
|
-
reaction: localParticipant.reaction
|
16256
|
+
reaction: localParticipant.reaction,
|
16257
|
+
/* @conditional-compile-remove(spotlight) */
|
16258
|
+
isSpotlighted: isSpotlighted })));
|
16214
16259
|
}, [
|
16215
16260
|
isNarrow,
|
16216
16261
|
localParticipant,
|
@@ -16233,7 +16278,9 @@ const VideoGallery = (props) => {
|
|
16233
16278
|
localVideoTileSize,
|
16234
16279
|
/* @conditional-compile-remove(gallery-layouts) */
|
16235
16280
|
layout,
|
16236
|
-
showLocalVideoTileLabel
|
16281
|
+
showLocalVideoTileLabel,
|
16282
|
+
/* @conditional-compile-remove(spotlight) */
|
16283
|
+
spotlightedParticipants
|
16237
16284
|
]);
|
16238
16285
|
/* @conditional-compile-remove(pinned-participants) */
|
16239
16286
|
const onPinParticipant = React.useCallback((userId) => {
|
@@ -16270,7 +16317,11 @@ const VideoGallery = (props) => {
|
|
16270
16317
|
/* @conditional-compile-remove(pinned-participants) */
|
16271
16318
|
const selectedScalingMode = remoteVideoStream ? selectedScalingModeState[participant.userId] : undefined;
|
16272
16319
|
/* @conditional-compile-remove(pinned-participants) */
|
16273
|
-
|
16320
|
+
let isPinned = pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participant.userId);
|
16321
|
+
/* @conditional-compile-remove(spotlight) */
|
16322
|
+
const isSpotlighted = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.includes(participant.userId);
|
16323
|
+
/* @conditional-compile-remove(spotlight) */
|
16324
|
+
isPinned = isSpotlighted ? false : isPinned;
|
16274
16325
|
const createViewOptions = () => {
|
16275
16326
|
var _a, _b;
|
16276
16327
|
/* @conditional-compile-remove(pinned-participants) */
|
@@ -16310,7 +16361,9 @@ const VideoGallery = (props) => {
|
|
16310
16361
|
/* @conditional-compile-remove(pinned-participants) */
|
16311
16362
|
disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES,
|
16312
16363
|
/* @conditional-compile-remove(pinned-participants) */
|
16313
|
-
toggleAnnouncerString: toggleAnnouncerString
|
16364
|
+
toggleAnnouncerString: toggleAnnouncerString,
|
16365
|
+
/* @conditional-compile-remove(spotlight) */
|
16366
|
+
isSpotlighted: isSpotlighted }));
|
16314
16367
|
}, [
|
16315
16368
|
onCreateRemoteStreamView,
|
16316
16369
|
onDisposeRemoteVideoStreamView,
|
@@ -16326,7 +16379,8 @@ const VideoGallery = (props) => {
|
|
16326
16379
|
/* @conditional-compile-remove(pinned-participants) */ onPinParticipant,
|
16327
16380
|
/* @conditional-compile-remove(pinned-participants) */ onUnpinParticipant,
|
16328
16381
|
/* @conditional-compile-remove(pinned-participants) */ toggleAnnouncerString,
|
16329
|
-
/* @conditional-compile-remove(pinned-participants) */ onUpdateScalingMode
|
16382
|
+
/* @conditional-compile-remove(pinned-participants) */ onUpdateScalingMode,
|
16383
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipants
|
16330
16384
|
]);
|
16331
16385
|
const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
|
16332
16386
|
const localScreenShareStreamComponent = React.createElement(LocalScreenShare, { localParticipant: localParticipant });
|
@@ -16350,7 +16404,8 @@ const VideoGallery = (props) => {
|
|
16350
16404
|
parentHeight: containerHeight,
|
16351
16405
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipantUserIds: pinnedParticipants,
|
16352
16406
|
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition,
|
16353
|
-
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize
|
16407
|
+
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize,
|
16408
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds: spotlightedParticipants
|
16354
16409
|
}), [
|
16355
16410
|
remoteParticipants,
|
16356
16411
|
localParticipant,
|
@@ -16366,7 +16421,8 @@ const VideoGallery = (props) => {
|
|
16366
16421
|
defaultOnRenderVideoTile,
|
16367
16422
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipants,
|
16368
16423
|
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition,
|
16369
|
-
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize
|
16424
|
+
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize,
|
16425
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipants
|
16370
16426
|
]);
|
16371
16427
|
const videoGalleryLayout = React.useMemo(() => {
|
16372
16428
|
/* @conditional-compile-remove(gallery-layouts) */
|
@@ -18615,6 +18671,7 @@ const _TagsSurvey = (props) => {
|
|
18615
18671
|
const [selectedTags, setSelectedTags] = React.useState({});
|
18616
18672
|
const [textResponse, setTextResponse] = React.useState({});
|
18617
18673
|
const [selectedTextResponse, setSelectedTextResponse] = React.useState({});
|
18674
|
+
const [checkedTextFields, setCheckedTextFields] = React.useState([]);
|
18618
18675
|
const tags = React.useMemo(() => {
|
18619
18676
|
const tags = [];
|
18620
18677
|
Object.keys(callIssuesToTag).forEach((issueCategory) => {
|
@@ -18652,6 +18709,7 @@ const _TagsSurvey = (props) => {
|
|
18652
18709
|
});
|
18653
18710
|
}
|
18654
18711
|
else {
|
18712
|
+
setCheckedTextFields([...checkedTextFields, issueCategory]);
|
18655
18713
|
setSelectedTextResponse((prevState) => {
|
18656
18714
|
prevState[issueCategory] = textResponse[issueCategory];
|
18657
18715
|
return prevState;
|
@@ -18673,33 +18731,35 @@ const _TagsSurvey = (props) => {
|
|
18673
18731
|
});
|
18674
18732
|
}
|
18675
18733
|
else {
|
18734
|
+
setCheckedTextFields(checkedTextFields.filter((id) => id !== issueCategory));
|
18676
18735
|
setSelectedTextResponse((prevState) => {
|
18677
18736
|
delete prevState[issueCategory];
|
18678
18737
|
return prevState;
|
18679
18738
|
});
|
18680
18739
|
}
|
18681
18740
|
}
|
18682
|
-
|
18683
|
-
onConfirm(selectedTags, selectedTextResponse);
|
18684
|
-
}
|
18685
|
-
}, [onConfirm, selectedTags, selectedTextResponse, textResponse]);
|
18741
|
+
}, [textResponse, checkedTextFields]);
|
18686
18742
|
const theme = react.useTheme();
|
18687
18743
|
const onRenderLabel = React.useCallback((issueCategory) => {
|
18688
18744
|
return (React.createElement(react.TextField, { key: issueCategory, className: freeFormTextFieldClassName, underlined: true, placeholder: strings === null || strings === void 0 ? void 0 : strings.tagsSurveyTextFieldDefaultText, onChange: (e, v) => {
|
18689
18745
|
if (v) {
|
18746
|
+
setCheckedTextFields([...checkedTextFields, issueCategory]);
|
18690
18747
|
setTextResponse((prevState) => {
|
18691
18748
|
prevState[issueCategory] = v;
|
18692
18749
|
return prevState;
|
18693
18750
|
});
|
18694
18751
|
setSelectedTextResponse((prevState) => {
|
18695
|
-
|
18696
|
-
prevState[issueCategory] = v;
|
18697
|
-
}
|
18752
|
+
prevState[issueCategory] = v;
|
18698
18753
|
return prevState;
|
18699
18754
|
});
|
18700
18755
|
}
|
18701
18756
|
} }));
|
18702
|
-
}, [strings === null || strings === void 0 ? void 0 : strings.tagsSurveyTextFieldDefaultText]);
|
18757
|
+
}, [strings === null || strings === void 0 ? void 0 : strings.tagsSurveyTextFieldDefaultText, checkedTextFields]);
|
18758
|
+
React.useEffect(() => {
|
18759
|
+
if (onConfirm) {
|
18760
|
+
onConfirm(selectedTags, selectedTextResponse);
|
18761
|
+
}
|
18762
|
+
}, [selectedTags, selectedTextResponse, onConfirm]);
|
18703
18763
|
return (React.createElement(React.Fragment, null,
|
18704
18764
|
React.createElement(react.Stack, { verticalAlign: "center" },
|
18705
18765
|
React.createElement(react.Text, { className: questionTextStyle(theme) }, strings === null || strings === void 0 ? void 0 : strings.tagsSurveyQuestion)),
|
@@ -18711,7 +18771,7 @@ const _TagsSurvey = (props) => {
|
|
18711
18771
|
tags[key].map((t, i) => {
|
18712
18772
|
return (React.createElement(react.Checkbox, { className: checkboxClassName, key: `checkBox_${i}`, label: t.message, onChange: (ev, checked) => onChange(key, checked !== null && checked !== void 0 ? checked : false, t.issue) }));
|
18713
18773
|
}),
|
18714
|
-
showFreeFormTextField && (React.createElement(react.Checkbox, { styles: freeFormTextCheckboxStyles, onChange: (ev, checked) => onChange(key, checked !== null && checked !== void 0 ? checked : false), onRenderLabel: () => {
|
18774
|
+
showFreeFormTextField && (React.createElement(react.Checkbox, { checked: checkedTextFields.includes(key), styles: freeFormTextCheckboxStyles, onChange: (ev, checked) => onChange(key, checked !== null && checked !== void 0 ? checked : false), onRenderLabel: () => {
|
18715
18775
|
return onRenderLabel(key);
|
18716
18776
|
} }))));
|
18717
18777
|
})),
|
@@ -26061,7 +26121,7 @@ const Reaction = (props) => {
|
|
26061
26121
|
const reactionButtonProps = usePropsFor$1(ReactionButton);
|
26062
26122
|
const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
|
26063
26123
|
const reactionButtonDisabled = isDisabled(props.option) || reactionButtonProps.disabled;
|
26064
|
-
return (React.createElement(ReactionButton, Object.assign({ "data-ui-id": "call-composite-reaction-button" }, reactionButtonProps, { showLabel: props.displayType !== 'compact', disabled: reactionButtonDisabled || props.disabled, styles: styles, disableTooltip: props.disableTooltip })));
|
26124
|
+
return (React.createElement(ReactionButton, Object.assign({ "data-ui-id": "call-composite-reaction-button" }, reactionButtonProps, { showLabel: props.displayType !== 'compact', disabled: reactionButtonDisabled || props.disabled, styles: styles, disableTooltip: props.disableTooltip, persistMenu: true })));
|
26065
26125
|
};
|
26066
26126
|
/* @conditional-compile-remove(reaction) */
|
26067
26127
|
const isDisabled = (option) => {
|