@azure/communication-react 1.12.1-alpha-202401190013 → 1.12.1-alpha-202401230013
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 +30 -0
- package/dist/dist-cjs/communication-react/index.js +146 -62
- 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/calling-component-bindings/src/participantListSelector.js +22 -6
- package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +7 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +15 -4
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +1 -0
- package/dist/dist-esm/communication-react/src/index.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/ParticipantList.js +2 -1
- package/dist/dist-esm/react-components/src/components/ParticipantList.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/index.d.ts +1 -0
- package/dist/dist-esm/react-components/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/icons.d.ts +2 -0
- package/dist/dist-esm/react-components/src/theming/icons.js +7 -1
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +17 -0
- package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.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 +2 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +10 -10
|
@@ -2528,6 +2528,12 @@ export declare type CallParticipantListParticipant = ParticipantListParticipant
|
|
|
2528
2528
|
* @beta
|
|
2529
2529
|
* */
|
|
2530
2530
|
reaction?: Reaction;
|
|
2531
|
+
/**
|
|
2532
|
+
* Whether calling participant is spotlighted
|
|
2533
|
+
*
|
|
2534
|
+
* @beta
|
|
2535
|
+
* */
|
|
2536
|
+
isSpotlighted?: Spotlight;
|
|
2531
2537
|
};
|
|
2532
2538
|
|
|
2533
2539
|
/**
|
|
@@ -6047,6 +6053,7 @@ export declare const DEFAULT_COMPONENT_ICONS: {
|
|
|
6047
6053
|
ParticipantItemOptions: React_2.JSX.Element;
|
|
6048
6054
|
ParticipantItemOptionsHovered: React_2.JSX.Element;
|
|
6049
6055
|
ParticipantItemScreenShareStart: React_2.JSX.Element;
|
|
6056
|
+
ParticipantItemSpotlighted: React_2.JSX.Element;
|
|
6050
6057
|
HoldCallContextualMenuItem: React_2.JSX.Element;
|
|
6051
6058
|
HoldCallButton: React_2.JSX.Element;
|
|
6052
6059
|
ResumeCall: React_2.JSX.Element;
|
|
@@ -6085,6 +6092,7 @@ export declare const DEFAULT_COMPONENT_ICONS: {
|
|
|
6085
6092
|
ContextMenuSpeakerIcon: React_2.JSX.Element;
|
|
6086
6093
|
SurveyStarIcon: React_2.JSX.Element;
|
|
6087
6094
|
SurveyStarIconFilled: React_2.JSX.Element;
|
|
6095
|
+
VideoSpotlighted: React_2.JSX.Element;
|
|
6088
6096
|
};
|
|
6089
6097
|
|
|
6090
6098
|
/**
|
|
@@ -6193,6 +6201,7 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
|
|
|
6193
6201
|
ErrorBarCallVideoRecoveredBySystem: React_2.JSX.Element;
|
|
6194
6202
|
ErrorBarCallVideoStoppedBySystem: React_2.JSX.Element;
|
|
6195
6203
|
MessageResend: React_2.JSX.Element;
|
|
6204
|
+
ParticipantItemSpotlighted: React_2.JSX.Element;
|
|
6196
6205
|
HoldCallContextualMenuItem: React_2.JSX.Element;
|
|
6197
6206
|
HoldCallButton: React_2.JSX.Element;
|
|
6198
6207
|
ResumeCall: React_2.JSX.Element;
|
|
@@ -6228,6 +6237,7 @@ export declare const DEFAULT_COMPOSITE_ICONS: {
|
|
|
6228
6237
|
ContextMenuSpeakerIcon: React_2.JSX.Element;
|
|
6229
6238
|
SurveyStarIcon: React_2.JSX.Element;
|
|
6230
6239
|
SurveyStarIconFilled: React_2.JSX.Element;
|
|
6240
|
+
VideoSpotlighted: React_2.JSX.Element;
|
|
6231
6241
|
};
|
|
6232
6242
|
|
|
6233
6243
|
/**
|
|
@@ -9559,6 +9569,18 @@ export declare interface SpokenLanguageStrings {
|
|
|
9559
9569
|
'zh-tw': string;
|
|
9560
9570
|
}
|
|
9561
9571
|
|
|
9572
|
+
/**
|
|
9573
|
+
* Spotlight state with order
|
|
9574
|
+
*
|
|
9575
|
+
* @beta
|
|
9576
|
+
*/
|
|
9577
|
+
export declare type Spotlight = {
|
|
9578
|
+
/**
|
|
9579
|
+
* Specifies the order position of the spotlight
|
|
9580
|
+
*/
|
|
9581
|
+
spotlightOrderPosition?: number;
|
|
9582
|
+
};
|
|
9583
|
+
|
|
9562
9584
|
/**
|
|
9563
9585
|
* State only version of {@link @azure/communication-calling#SpotlightCallFeature}
|
|
9564
9586
|
*
|
|
@@ -10758,6 +10780,10 @@ export declare interface VideoGalleryProps {
|
|
|
10758
10780
|
* This callback will be called when a participant video tile is un-pinned.
|
|
10759
10781
|
*/
|
|
10760
10782
|
onUnpinParticipant?: (userId: string) => void;
|
|
10783
|
+
/**
|
|
10784
|
+
* List of spotlighted participant userIds.
|
|
10785
|
+
*/
|
|
10786
|
+
spotlightedParticipants?: string[];
|
|
10761
10787
|
/**
|
|
10762
10788
|
* Options for showing the remote video tile menu.
|
|
10763
10789
|
*
|
|
@@ -11057,6 +11083,10 @@ export declare interface VideoTileProps {
|
|
|
11057
11083
|
* Callback triggered by video tile on touch and hold.
|
|
11058
11084
|
*/
|
|
11059
11085
|
onLongTouch?: () => void;
|
|
11086
|
+
/**
|
|
11087
|
+
* If true, the video tile will show the spotlighted icon.
|
|
11088
|
+
*/
|
|
11089
|
+
isSpotlighted?: boolean;
|
|
11060
11090
|
}
|
|
11061
11091
|
|
|
11062
11092
|
/**
|
|
@@ -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-202401230013';
|
|
174
174
|
|
|
175
175
|
|
|
176
176
|
var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
|
|
@@ -6408,6 +6408,8 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
|
6408
6408
|
ParticipantItemOptions: React.createElement(React.Fragment, null),
|
|
6409
6409
|
ParticipantItemOptionsHovered: React.createElement(reactIcons.MoreHorizontal20Filled, null),
|
|
6410
6410
|
ParticipantItemScreenShareStart: React.createElement(reactIcons.ShareScreenStart20Filled, null),
|
|
6411
|
+
/* @conditional-compile-remove(spotlight) */
|
|
6412
|
+
ParticipantItemSpotlighted: React.createElement(reactIcons.VideoPersonStar20Filled, null),
|
|
6411
6413
|
/* @conditional-compile-remove(PSTN-calls) */
|
|
6412
6414
|
HoldCallContextualMenuItem: React.createElement(reactIcons.CallPause20Regular, null),
|
|
6413
6415
|
/* @conditional-compile-remove(PSTN-calls) */
|
|
@@ -6473,7 +6475,9 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
|
6473
6475
|
/* @conditional-compile-remove(end-of-call-survey) */
|
|
6474
6476
|
SurveyStarIcon: React.createElement(reactIcons.Star28Regular, null),
|
|
6475
6477
|
/* @conditional-compile-remove(end-of-call-survey) */
|
|
6476
|
-
SurveyStarIconFilled: React.createElement(reactIcons.Star28Filled, null)
|
|
6478
|
+
SurveyStarIconFilled: React.createElement(reactIcons.Star28Filled, null),
|
|
6479
|
+
/* @conditional-compile-remove(spotlight) */
|
|
6480
|
+
VideoSpotlighted: React.createElement(reactIcons.VideoPersonStar20Filled, { style: { height: '16px', width: '16px' } })
|
|
6477
6481
|
};
|
|
6478
6482
|
|
|
6479
6483
|
// Copyright (c) Microsoft Corporation.
|
|
@@ -12341,7 +12345,8 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
|
|
|
12341
12345
|
React.createElement(react.Stack.Item, null,
|
|
12342
12346
|
React.createElement(RaisedHandIcon, null)))),
|
|
12343
12347
|
callingParticipant.isScreenSharing && (React.createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$2, ariaLabel: strings.sharingIconLabel })),
|
|
12344
|
-
callingParticipant.isMuted && (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel }))
|
|
12348
|
+
callingParticipant.isMuted && (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })),
|
|
12349
|
+
/* @conditional-compile-remove(spotlight) */ callingParticipant.isSpotlighted && (React.createElement(react.Icon, { iconName: "ParticipantItemSpotlighted", className: iconStyles$2 }))));
|
|
12345
12350
|
}
|
|
12346
12351
|
: () => null;
|
|
12347
12352
|
/* @conditional-compile-remove(raise-hand) */
|
|
@@ -13262,6 +13267,8 @@ const VideoTileMoreOptionsButton = (props) => {
|
|
|
13262
13267
|
*/
|
|
13263
13268
|
const VideoTile = (props) => {
|
|
13264
13269
|
const { children, displayName, initialsName, isMirrored, isMuted,
|
|
13270
|
+
/* @conditional-compile-remove(spotlight) */
|
|
13271
|
+
isSpotlighted,
|
|
13265
13272
|
/* @conditional-compile-remove(pinned-participants) */
|
|
13266
13273
|
isPinned, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking,
|
|
13267
13274
|
/* @conditional-compile-remove(raise-hand) */
|
|
@@ -13396,11 +13403,14 @@ const VideoTile = (props) => {
|
|
|
13396
13403
|
participantStateString && (React.createElement(react.Text, { className: react.mergeStyles(participantStateStringStyles(theme)) }, bracketedParticipantString(participantStateString, !!canShowLabel))),
|
|
13397
13404
|
showMuteIndicator && isMuted && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
|
13398
13405
|
React.createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
|
|
13399
|
-
/* @conditional-compile-remove(
|
|
13400
|
-
React.createElement(
|
|
13406
|
+
/* @conditional-compile-remove(spotlight) */
|
|
13407
|
+
isSpotlighted && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
|
13408
|
+
React.createElement(react.Icon, { iconName: "VideoSpotlighted" }))),
|
|
13401
13409
|
/* @conditional-compile-remove(pinned-participants) */
|
|
13402
13410
|
isPinned && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
|
13403
|
-
React.createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) })))
|
|
13411
|
+
React.createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) }))),
|
|
13412
|
+
/* @conditional-compile-remove(pinned-participants) */
|
|
13413
|
+
React.createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu, canShowContextMenuButton: canShowContextMenuButton })))),
|
|
13404
13414
|
children && (React.createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === void 0 ? void 0 : styles.overlayContainer) }, children)),
|
|
13405
13415
|
/* @conditional-compile-remove(raise-hand) */ raisedHand && (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.2rem' }, className: raiseHandContainerStyles(theme, !canShowLabel) },
|
|
13406
13416
|
React.createElement(react.Stack.Item, null,
|
|
@@ -13441,7 +13451,8 @@ const bracketedParticipantString = (participantString, withBrackets) => {
|
|
|
13441
13451
|
const _RemoteVideoTile = React.memo((props) => {
|
|
13442
13452
|
var _a;
|
|
13443
13453
|
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,
|
|
13454
|
+
isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant,
|
|
13455
|
+
/* @conditional-compile-remove(spotlight) */ isSpotlighted, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings } = props;
|
|
13445
13456
|
const remoteVideoStreamProps = React.useMemo(() => ({
|
|
13446
13457
|
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
|
|
13447
13458
|
isScreenSharingOn,
|
|
@@ -13530,7 +13541,9 @@ const _RemoteVideoTile = React.memo((props) => {
|
|
|
13530
13541
|
/* @conditional-compile-remove(pinned-participants) */
|
|
13531
13542
|
isPinned: props.isPinned,
|
|
13532
13543
|
/* @conditional-compile-remove(pinned-participants) */
|
|
13533
|
-
onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([])))
|
|
13544
|
+
onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([]))),
|
|
13545
|
+
/* @conditional-compile-remove(spotlight) */
|
|
13546
|
+
isSpotlighted: isSpotlighted })),
|
|
13534
13547
|
drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
|
|
13535
13548
|
React.createElement(react.Stack, { styles: drawerMenuWrapperStyles },
|
|
13536
13549
|
React.createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItemProps([]), items: drawerMenuItemProps, heading: remoteParticipant.displayName }))))));
|
|
@@ -13784,7 +13797,11 @@ const _LocalVideoTile = React.memo((props) => {
|
|
|
13784
13797
|
/* @conditional-compile-remove(raise-hand) */
|
|
13785
13798
|
raisedHand,
|
|
13786
13799
|
/* @conditional-compile-remove(reaction) */
|
|
13787
|
-
reaction
|
|
13800
|
+
reaction,
|
|
13801
|
+
/* @conditional-compile-remove(spotlight) */
|
|
13802
|
+
isSpotlighted } = props;
|
|
13803
|
+
/* @conditional-compile-remove(spotlight) */
|
|
13804
|
+
const theme = useTheme();
|
|
13788
13805
|
const localVideoStreamProps = React.useMemo(() => ({
|
|
13789
13806
|
isMirrored: localVideoViewOptions === null || localVideoViewOptions === void 0 ? void 0 : localVideoViewOptions.isMirrored,
|
|
13790
13807
|
isStreamAvailable: isAvailable,
|
|
@@ -13802,6 +13819,14 @@ const _LocalVideoTile = React.memo((props) => {
|
|
|
13802
13819
|
]);
|
|
13803
13820
|
// Handle creating, destroying and updating the video stream as necessary
|
|
13804
13821
|
useLocalVideoStreamLifecycleMaintainer(localVideoStreamProps);
|
|
13822
|
+
/* @conditional-compile-remove(spotlight) */
|
|
13823
|
+
const spotlightBorder = React.useMemo(() => (React.createElement(react.Stack, { className: react.mergeStyles({
|
|
13824
|
+
position: 'absolute',
|
|
13825
|
+
height: '100%',
|
|
13826
|
+
width: '100%',
|
|
13827
|
+
zIndex: 100,
|
|
13828
|
+
border: `0.25rem solid ${theme.palette.black}`
|
|
13829
|
+
}) })), [theme.palette.black]);
|
|
13805
13830
|
const renderVideoStreamElement = React.useMemo(() => {
|
|
13806
13831
|
// Checking if renderElement is well defined or not as calling SDK has a number of video streams limitation which
|
|
13807
13832
|
// implies that, after their threshold, all streams have no child (blank video)
|
|
@@ -13811,19 +13836,26 @@ const _LocalVideoTile = React.memo((props) => {
|
|
|
13811
13836
|
}
|
|
13812
13837
|
return (React.createElement(React.Fragment, null,
|
|
13813
13838
|
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 }))
|
|
13839
|
+
React.createElement(StreamMedia, { videoStreamElement: renderElement, isMirrored: true }), /* @conditional-compile-remove(spotlight) */
|
|
13840
|
+
isSpotlighted && spotlightBorder));
|
|
13815
13841
|
}, [
|
|
13816
13842
|
localVideoCameraCycleButtonProps,
|
|
13817
13843
|
localVideoCameraSwitcherLabel,
|
|
13818
13844
|
localVideoSelectedDescription,
|
|
13819
13845
|
renderElement,
|
|
13820
|
-
showCameraSwitcherInLocalPreview
|
|
13846
|
+
showCameraSwitcherInLocalPreview,
|
|
13847
|
+
/* @conditional-compile-remove(spotlight) */ isSpotlighted,
|
|
13848
|
+
/* @conditional-compile-remove(spotlight) */ spotlightBorder
|
|
13821
13849
|
]);
|
|
13822
|
-
return (React.createElement(
|
|
13823
|
-
|
|
13824
|
-
|
|
13825
|
-
|
|
13826
|
-
|
|
13850
|
+
return (React.createElement(React.Fragment, null,
|
|
13851
|
+
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,
|
|
13852
|
+
/* @conditional-compile-remove(raise-hand) */
|
|
13853
|
+
raisedHand: raisedHand,
|
|
13854
|
+
/* @conditional-compile-remove(reaction) */
|
|
13855
|
+
reaction: reaction,
|
|
13856
|
+
/* @conditional-compile-remove(spotlight) */
|
|
13857
|
+
isSpotlighted: isSpotlighted }), /* @conditional-compile-remove(spotlight) */
|
|
13858
|
+
isSpotlighted && spotlightBorder));
|
|
13827
13859
|
});
|
|
13828
13860
|
const FloatingLocalCameraCycleButton = (props) => {
|
|
13829
13861
|
const { showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel, localVideoSelectedDescription } = props;
|
|
@@ -14016,35 +14048,41 @@ const _useOrganizedParticipants = (props) => {
|
|
|
14016
14048
|
return { gridParticipants, overflowGalleryParticipants: overflowGalleryParticipants };
|
|
14017
14049
|
};
|
|
14018
14050
|
/* @conditional-compile-remove(pinned-participants) */
|
|
14019
|
-
const
|
|
14020
|
-
var _a;
|
|
14051
|
+
const _useOrganizedParticipantsWithFocusedParticipants = (props) => {
|
|
14052
|
+
var _a, _b;
|
|
14021
14053
|
// map remote participants by userId
|
|
14022
14054
|
const remoteParticipantMap = props.remoteParticipants.reduce((map, remoteParticipant) => {
|
|
14023
14055
|
map[remoteParticipant.userId] = remoteParticipant;
|
|
14024
14056
|
return map;
|
|
14025
14057
|
}, {});
|
|
14026
|
-
|
|
14027
|
-
|
|
14028
|
-
|
|
14058
|
+
const spotlightedParticipantUserIds = (_a = props.spotlightedParticipantUserIds) !== null && _a !== void 0 ? _a : [];
|
|
14059
|
+
// declare focused participant user ids as spotlighted participants user ids followed by
|
|
14060
|
+
// pinned participants user ids
|
|
14061
|
+
const focusedParticipantUserIds = [
|
|
14062
|
+
...new Set(spotlightedParticipantUserIds.concat((_b = props.pinnedParticipantUserIds) !== null && _b !== void 0 ? _b : []))
|
|
14063
|
+
];
|
|
14064
|
+
// get focused participants from map of remote participants in the order of the user ids
|
|
14065
|
+
const focusedParticipants = [];
|
|
14066
|
+
focusedParticipantUserIds.forEach((id) => {
|
|
14029
14067
|
const pinnedParticipant = remoteParticipantMap[id];
|
|
14030
14068
|
if (pinnedParticipant) {
|
|
14031
|
-
|
|
14069
|
+
focusedParticipants.push(pinnedParticipant);
|
|
14032
14070
|
}
|
|
14033
14071
|
});
|
|
14034
|
-
// get
|
|
14035
|
-
const
|
|
14036
|
-
const
|
|
14072
|
+
// get unfocused participants by filtering out set of focused participant user ids from all remote participants
|
|
14073
|
+
const focusedParticipantUserIdSet = new Set(focusedParticipantUserIds);
|
|
14074
|
+
const unfocusedParticipants = props.remoteParticipants.filter((p) => !focusedParticipantUserIdSet.has(p.userId));
|
|
14037
14075
|
const useOrganizedParticipantsProps = Object.assign(Object.assign({}, props), {
|
|
14038
14076
|
// if there are pinned participants then we should only consider unpinned participants
|
|
14039
|
-
remoteParticipants:
|
|
14077
|
+
remoteParticipants: unfocusedParticipants });
|
|
14040
14078
|
const useOrganizedParticipantsResult = _useOrganizedParticipants(useOrganizedParticipantsProps);
|
|
14041
|
-
if (
|
|
14079
|
+
if (focusedParticipants.length === 0) {
|
|
14042
14080
|
return useOrganizedParticipantsResult;
|
|
14043
14081
|
}
|
|
14044
14082
|
return {
|
|
14045
|
-
gridParticipants: props.isScreenShareActive ? [] :
|
|
14083
|
+
gridParticipants: props.isScreenShareActive ? [] : focusedParticipants,
|
|
14046
14084
|
overflowGalleryParticipants: props.isScreenShareActive
|
|
14047
|
-
?
|
|
14085
|
+
? focusedParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)
|
|
14048
14086
|
: useOrganizedParticipantsResult.gridParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)
|
|
14049
14087
|
};
|
|
14050
14088
|
};
|
|
@@ -14069,7 +14107,7 @@ const putVideoParticipantsFirst = (remoteParticipants) => {
|
|
|
14069
14107
|
*/
|
|
14070
14108
|
const useOrganizedParticipants = (args) => {
|
|
14071
14109
|
/* @conditional-compile-remove(pinned-participants) */
|
|
14072
|
-
return
|
|
14110
|
+
return _useOrganizedParticipantsWithFocusedParticipants(args);
|
|
14073
14111
|
};
|
|
14074
14112
|
|
|
14075
14113
|
// Copyright (c) Microsoft Corporation.
|
|
@@ -14869,7 +14907,8 @@ const DefaultLayout = (props) => {
|
|
|
14869
14907
|
const { remoteParticipants = [], localParticipant, dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth,
|
|
14870
14908
|
/* @conditional-compile-remove(vertical-gallery) */
|
|
14871
14909
|
parentHeight, pinnedParticipantUserIds = [],
|
|
14872
|
-
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition = 'horizontalBottom'
|
|
14910
|
+
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition = 'horizontalBottom',
|
|
14911
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds } = props;
|
|
14873
14912
|
const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
|
|
14874
14913
|
/* @conditional-compile-remove(vertical-gallery) */
|
|
14875
14914
|
const isShort = parentHeight ? isShortHeight(parentHeight) : false;
|
|
@@ -14887,7 +14926,8 @@ const DefaultLayout = (props) => {
|
|
|
14887
14926
|
? childrenPerPage.current - ((pinnedParticipantUserIds.length + 1) % childrenPerPage.current)
|
|
14888
14927
|
: childrenPerPage.current,
|
|
14889
14928
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipantUserIds,
|
|
14890
|
-
/* @conditional-compile-remove(gallery-layouts) */ layout: 'default'
|
|
14929
|
+
/* @conditional-compile-remove(gallery-layouts) */ layout: 'default',
|
|
14930
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds
|
|
14891
14931
|
});
|
|
14892
14932
|
let activeVideoStreams = 0;
|
|
14893
14933
|
const gridTiles = gridParticipants.map((p) => {
|
|
@@ -15709,7 +15749,8 @@ const layerHostStyle = {
|
|
|
15709
15749
|
const FloatingLocalVideoLayout = (props) => {
|
|
15710
15750
|
const { remoteParticipants = [], dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, showCameraSwitcherInLocalPreview, parentWidth, parentHeight,
|
|
15711
15751
|
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition = 'horizontalBottom', pinnedParticipantUserIds = [],
|
|
15712
|
-
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize
|
|
15752
|
+
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize,
|
|
15753
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds } = props;
|
|
15713
15754
|
const theme = useTheme();
|
|
15714
15755
|
const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
|
|
15715
15756
|
/* @conditional-compile-remove(vertical-gallery) */
|
|
@@ -15726,7 +15767,8 @@ const FloatingLocalVideoLayout = (props) => {
|
|
|
15726
15767
|
? childrenPerPage.current - (pinnedParticipantUserIds.length % childrenPerPage.current)
|
|
15727
15768
|
: childrenPerPage.current,
|
|
15728
15769
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipantUserIds,
|
|
15729
|
-
/* @conditional-compile-remove(gallery-layouts) */ layout: 'floatingLocalVideo'
|
|
15770
|
+
/* @conditional-compile-remove(gallery-layouts) */ layout: 'floatingLocalVideo',
|
|
15771
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds
|
|
15730
15772
|
});
|
|
15731
15773
|
let activeVideoStreams = 0;
|
|
15732
15774
|
const gridTiles = gridParticipants.map((p) => {
|
|
@@ -16140,7 +16182,9 @@ const VideoGallery = (props) => {
|
|
|
16140
16182
|
/* @conditional-compile-remove(vertical-gallery) */
|
|
16141
16183
|
overflowGalleryPosition = 'horizontalBottom',
|
|
16142
16184
|
/* @conditional-compile-remove(rooms) */
|
|
16143
|
-
localVideoTileSize = 'followDeviceOrientation'
|
|
16185
|
+
localVideoTileSize = 'followDeviceOrientation',
|
|
16186
|
+
/* @conditional-compile-remove(spotlight) */
|
|
16187
|
+
spotlightedParticipants } = props;
|
|
16144
16188
|
const ids = useIdentifiers();
|
|
16145
16189
|
const theme = useTheme();
|
|
16146
16190
|
const localeStrings = useLocale$1().strings.videoGallery;
|
|
@@ -16197,6 +16241,8 @@ const VideoGallery = (props) => {
|
|
|
16197
16241
|
if (onRenderLocalVideoTile) {
|
|
16198
16242
|
return onRenderLocalVideoTile(localParticipant);
|
|
16199
16243
|
}
|
|
16244
|
+
/* @conditional-compile-remove(spotlight) */
|
|
16245
|
+
const isSpotlighted = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.includes(localParticipant.userId);
|
|
16200
16246
|
const localVideoTileStyles = react.concatStyleSets(localTileNotInGrid ? floatingLocalVideoTileStyle : {}, {
|
|
16201
16247
|
root: { borderRadius: theme.effects.roundedCorner4 }
|
|
16202
16248
|
}, styles === null || styles === void 0 ? void 0 : styles.localVideo);
|
|
@@ -16210,7 +16256,9 @@ const VideoGallery = (props) => {
|
|
|
16210
16256
|
/* @conditional-compile-remove(raise-hand) */
|
|
16211
16257
|
raisedHand: localParticipant.raisedHand,
|
|
16212
16258
|
/* @conditional-compile-remove(reaction) */
|
|
16213
|
-
reaction: localParticipant.reaction
|
|
16259
|
+
reaction: localParticipant.reaction,
|
|
16260
|
+
/* @conditional-compile-remove(spotlight) */
|
|
16261
|
+
isSpotlighted: isSpotlighted })));
|
|
16214
16262
|
}, [
|
|
16215
16263
|
isNarrow,
|
|
16216
16264
|
localParticipant,
|
|
@@ -16233,7 +16281,9 @@ const VideoGallery = (props) => {
|
|
|
16233
16281
|
localVideoTileSize,
|
|
16234
16282
|
/* @conditional-compile-remove(gallery-layouts) */
|
|
16235
16283
|
layout,
|
|
16236
|
-
showLocalVideoTileLabel
|
|
16284
|
+
showLocalVideoTileLabel,
|
|
16285
|
+
/* @conditional-compile-remove(spotlight) */
|
|
16286
|
+
spotlightedParticipants
|
|
16237
16287
|
]);
|
|
16238
16288
|
/* @conditional-compile-remove(pinned-participants) */
|
|
16239
16289
|
const onPinParticipant = React.useCallback((userId) => {
|
|
@@ -16270,7 +16320,11 @@ const VideoGallery = (props) => {
|
|
|
16270
16320
|
/* @conditional-compile-remove(pinned-participants) */
|
|
16271
16321
|
const selectedScalingMode = remoteVideoStream ? selectedScalingModeState[participant.userId] : undefined;
|
|
16272
16322
|
/* @conditional-compile-remove(pinned-participants) */
|
|
16273
|
-
|
|
16323
|
+
let isPinned = pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participant.userId);
|
|
16324
|
+
/* @conditional-compile-remove(spotlight) */
|
|
16325
|
+
const isSpotlighted = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.includes(participant.userId);
|
|
16326
|
+
/* @conditional-compile-remove(spotlight) */
|
|
16327
|
+
isPinned = isSpotlighted ? false : isPinned;
|
|
16274
16328
|
const createViewOptions = () => {
|
|
16275
16329
|
var _a, _b;
|
|
16276
16330
|
/* @conditional-compile-remove(pinned-participants) */
|
|
@@ -16310,7 +16364,9 @@ const VideoGallery = (props) => {
|
|
|
16310
16364
|
/* @conditional-compile-remove(pinned-participants) */
|
|
16311
16365
|
disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES,
|
|
16312
16366
|
/* @conditional-compile-remove(pinned-participants) */
|
|
16313
|
-
toggleAnnouncerString: toggleAnnouncerString
|
|
16367
|
+
toggleAnnouncerString: toggleAnnouncerString,
|
|
16368
|
+
/* @conditional-compile-remove(spotlight) */
|
|
16369
|
+
isSpotlighted: isSpotlighted }));
|
|
16314
16370
|
}, [
|
|
16315
16371
|
onCreateRemoteStreamView,
|
|
16316
16372
|
onDisposeRemoteVideoStreamView,
|
|
@@ -16326,7 +16382,8 @@ const VideoGallery = (props) => {
|
|
|
16326
16382
|
/* @conditional-compile-remove(pinned-participants) */ onPinParticipant,
|
|
16327
16383
|
/* @conditional-compile-remove(pinned-participants) */ onUnpinParticipant,
|
|
16328
16384
|
/* @conditional-compile-remove(pinned-participants) */ toggleAnnouncerString,
|
|
16329
|
-
/* @conditional-compile-remove(pinned-participants) */ onUpdateScalingMode
|
|
16385
|
+
/* @conditional-compile-remove(pinned-participants) */ onUpdateScalingMode,
|
|
16386
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipants
|
|
16330
16387
|
]);
|
|
16331
16388
|
const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
|
|
16332
16389
|
const localScreenShareStreamComponent = React.createElement(LocalScreenShare, { localParticipant: localParticipant });
|
|
@@ -16350,7 +16407,8 @@ const VideoGallery = (props) => {
|
|
|
16350
16407
|
parentHeight: containerHeight,
|
|
16351
16408
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipantUserIds: pinnedParticipants,
|
|
16352
16409
|
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition,
|
|
16353
|
-
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize
|
|
16410
|
+
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize,
|
|
16411
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds: spotlightedParticipants
|
|
16354
16412
|
}), [
|
|
16355
16413
|
remoteParticipants,
|
|
16356
16414
|
localParticipant,
|
|
@@ -16366,7 +16424,8 @@ const VideoGallery = (props) => {
|
|
|
16366
16424
|
defaultOnRenderVideoTile,
|
|
16367
16425
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipants,
|
|
16368
16426
|
/* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition,
|
|
16369
|
-
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize
|
|
16427
|
+
/* @conditional-compile-remove(click-to-call) */ localVideoTileSize,
|
|
16428
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipants
|
|
16370
16429
|
]);
|
|
16371
16430
|
const videoGalleryLayout = React.useMemo(() => {
|
|
16372
16431
|
/* @conditional-compile-remove(gallery-layouts) */
|
|
@@ -18615,6 +18674,7 @@ const _TagsSurvey = (props) => {
|
|
|
18615
18674
|
const [selectedTags, setSelectedTags] = React.useState({});
|
|
18616
18675
|
const [textResponse, setTextResponse] = React.useState({});
|
|
18617
18676
|
const [selectedTextResponse, setSelectedTextResponse] = React.useState({});
|
|
18677
|
+
const [checkedTextFields, setCheckedTextFields] = React.useState([]);
|
|
18618
18678
|
const tags = React.useMemo(() => {
|
|
18619
18679
|
const tags = [];
|
|
18620
18680
|
Object.keys(callIssuesToTag).forEach((issueCategory) => {
|
|
@@ -18652,6 +18712,7 @@ const _TagsSurvey = (props) => {
|
|
|
18652
18712
|
});
|
|
18653
18713
|
}
|
|
18654
18714
|
else {
|
|
18715
|
+
setCheckedTextFields([...checkedTextFields, issueCategory]);
|
|
18655
18716
|
setSelectedTextResponse((prevState) => {
|
|
18656
18717
|
prevState[issueCategory] = textResponse[issueCategory];
|
|
18657
18718
|
return prevState;
|
|
@@ -18673,33 +18734,35 @@ const _TagsSurvey = (props) => {
|
|
|
18673
18734
|
});
|
|
18674
18735
|
}
|
|
18675
18736
|
else {
|
|
18737
|
+
setCheckedTextFields(checkedTextFields.filter((id) => id !== issueCategory));
|
|
18676
18738
|
setSelectedTextResponse((prevState) => {
|
|
18677
18739
|
delete prevState[issueCategory];
|
|
18678
18740
|
return prevState;
|
|
18679
18741
|
});
|
|
18680
18742
|
}
|
|
18681
18743
|
}
|
|
18682
|
-
|
|
18683
|
-
onConfirm(selectedTags, selectedTextResponse);
|
|
18684
|
-
}
|
|
18685
|
-
}, [onConfirm, selectedTags, selectedTextResponse, textResponse]);
|
|
18744
|
+
}, [textResponse, checkedTextFields]);
|
|
18686
18745
|
const theme = react.useTheme();
|
|
18687
18746
|
const onRenderLabel = React.useCallback((issueCategory) => {
|
|
18688
18747
|
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
18748
|
if (v) {
|
|
18749
|
+
setCheckedTextFields([...checkedTextFields, issueCategory]);
|
|
18690
18750
|
setTextResponse((prevState) => {
|
|
18691
18751
|
prevState[issueCategory] = v;
|
|
18692
18752
|
return prevState;
|
|
18693
18753
|
});
|
|
18694
18754
|
setSelectedTextResponse((prevState) => {
|
|
18695
|
-
|
|
18696
|
-
prevState[issueCategory] = v;
|
|
18697
|
-
}
|
|
18755
|
+
prevState[issueCategory] = v;
|
|
18698
18756
|
return prevState;
|
|
18699
18757
|
});
|
|
18700
18758
|
}
|
|
18701
18759
|
} }));
|
|
18702
|
-
}, [strings === null || strings === void 0 ? void 0 : strings.tagsSurveyTextFieldDefaultText]);
|
|
18760
|
+
}, [strings === null || strings === void 0 ? void 0 : strings.tagsSurveyTextFieldDefaultText, checkedTextFields]);
|
|
18761
|
+
React.useEffect(() => {
|
|
18762
|
+
if (onConfirm) {
|
|
18763
|
+
onConfirm(selectedTags, selectedTextResponse);
|
|
18764
|
+
}
|
|
18765
|
+
}, [selectedTags, selectedTextResponse, onConfirm]);
|
|
18703
18766
|
return (React.createElement(React.Fragment, null,
|
|
18704
18767
|
React.createElement(react.Stack, { verticalAlign: "center" },
|
|
18705
18768
|
React.createElement(react.Text, { className: questionTextStyle(theme) }, strings === null || strings === void 0 ? void 0 : strings.tagsSurveyQuestion)),
|
|
@@ -18711,7 +18774,7 @@ const _TagsSurvey = (props) => {
|
|
|
18711
18774
|
tags[key].map((t, i) => {
|
|
18712
18775
|
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
18776
|
}),
|
|
18714
|
-
showFreeFormTextField && (React.createElement(react.Checkbox, { styles: freeFormTextCheckboxStyles, onChange: (ev, checked) => onChange(key, checked !== null && checked !== void 0 ? checked : false), onRenderLabel: () => {
|
|
18777
|
+
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
18778
|
return onRenderLabel(key);
|
|
18716
18779
|
} }))));
|
|
18717
18780
|
})),
|
|
@@ -19842,8 +19905,8 @@ const convertRemoteParticipantToParticipantListParticipant = (userId, displayNam
|
|
|
19842
19905
|
/**
|
|
19843
19906
|
* @private
|
|
19844
19907
|
*/
|
|
19845
|
-
const memoizedConvertAllremoteParticipantsBeta = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction) => {
|
|
19846
|
-
return convertRemoteParticipantToParticipantListParticipantBeta(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction);
|
|
19908
|
+
const memoizedConvertAllremoteParticipantsBeta = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, isSpotlighted) => {
|
|
19909
|
+
return convertRemoteParticipantToParticipantListParticipantBeta(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, isSpotlighted);
|
|
19847
19910
|
});
|
|
19848
19911
|
/* @conditional-compile-remove(reaction) */
|
|
19849
19912
|
/**
|
|
@@ -19858,8 +19921,17 @@ const memoizedConvertToVideoTileReaction = memoizeOne((reactionState) => {
|
|
|
19858
19921
|
: undefined;
|
|
19859
19922
|
});
|
|
19860
19923
|
/* @conditional-compile-remove(reaction) */
|
|
19861
|
-
|
|
19862
|
-
|
|
19924
|
+
/**
|
|
19925
|
+
* @private
|
|
19926
|
+
*/
|
|
19927
|
+
const memoizedSpotlight = memoizeOne((spotlightedParticipants, userId) => {
|
|
19928
|
+
const spotlightOrder = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.find((spotlightedParticipant) => toFlatCommunicationIdentifier(spotlightedParticipant.identifier) === userId);
|
|
19929
|
+
return spotlightOrder ? { spotlightOrderPosition: spotlightOrder.order } : undefined;
|
|
19930
|
+
});
|
|
19931
|
+
/* @conditional-compile-remove(reaction) */
|
|
19932
|
+
const convertRemoteParticipantToParticipantListParticipantBeta = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, isSpotlighted) => {
|
|
19933
|
+
return Object.assign(Object.assign({}, convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers)), { reaction,
|
|
19934
|
+
isSpotlighted });
|
|
19863
19935
|
};
|
|
19864
19936
|
|
|
19865
19937
|
// Copyright (c) Microsoft Corporation.
|
|
@@ -20092,7 +20164,7 @@ const updateUserDisplayNamesTrampoline$2 = (remoteParticipants) => {
|
|
|
20092
20164
|
|
|
20093
20165
|
// Copyright (c) Microsoft Corporation.
|
|
20094
20166
|
// Licensed under the MIT License.
|
|
20095
|
-
const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipants, localUserCanRemoveOthers, isHideAttendeeNamesEnabled, localUserRole) => {
|
|
20167
|
+
const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipants, localUserCanRemoveOthers, isHideAttendeeNamesEnabled, localUserRole, spotlightedParticipants) => {
|
|
20096
20168
|
const conversionCallback = (memoizeFn) => {
|
|
20097
20169
|
return (remoteParticipants
|
|
20098
20170
|
// Filter out MicrosoftBot participants
|
|
@@ -20119,11 +20191,15 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
|
|
|
20119
20191
|
displayName = maskDisplayNameWithRole(displayName, localUserRole, participant.role, isHideAttendeeNamesEnabled);
|
|
20120
20192
|
/* @conditional-compile-remove(reaction) */
|
|
20121
20193
|
const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);
|
|
20194
|
+
/* @conditional-compile-remove(spotlight) */
|
|
20195
|
+
const spotlight = memoizedSpotlight(spotlightedParticipants, toFlatCommunicationIdentifier(participant.identifier));
|
|
20122
20196
|
return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), displayName, state, participant.isMuted, isScreenSharing, participant.isSpeaking,
|
|
20123
20197
|
/* @conditional-compile-remove(raise-hand) */
|
|
20124
20198
|
participant.raisedHand, localUserCanRemoveOthers,
|
|
20125
20199
|
/* @conditional-compile-remove(reaction) */
|
|
20126
|
-
remoteParticipantReaction
|
|
20200
|
+
remoteParticipantReaction,
|
|
20201
|
+
/* @conditional-compile-remove(spotlight) */
|
|
20202
|
+
spotlight);
|
|
20127
20203
|
})
|
|
20128
20204
|
.sort((a, b) => {
|
|
20129
20205
|
var _a, _b;
|
|
@@ -20160,21 +20236,27 @@ const participantListSelector = reselect.createSelector([
|
|
|
20160
20236
|
/* @conditional-compile-remove(hide-attendee-name) */
|
|
20161
20237
|
isHideAttendeeNamesEnabled,
|
|
20162
20238
|
/* @conditional-compile-remove(reaction) */
|
|
20163
|
-
getLocalParticipantReactionState
|
|
20239
|
+
getLocalParticipantReactionState,
|
|
20240
|
+
/* @conditional-compile-remove(spotlight) */
|
|
20241
|
+
getSpotlightedParticipants
|
|
20164
20242
|
], (userId, displayName, remoteParticipants, isScreenSharingOn, isMuted,
|
|
20165
20243
|
/* @conditional-compile-remove(raise-hand) */
|
|
20166
20244
|
raisedHand, role, partitipantCount,
|
|
20167
20245
|
/* @conditional-compile-remove(hide-attendee-name) */
|
|
20168
20246
|
isHideAttendeeNamesEnabled,
|
|
20169
20247
|
/* @conditional-compile-remove(reaction) */
|
|
20170
|
-
localParticipantReactionState
|
|
20248
|
+
localParticipantReactionState,
|
|
20249
|
+
/* @conditional-compile-remove(spotlight) */
|
|
20250
|
+
spotlightedParticipants) => {
|
|
20171
20251
|
const localUserCanRemoveOthers = localUserCanRemoveOthersTrampoline(role);
|
|
20172
20252
|
const participants = remoteParticipants
|
|
20173
20253
|
? convertRemoteParticipantsToParticipantListParticipants(updateUserDisplayNamesTrampoline$1(Object.values(remoteParticipants)), localUserCanRemoveOthers,
|
|
20174
20254
|
/* @conditional-compile-remove(hide-attendee-name) */
|
|
20175
20255
|
isHideAttendeeNamesEnabled,
|
|
20176
20256
|
/* @conditional-compile-remove(hide-attendee-name) */
|
|
20177
|
-
role
|
|
20257
|
+
role,
|
|
20258
|
+
/* @conditional-compile-remove(spotlight) */
|
|
20259
|
+
spotlightedParticipants)
|
|
20178
20260
|
: [];
|
|
20179
20261
|
/* @conditional-compile-remove(reaction) */
|
|
20180
20262
|
const localParticipantReaction = memoizedConvertToVideoTileReaction(localParticipantReactionState);
|
|
@@ -20189,7 +20271,9 @@ localParticipantReactionState) => {
|
|
|
20189
20271
|
// Local participant can never remove themselves.
|
|
20190
20272
|
isRemovable: false,
|
|
20191
20273
|
/* @conditional-compile-remove(reaction) */
|
|
20192
|
-
reaction: localParticipantReaction
|
|
20274
|
+
reaction: localParticipantReaction,
|
|
20275
|
+
/* @conditional-compile-remove(spotlight) */
|
|
20276
|
+
isSpotlighted: memoizedSpotlight(spotlightedParticipants, userId)
|
|
20193
20277
|
});
|
|
20194
20278
|
/* @conditional-compile-remove(total-participant-count) */
|
|
20195
20279
|
const totalParticipantCount = partitipantCount;
|
|
@@ -26061,7 +26145,7 @@ const Reaction = (props) => {
|
|
|
26061
26145
|
const reactionButtonProps = usePropsFor$1(ReactionButton);
|
|
26062
26146
|
const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
|
|
26063
26147
|
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 })));
|
|
26148
|
+
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
26149
|
};
|
|
26066
26150
|
/* @conditional-compile-remove(reaction) */
|
|
26067
26151
|
const isDisabled = (option) => {
|