@azure/communication-react 1.16.0-alpha-202404230013 → 1.16.0-alpha-202404240013

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.
Files changed (19) hide show
  1. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-DOJvvifs.js → ChatMessageComponentAsRichTextEditBox-BBE_BEmy.js} +2 -2
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-DOJvvifs.js.map → ChatMessageComponentAsRichTextEditBox-BBE_BEmy.js.map} +1 -1
  3. package/dist/dist-cjs/communication-react/{index-C_f2xMbE.js → index-DKwz_uvr.js} +26 -11
  4. package/dist/dist-cjs/communication-react/index-DKwz_uvr.js.map +1 -0
  5. package/dist/dist-cjs/communication-react/index.js +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  8. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +3 -1
  9. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  10. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +13 -2
  11. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  12. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +1 -0
  13. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +3 -2
  14. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  15. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts +1 -0
  16. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +4 -2
  17. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  18. package/package.json +1 -1
  19. package/dist/dist-cjs/communication-react/index-C_f2xMbE.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-C_f2xMbE.js');
3
+ var index = require('./index-DKwz_uvr.js');
4
4
  require('react');
5
5
  require('@fluentui/react');
6
6
  require('@fluentui/react-components');
@@ -2,5 +2,5 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT License.
4
4
  // GENERATED FILE. DO NOT EDIT MANUALLY.
5
- module.exports = '1.16.0-alpha-202404230013';
5
+ module.exports = '1.16.0-alpha-202404240013';
6
6
  //# sourceMappingURL=telemetryVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.16.0-alpha-202404230013';\n"]}
1
+ {"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.16.0-alpha-202404240013';\n"]}
@@ -50,7 +50,9 @@ export const noMessageStatusStyle = mergeStyles({
50
50
  * @private
51
51
  */
52
52
  export const useChatStyles = makeStyles({
53
- root: Object.assign(Object.assign(Object.assign({ paddingTop: '0.8rem', paddingBottom: '0.5rem', paddingRight: '0.6rem', paddingLeft: '0.6rem' }, shorthands.border('none')), shorthands.overflow('auto')), {
53
+ root: Object.assign(Object.assign(Object.assign({
54
+ // chat components sets max width value to 1056px, override it to 100%
55
+ maxWidth: '100%', paddingTop: '0.8rem', paddingBottom: '0.5rem', paddingRight: '0.6rem', paddingLeft: '0.6rem' }, shorthands.border('none')), shorthands.overflow('auto')), {
54
56
  // `height: 100%` ensures that the Chat component covers 100% of it's parents height
55
57
  // to prevent intermittent scrollbars when GIFs are present in the chat.
56
58
  height: '100%', '& a:link': {
@@ -1 +1 @@
1
- {"version":3,"file":"MessageThread.styles.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/styles/MessageThread.styles.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButtonStyles, mergeStyles } from '@fluentui/react';\nimport { makeStyles, shorthands, tokens } from '@fluentui/react-components';\nimport { CSSProperties } from 'react';\nimport { MESSAGE_STATUS_INDICATOR_SIZE_REM } from './MessageStatusIndicator.styles';\nimport { ComponentSlotStyle } from '../../types';\n\n// Minimum chat bubble width. This matches the minimum chat bubble width from FluentUI\n// that can contain a message and a timestamp.\nconst CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM = 6.25;\n\n// Chat messages should span just short of the width of the container.\n// When calculating the width of a message we also must take into account\n// the width of the avatar/gutter and the gap between the message and avatar/gutter.\nconst AVATAR_WIDTH_REM = 2;\nconst AVATAR_MARGIN_LEFT = 2.5;\nconst AVATAR_MESSAGE_GAP_REM = 0.125;\nconst MESSAGE_AMOUNT_OUT_FROM_EDGE_REM = 2;\n\n// Avatars should display on top of chat messages when the chat thread is narrow\nconst MESSAGE_AVATAR_OVERLAP_REM = 0.925;\nconst CHAT_MESSAGE_ZINDEX = 1;\nconst AVATAR_ZINDEX = 2;\n// new message button should be on top of chat message\nconst NEW_MESSAGE_BUTTON_ZINDEX = 2;\n\n/**\n * @private\n */\nexport const messageThreadContainerStyle = mergeStyles({\n height: '100%',\n width: '100%',\n maxHeight: '100%',\n overflow: 'auto',\n position: 'relative',\n alignSelf: 'center'\n});\n\n/**\n * @private\n */\nexport const messageThreadWrapperContainerStyle = mergeStyles({\n height: '100%',\n width: '100%',\n position: 'relative'\n});\n\n/**\n * @private\n */\nexport const noMessageStatusStyle = mergeStyles({\n // This should match the size of the message status indicator icon to ensure\n // multiple messages sent by the user are aligned correctly.\n width: `${MESSAGE_STATUS_INDICATOR_SIZE_REM}rem`\n});\n\n/**\n * @private\n */\nexport const useChatStyles = makeStyles({\n root: {\n paddingTop: '0.8rem',\n paddingBottom: '0.5rem',\n paddingRight: '0.6rem',\n paddingLeft: '0.6rem',\n ...shorthands.border('none'),\n ...shorthands.overflow('auto'),\n // `height: 100%` ensures that the Chat component covers 100% of it's parents height\n // to prevent intermittent scrollbars when GIFs are present in the chat.\n height: '100%',\n\n '& a:link': {\n color: tokens.colorBrandForegroundLink\n },\n '& a:visited': {\n color: tokens.colorBrandForegroundLinkHover\n },\n '& a:hover': {\n color: tokens.colorBrandForegroundLinkHover\n }\n }\n});\n\n/**\n * @private\n */\nexport const useChatMessageRenderStyles = makeStyles({\n rootCommon: {\n '&:focus-visible': {\n ...shorthands.outline('0')\n }\n },\n rootMessage: {\n ...shorthands.padding('0'),\n ...shorthands.margin('0'),\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`\n },\n rootMyMessage: {\n gridTemplateColumns: 'auto fit-content(0)',\n gridTemplateAreas: `\n \"body status\"\n `,\n columnGap: '0',\n gridGap: '0',\n ...shorthands.padding('0'),\n marginTop: '0',\n marginRight: '0',\n marginBottom: '0',\n marginLeft: '50px',\n width: `calc(100% - 50px)`\n },\n bodyCommon: {\n ...shorthands.padding('0'),\n marginRight: '0',\n marginBottom: '0',\n backgroundColor: 'transparent',\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`\n },\n bodyMyMessage: {\n width: '100%',\n marginTop: '0'\n },\n bodyWithoutAvatar: {\n marginLeft: `${AVATAR_MARGIN_LEFT}rem`,\n marginTop: '0'\n },\n bodyWithAvatar: {\n marginLeft: `0`,\n marginTop: '0.75rem'\n },\n avatarNoOverlap: {\n width: `calc(100% - ${AVATAR_WIDTH_REM + MESSAGE_AMOUNT_OUT_FROM_EDGE_REM + AVATAR_MESSAGE_GAP_REM}rem)`\n },\n avatarOverlap: {\n width: `calc(100% - ${AVATAR_WIDTH_REM + MESSAGE_AMOUNT_OUT_FROM_EDGE_REM - MESSAGE_AVATAR_OVERLAP_REM}rem)`\n }\n});\n\n/**\n * @private\n */\nexport const useChatMyMessageStyles = makeStyles({\n root: {\n // The first column's width should be set to 1fr\n // because otherwise rich text editor's width will grow indefinitely\n gridTemplateColumns: '1fr auto',\n gridTemplateAreas: `\n \". actions\"\n \"body body\"\n `,\n gridGap: '0',\n columnGap: '0',\n paddingTop: '0',\n marginLeft: '0',\n '&:focus-visible': {\n ...shorthands.outline('0')\n }\n },\n body: {\n paddingBottom: '10px',\n marginTop: '1rem',\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginLeft: '0rem',\n // This makes message bubble show border in high contrast mode making each message distinguishable\n ...shorthands.border('1px', 'solid', 'transparent'),\n\n '&:hover ~ .fui-ChatMyMessage__actions': {\n visibility: 'visible'\n },\n '&:focus ~ .fui-ChatMyMessage__actions': {\n visibility: 'visible'\n },\n '& msft-mention': {\n color: tokens.colorStatusWarningBackground3,\n fontWeight: 600\n }\n },\n bodyAttached: {\n marginTop: '0.125rem'\n },\n menu: {\n boxShadow: tokens.shadow4,\n backgroundColor: tokens.colorNeutralBackground1,\n marginRight: '1px',\n position: 'absolute',\n top: '-2px',\n right: '0',\n ...shorthands.borderRadius(tokens.borderRadiusMedium),\n zIndex: 1,\n lineHeight: tokens.lineHeightBase100,\n visibility: 'hidden',\n\n '&:hover, &:focus': {\n cursor: 'pointer',\n visibility: 'visible'\n }\n },\n menuAttached: {\n top: '-18px'\n },\n menuHidden: {\n visibility: 'hidden'\n },\n menuVisible: {\n visibility: 'visible'\n }\n});\n\n/**\n * @private\n */\nexport const newMessageButtonContainerStyle = mergeStyles({\n position: 'absolute',\n zIndex: NEW_MESSAGE_BUTTON_ZINDEX,\n bottom: 0,\n right: '1.5rem'\n});\n\n/**\n * @private\n */\nexport const chatMessageDateStyle: CSSProperties = {\n fontWeight: 600\n};\n\n/**\n * @private\n */\nexport const useChatMessageStyles = makeStyles({\n root: {\n paddingTop: '0',\n '&:focus-visible': {\n ...shorthands.outline('0')\n }\n },\n body: {\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginRight: '0rem',\n paddingBottom: '10px',\n zIndex: CHAT_MESSAGE_ZINDEX,\n // This makes message bubble show border in high contrast mode making each message distinguishable\n ...shorthands.border('1px', 'solid', 'transparent'),\n '& > div:first-of-type': {\n flexWrap: 'wrap'\n },\n '& msft-mention': {\n color: tokens.colorStatusWarningBackground3,\n fontWeight: tokens.fontWeightSemibold\n },\n '& img': {\n maxWidth: '100% !important', // Add !important to make sure it won't be overridden by style defined in element\n height: 'auto !important'\n },\n '& video': {\n maxWidth: '100% !important', // Add !important to make sure it won't be overridden by style defined in element\n height: 'auto !important'\n },\n '& p': {\n // Deal with awkward padding seen in messages from Teams.\n // For more info see https://github.com/Azure/communication-ui-library/pull/1507\n ...shorthands.marginBlock('0.125rem')\n },\n '& blockquote': {\n backgroundColor: tokens.colorBrandBackgroundInverted,\n clear: 'left',\n minHeight: '2.25rem',\n width: 'fit-content',\n marginTop: '7px',\n marginRight: '0px',\n marginLeft: '0px',\n marginBottom: '7px',\n paddingTop: '7px',\n paddingRight: '15px',\n paddingLeft: '15px',\n paddingBottom: '7px',\n ...shorthands.border('solid'),\n ...shorthands.borderRadius('4px'),\n ...shorthands.borderWidth('1px'),\n ...shorthands.borderColor(tokens.colorNeutralStroke1Selected),\n borderLeftWidth: '4px'\n }\n },\n bodyWithPlaceholderImage: {\n '& img[src=\"\"]': {\n display: 'block',\n position: 'relative',\n marginBottom: '5px'\n },\n '& img[src=\"\"]:after': {\n backgroundColor: tokens.colorNeutralBackground1Selected,\n content: `url(\"data:image/gif;base64,R0lGODlhAQABAAAAACw=\")`,\n backgroundSize: 'center',\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n display: 'block'\n }\n },\n bodyWithoutAvatar: {\n marginTop: '0.125rem'\n },\n bodyWithAvatar: {\n marginTop: `0.375rem`\n },\n avatarNoOverlap: {\n marginLeft: `${-AVATAR_MARGIN_LEFT + AVATAR_MESSAGE_GAP_REM}rem`\n },\n avatarOverlap: {\n marginLeft: `${-AVATAR_MARGIN_LEFT - MESSAGE_AVATAR_OVERLAP_REM}rem`\n }\n});\n\n/**\n * @private\n */\nexport const useChatMessageCommonStyles = makeStyles({\n body: {\n '& table': {\n backgroundColor: tokens.colorBrandBackgroundInverted,\n ...shorthands.borderColor(tokens.colorNeutralStroke1Selected),\n borderCollapse: 'collapse',\n tableLayout: 'auto',\n width: '100%',\n\n '& tr': {\n ...shorthands.border('1px', 'solid', `${tokens.colorNeutralStroke1Selected}`),\n\n '& td': {\n ...shorthands.border('1px', 'solid', `${tokens.colorNeutralStroke1Selected}`),\n wordBreak: 'normal',\n paddingTop: '0px',\n paddingRight: '5px'\n }\n }\n }\n },\n failed: {\n //TODO: can we reuse a theme color here?\n backgroundColor: 'rgba(168, 0, 0, 0.2)'\n },\n blocked: {\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginRight: '0rem',\n color: tokens.colorNeutralForeground2,\n\n // This makes message bubble show border in high contrast mode making each message distinguishable\n ...shorthands.border('1px', 'solid', 'transparent'),\n '& i': {\n paddingTop: '0.25rem'\n },\n\n '& p': {\n // Deal with awkward padding seen in messages from Teams.\n // For more info see https://github.com/Azure/communication-ui-library/pull/1507\n ...shorthands.marginBlock('0.125rem'),\n paddingRight: '0.75rem',\n fontStyle: 'italic'\n },\n\n '& a': {\n ...shorthands.marginBlock('0.125rem'),\n fontStyle: 'normal',\n color: tokens.colorBrandForegroundLink,\n ...shorthands.textDecoration('none')\n }\n }\n});\n\n/**\n * @private\n */\nexport const gutterWithAvatar: ComponentSlotStyle = {\n paddingTop: '1.65rem',\n width: `${AVATAR_WIDTH_REM}rem`,\n position: 'relative',\n float: 'left',\n display: 'block',\n visibility: 'visible',\n zIndex: AVATAR_ZINDEX\n};\n\n/**\n * @private\n */\nexport const gutterWithHiddenAvatar: ComponentSlotStyle = {\n ...gutterWithAvatar,\n visibility: 'hidden',\n // we use this hidden avatar just as a width placeholder\n // the placeholder is needed for responsive bubble width\n height: 0\n};\n\n/**\n * @private\n */\nexport const newMessageButtonStyle = mergeStyles({\n float: 'right',\n width: 'fit-content'\n});\n\n/**\n * @private\n */\nexport const buttonWithIconStyles: IButtonStyles = {\n textContainer: {\n display: 'contents'\n }\n};\n\n/**\n * @private\n */\nexport const loadPreviousMessageButtonStyle = mergeStyles({\n border: 'none',\n minHeight: '1.5rem',\n '&:hover': { background: 'none' },\n '&:active': { background: 'none' }\n});\n\n/**\n * @private\n */\nexport const DownIconStyle = mergeStyles({\n marginRight: '0.5em'\n});\n"]}
1
+ {"version":3,"file":"MessageThread.styles.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/styles/MessageThread.styles.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButtonStyles, mergeStyles } from '@fluentui/react';\nimport { makeStyles, shorthands, tokens } from '@fluentui/react-components';\nimport { CSSProperties } from 'react';\nimport { MESSAGE_STATUS_INDICATOR_SIZE_REM } from './MessageStatusIndicator.styles';\nimport { ComponentSlotStyle } from '../../types';\n\n// Minimum chat bubble width. This matches the minimum chat bubble width from FluentUI\n// that can contain a message and a timestamp.\nconst CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM = 6.25;\n\n// Chat messages should span just short of the width of the container.\n// When calculating the width of a message we also must take into account\n// the width of the avatar/gutter and the gap between the message and avatar/gutter.\nconst AVATAR_WIDTH_REM = 2;\nconst AVATAR_MARGIN_LEFT = 2.5;\nconst AVATAR_MESSAGE_GAP_REM = 0.125;\nconst MESSAGE_AMOUNT_OUT_FROM_EDGE_REM = 2;\n\n// Avatars should display on top of chat messages when the chat thread is narrow\nconst MESSAGE_AVATAR_OVERLAP_REM = 0.925;\nconst CHAT_MESSAGE_ZINDEX = 1;\nconst AVATAR_ZINDEX = 2;\n// new message button should be on top of chat message\nconst NEW_MESSAGE_BUTTON_ZINDEX = 2;\n\n/**\n * @private\n */\nexport const messageThreadContainerStyle = mergeStyles({\n height: '100%',\n width: '100%',\n maxHeight: '100%',\n overflow: 'auto',\n position: 'relative',\n alignSelf: 'center'\n});\n\n/**\n * @private\n */\nexport const messageThreadWrapperContainerStyle = mergeStyles({\n height: '100%',\n width: '100%',\n position: 'relative'\n});\n\n/**\n * @private\n */\nexport const noMessageStatusStyle = mergeStyles({\n // This should match the size of the message status indicator icon to ensure\n // multiple messages sent by the user are aligned correctly.\n width: `${MESSAGE_STATUS_INDICATOR_SIZE_REM}rem`\n});\n\n/**\n * @private\n */\nexport const useChatStyles = makeStyles({\n root: {\n // chat components sets max width value to 1056px, override it to 100%\n maxWidth: '100%',\n paddingTop: '0.8rem',\n paddingBottom: '0.5rem',\n paddingRight: '0.6rem',\n paddingLeft: '0.6rem',\n ...shorthands.border('none'),\n ...shorthands.overflow('auto'),\n // `height: 100%` ensures that the Chat component covers 100% of it's parents height\n // to prevent intermittent scrollbars when GIFs are present in the chat.\n height: '100%',\n\n '& a:link': {\n color: tokens.colorBrandForegroundLink\n },\n '& a:visited': {\n color: tokens.colorBrandForegroundLinkHover\n },\n '& a:hover': {\n color: tokens.colorBrandForegroundLinkHover\n }\n }\n});\n\n/**\n * @private\n */\nexport const useChatMessageRenderStyles = makeStyles({\n rootCommon: {\n '&:focus-visible': {\n ...shorthands.outline('0')\n }\n },\n rootMessage: {\n ...shorthands.padding('0'),\n ...shorthands.margin('0'),\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`\n },\n rootMyMessage: {\n gridTemplateColumns: 'auto fit-content(0)',\n gridTemplateAreas: `\n \"body status\"\n `,\n columnGap: '0',\n gridGap: '0',\n ...shorthands.padding('0'),\n marginTop: '0',\n marginRight: '0',\n marginBottom: '0',\n marginLeft: '50px',\n width: `calc(100% - 50px)`\n },\n bodyCommon: {\n ...shorthands.padding('0'),\n marginRight: '0',\n marginBottom: '0',\n backgroundColor: 'transparent',\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`\n },\n bodyMyMessage: {\n width: '100%',\n marginTop: '0'\n },\n bodyWithoutAvatar: {\n marginLeft: `${AVATAR_MARGIN_LEFT}rem`,\n marginTop: '0'\n },\n bodyWithAvatar: {\n marginLeft: `0`,\n marginTop: '0.75rem'\n },\n avatarNoOverlap: {\n width: `calc(100% - ${AVATAR_WIDTH_REM + MESSAGE_AMOUNT_OUT_FROM_EDGE_REM + AVATAR_MESSAGE_GAP_REM}rem)`\n },\n avatarOverlap: {\n width: `calc(100% - ${AVATAR_WIDTH_REM + MESSAGE_AMOUNT_OUT_FROM_EDGE_REM - MESSAGE_AVATAR_OVERLAP_REM}rem)`\n }\n});\n\n/**\n * @private\n */\nexport const useChatMyMessageStyles = makeStyles({\n root: {\n // The first column's width should be set to 1fr\n // because otherwise rich text editor's width will grow indefinitely\n gridTemplateColumns: '1fr auto',\n gridTemplateAreas: `\n \". actions\"\n \"body body\"\n `,\n gridGap: '0',\n columnGap: '0',\n paddingTop: '0',\n marginLeft: '0',\n '&:focus-visible': {\n ...shorthands.outline('0')\n }\n },\n body: {\n paddingBottom: '10px',\n marginTop: '1rem',\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginLeft: '0rem',\n // This makes message bubble show border in high contrast mode making each message distinguishable\n ...shorthands.border('1px', 'solid', 'transparent'),\n\n '&:hover ~ .fui-ChatMyMessage__actions': {\n visibility: 'visible'\n },\n '&:focus ~ .fui-ChatMyMessage__actions': {\n visibility: 'visible'\n },\n '& msft-mention': {\n color: tokens.colorStatusWarningBackground3,\n fontWeight: 600\n }\n },\n bodyAttached: {\n marginTop: '0.125rem'\n },\n menu: {\n boxShadow: tokens.shadow4,\n backgroundColor: tokens.colorNeutralBackground1,\n marginRight: '1px',\n position: 'absolute',\n top: '-2px',\n right: '0',\n ...shorthands.borderRadius(tokens.borderRadiusMedium),\n zIndex: 1,\n lineHeight: tokens.lineHeightBase100,\n visibility: 'hidden',\n\n '&:hover, &:focus': {\n cursor: 'pointer',\n visibility: 'visible'\n }\n },\n menuAttached: {\n top: '-18px'\n },\n menuHidden: {\n visibility: 'hidden'\n },\n menuVisible: {\n visibility: 'visible'\n }\n});\n\n/**\n * @private\n */\nexport const newMessageButtonContainerStyle = mergeStyles({\n position: 'absolute',\n zIndex: NEW_MESSAGE_BUTTON_ZINDEX,\n bottom: 0,\n right: '1.5rem'\n});\n\n/**\n * @private\n */\nexport const chatMessageDateStyle: CSSProperties = {\n fontWeight: 600\n};\n\n/**\n * @private\n */\nexport const useChatMessageStyles = makeStyles({\n root: {\n paddingTop: '0',\n '&:focus-visible': {\n ...shorthands.outline('0')\n }\n },\n body: {\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginRight: '0rem',\n paddingBottom: '10px',\n zIndex: CHAT_MESSAGE_ZINDEX,\n // This makes message bubble show border in high contrast mode making each message distinguishable\n ...shorthands.border('1px', 'solid', 'transparent'),\n '& > div:first-of-type': {\n flexWrap: 'wrap'\n },\n '& msft-mention': {\n color: tokens.colorStatusWarningBackground3,\n fontWeight: tokens.fontWeightSemibold\n },\n '& img': {\n maxWidth: '100% !important', // Add !important to make sure it won't be overridden by style defined in element\n height: 'auto !important'\n },\n '& video': {\n maxWidth: '100% !important', // Add !important to make sure it won't be overridden by style defined in element\n height: 'auto !important'\n },\n '& p': {\n // Deal with awkward padding seen in messages from Teams.\n // For more info see https://github.com/Azure/communication-ui-library/pull/1507\n ...shorthands.marginBlock('0.125rem')\n },\n '& blockquote': {\n backgroundColor: tokens.colorBrandBackgroundInverted,\n clear: 'left',\n minHeight: '2.25rem',\n width: 'fit-content',\n marginTop: '7px',\n marginRight: '0px',\n marginLeft: '0px',\n marginBottom: '7px',\n paddingTop: '7px',\n paddingRight: '15px',\n paddingLeft: '15px',\n paddingBottom: '7px',\n ...shorthands.border('solid'),\n ...shorthands.borderRadius('4px'),\n ...shorthands.borderWidth('1px'),\n ...shorthands.borderColor(tokens.colorNeutralStroke1Selected),\n borderLeftWidth: '4px'\n }\n },\n bodyWithPlaceholderImage: {\n '& img[src=\"\"]': {\n display: 'block',\n position: 'relative',\n marginBottom: '5px'\n },\n '& img[src=\"\"]:after': {\n backgroundColor: tokens.colorNeutralBackground1Selected,\n content: `url(\"data:image/gif;base64,R0lGODlhAQABAAAAACw=\")`,\n backgroundSize: 'center',\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n display: 'block'\n }\n },\n bodyWithoutAvatar: {\n marginTop: '0.125rem'\n },\n bodyWithAvatar: {\n marginTop: `0.375rem`\n },\n avatarNoOverlap: {\n marginLeft: `${-AVATAR_MARGIN_LEFT + AVATAR_MESSAGE_GAP_REM}rem`\n },\n avatarOverlap: {\n marginLeft: `${-AVATAR_MARGIN_LEFT - MESSAGE_AVATAR_OVERLAP_REM}rem`\n }\n});\n\n/**\n * @private\n */\nexport const useChatMessageCommonStyles = makeStyles({\n body: {\n '& table': {\n backgroundColor: tokens.colorBrandBackgroundInverted,\n ...shorthands.borderColor(tokens.colorNeutralStroke1Selected),\n borderCollapse: 'collapse',\n tableLayout: 'auto',\n width: '100%',\n\n '& tr': {\n ...shorthands.border('1px', 'solid', `${tokens.colorNeutralStroke1Selected}`),\n\n '& td': {\n ...shorthands.border('1px', 'solid', `${tokens.colorNeutralStroke1Selected}`),\n wordBreak: 'normal',\n paddingTop: '0px',\n paddingRight: '5px'\n }\n }\n }\n },\n failed: {\n //TODO: can we reuse a theme color here?\n backgroundColor: 'rgba(168, 0, 0, 0.2)'\n },\n blocked: {\n maxWidth: '100%',\n minWidth: `${CHAT_MESSAGE_CONTAINER_MIN_WIDTH_REM}rem`,\n marginRight: '0rem',\n color: tokens.colorNeutralForeground2,\n\n // This makes message bubble show border in high contrast mode making each message distinguishable\n ...shorthands.border('1px', 'solid', 'transparent'),\n '& i': {\n paddingTop: '0.25rem'\n },\n\n '& p': {\n // Deal with awkward padding seen in messages from Teams.\n // For more info see https://github.com/Azure/communication-ui-library/pull/1507\n ...shorthands.marginBlock('0.125rem'),\n paddingRight: '0.75rem',\n fontStyle: 'italic'\n },\n\n '& a': {\n ...shorthands.marginBlock('0.125rem'),\n fontStyle: 'normal',\n color: tokens.colorBrandForegroundLink,\n ...shorthands.textDecoration('none')\n }\n }\n});\n\n/**\n * @private\n */\nexport const gutterWithAvatar: ComponentSlotStyle = {\n paddingTop: '1.65rem',\n width: `${AVATAR_WIDTH_REM}rem`,\n position: 'relative',\n float: 'left',\n display: 'block',\n visibility: 'visible',\n zIndex: AVATAR_ZINDEX\n};\n\n/**\n * @private\n */\nexport const gutterWithHiddenAvatar: ComponentSlotStyle = {\n ...gutterWithAvatar,\n visibility: 'hidden',\n // we use this hidden avatar just as a width placeholder\n // the placeholder is needed for responsive bubble width\n height: 0\n};\n\n/**\n * @private\n */\nexport const newMessageButtonStyle = mergeStyles({\n float: 'right',\n width: 'fit-content'\n});\n\n/**\n * @private\n */\nexport const buttonWithIconStyles: IButtonStyles = {\n textContainer: {\n display: 'contents'\n }\n};\n\n/**\n * @private\n */\nexport const loadPreviousMessageButtonStyle = mergeStyles({\n border: 'none',\n minHeight: '1.5rem',\n '&:hover': { background: 'none' },\n '&:active': { background: 'none' }\n});\n\n/**\n * @private\n */\nexport const DownIconStyle = mergeStyles({\n marginRight: '0.5em'\n});\n"]}
@@ -19,6 +19,7 @@ import { MutedNotification } from './MutedNotification';
19
19
  import { useSelector } from '../hooks/useSelector';
20
20
  import { callStatusSelector } from '../selectors/callStatusSelector';
21
21
  import { PreparedMoreDrawer } from '../../common/Drawer/PreparedMoreDrawer';
22
+ import { getRemoteParticipants } from '../selectors/baseSelectors';
22
23
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
23
24
  import { getPage } from '../selectors/baseSelectors';
24
25
  import { getCallStatus, getIsTeamsCall, getCaptionsStatus } from '../selectors/baseSelectors';
@@ -61,7 +62,15 @@ export const CallArrangement = (props) => {
61
62
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
62
63
  const isInLocalHold = useSelector(getPage) === 'hold';
63
64
  const adapter = useAdapter();
65
+ const [participantActioned, setParticipantActioned] = useState();
66
+ const remoteParticipants = useSelector(getRemoteParticipants);
64
67
  const [drawerMenuItems, setDrawerMenuItems] = useState([]);
68
+ useEffect(() => {
69
+ const participantIsActionedButIsNotPresent = participantActioned && (remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants[participantActioned]) === undefined;
70
+ if (participantIsActionedButIsNotPresent) {
71
+ setDrawerMenuItems([]);
72
+ }
73
+ }, [participantActioned, remoteParticipants]);
65
74
  const peoplePaneProps = useMemo(() => {
66
75
  var _a;
67
76
  return ({
@@ -71,7 +80,8 @@ export const CallArrangement = (props) => {
71
80
  onFetchAvatarPersonaData: props.onFetchAvatarPersonaData,
72
81
  onFetchParticipantMenuItems: (_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems,
73
82
  mobileView: props.mobileView,
74
- peopleButtonRef
83
+ peopleButtonRef,
84
+ setParticipantActioned
75
85
  });
76
86
  }, [
77
87
  updateSidePaneRenderer,
@@ -79,7 +89,8 @@ export const CallArrangement = (props) => {
79
89
  (_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems,
80
90
  props.onFetchAvatarPersonaData,
81
91
  props.mobileView,
82
- peopleButtonRef
92
+ peopleButtonRef,
93
+ setParticipantActioned
83
94
  ]);
84
95
  const locale = useLocale();
85
96
  /* @conditional-compile-remove(spotlight) */
@@ -1 +1 @@
1
- {"version":3,"file":"CallArrangement.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/CallArrangement.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButton, mergeStyles, Stack } from '@fluentui/react';\nimport { _isInCall, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport {\n _ComplianceBanner,\n _ComplianceBannerProps,\n _DrawerMenu,\n _DrawerMenuItemProps,\n _useContainerHeight,\n _useContainerWidth,\n ActiveErrorMessage,\n ErrorBar,\n ErrorBarProps,\n useTheme\n} from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\n/* @conditional-compile-remove(spotlight) */\nimport { VideoGallery } from '@internal/react-components';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { useEffect } from 'react';\nimport { useCallback } from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { CaptionsBanner } from '../../common/CaptionsBanner';\nimport { containerDivStyles } from '../../common/ContainerRectProps';\nimport { compositeMinWidthRem } from '../../common/styles/Composite.styles';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { CallControls, CallControlsProps } from '../components/CallControls';\nimport { CommonCallControlBar } from '../../common/ControlBar/CommonCallControlBar';\nimport {\n callArrangementContainerStyles,\n notificationsContainerStyles,\n containerStyleDesktop,\n containerStyleMobile,\n mediaGalleryContainerStyles,\n galleryParentContainerStyles,\n bannerNotificationStyles,\n CONTROL_BAR_Z_INDEX,\n DRAWER_Z_INDEX\n} from '../styles/CallPage.styles';\nimport { MutedNotification, MutedNotificationProps } from './MutedNotification';\nimport { CallAdapter } from '../adapter';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { PreparedMoreDrawer } from '../../common/Drawer/PreparedMoreDrawer';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { getPage } from '../selectors/baseSelectors';\nimport { getCallStatus, getIsTeamsCall, getCaptionsStatus } from '../selectors/baseSelectors';\nimport { drawerContainerStyles } from '../styles/CallComposite.styles';\nimport { SidePane } from './SidePane/SidePane';\nimport { usePeoplePane } from './SidePane/usePeoplePane';\n\nimport {\n useVideoEffectsPane,\n VIDEO_EFFECTS_SIDE_PANE_ID,\n VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM\n} from './SidePane/useVideoEffectsPane';\nimport { isDisabled } from '../utils';\nimport { SidePaneRenderer, useIsSidePaneOpen } from './SidePane/SidePaneProvider';\n\nimport { useIsParticularSidePaneOpen } from './SidePane/SidePaneProvider';\nimport { ModalLocalAndRemotePIP } from '../../common/ModalLocalAndRemotePIP';\nimport { getPipStyles } from '../../common/styles/ModalLocalAndRemotePIP.styles';\nimport { useMinMaxDragPosition } from '../../common/utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { CommonCallControlOptions } from '../../common/types/CommonCallControlOptions';\n\nimport { localVideoSelector } from '../../CallComposite/selectors/localVideoStreamSelector';\n\nimport {\n CapabilitiesChangedNotificationBar,\n CapabilitiesChangeNotificationBarProps\n} from './CapabilitiesChangedNotificationBar';\nimport { useLocale } from '../../localization';\n/* @conditional-compile-remove(spotlight) */\nimport { usePropsFor } from '../hooks/usePropsFor';\n/* @conditional-compile-remove(spotlight) */\nimport { PromptProps } from './Prompt';\n/* @conditional-compile-remove(spotlight) */\nimport {\n useLocalSpotlightCallbacksWithPrompt,\n useRemoteSpotlightCallbacksWithPrompt,\n useStopAllSpotlightCallbackWithPrompt\n} from '../utils/spotlightUtils';\n/* @conditional-compile-remove(acs-close-captions) */\nimport { getCaptionsKind } from '../selectors/baseSelectors';\n\n/**\n * @private\n */\nexport interface CallArrangementProps {\n id?: string;\n complianceBannerProps: _ComplianceBannerProps;\n errorBarProps: ErrorBarProps | false;\n mutedNotificationProps?: MutedNotificationProps;\n callControlProps: CallControlsProps;\n onRenderGalleryContent: () => JSX.Element;\n dataUiId: string;\n mobileView: boolean;\n modalLayerHostId: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n latestErrors: ActiveErrorMessage[];\n onDismissError: (error: ActiveErrorMessage) => void;\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n userSetGalleryLayout?: VideoGalleryLayout;\n\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n onCloseChatPane?: () => void;\n onSetDialpadPage?: () => void;\n dtmfDialerPresent?: boolean;\n /* @conditional-compile-remove(spotlight) */\n setIsPromptOpen?: (isOpen: boolean) => void;\n /* @conditional-compile-remove(spotlight) */\n setPromptProps?: (props: PromptProps) => void;\n /* @conditional-compile-remove(spotlight) */\n hideSpotlightButtons?: boolean;\n}\n\n/**\n * @private\n */\nexport const CallArrangement = (props: CallArrangementProps): JSX.Element => {\n const containerClassName = useMemo(() => {\n return props.mobileView ? containerStyleMobile : containerStyleDesktop;\n }, [props.mobileView]);\n\n const theme = useTheme();\n const callGalleryStyles = useMemo(\n () => galleryParentContainerStyles(theme.palette.neutralLighterAlt),\n [theme.palette.neutralLighterAlt]\n );\n\n const peopleButtonRef = useRef<IButton>(null);\n const cameraButtonRef = useRef<IButton>(null);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const containerWidth = _useContainerWidth(containerRef);\n const containerHeight = _useContainerHeight(containerRef);\n\n const isInLobby = _isInLobbyOrConnecting(useSelector(callStatusSelector).callStatus);\n\n const { updateSidePaneRenderer } = props;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const isInLocalHold = useSelector(getPage) === 'hold';\n\n const adapter = useAdapter();\n\n const [drawerMenuItems, setDrawerMenuItems] = useState<_DrawerMenuItemProps[]>([]);\n const peoplePaneProps = useMemo(\n () => ({\n updateSidePaneRenderer,\n setDrawerMenuItems,\n inviteLink: props.callControlProps.callInvitationURL,\n onFetchAvatarPersonaData: props.onFetchAvatarPersonaData,\n onFetchParticipantMenuItems: props.callControlProps?.onFetchParticipantMenuItems,\n mobileView: props.mobileView,\n peopleButtonRef\n }),\n [\n updateSidePaneRenderer,\n props.callControlProps.callInvitationURL,\n props.callControlProps?.onFetchParticipantMenuItems,\n props.onFetchAvatarPersonaData,\n props.mobileView,\n peopleButtonRef\n ]\n );\n\n const locale = useLocale();\n\n /* @conditional-compile-remove(spotlight) */\n const videoGalleryProps = usePropsFor(VideoGallery);\n\n /* @conditional-compile-remove(spotlight) */\n const { setPromptProps, setIsPromptOpen, hideSpotlightButtons } = props;\n\n /* @conditional-compile-remove(spotlight) */\n const {\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n spotlightedParticipants,\n maxParticipantsToSpotlight,\n localParticipant\n } = videoGalleryProps;\n\n /* @conditional-compile-remove(spotlight) */\n const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n /* @conditional-compile-remove(spotlight) */\n const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n /* @conditional-compile-remove(spotlight) */\n const canRemoveSpotlight =\n adapter.getState().call?.capabilitiesFeature?.capabilities.removeParticipantsSpotlight.isPresent;\n /* @conditional-compile-remove(spotlight) */\n const stopAllSpotlight = useMemo(\n () => (canRemoveSpotlight ? () => adapter.stopAllSpotlight() : undefined),\n [canRemoveSpotlight, adapter]\n );\n\n /* @conditional-compile-remove(spotlight) */\n const { stopAllSpotlightWithPrompt } = useStopAllSpotlightCallbackWithPrompt(\n stopAllSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const spotlightPeoplePaneProps = useMemo(() => {\n /* @conditional-compile-remove(spotlight) */\n return {\n spotlightedParticipantUserIds: spotlightedParticipants,\n onStartLocalSpotlight: hideSpotlightButtons ? undefined : onStartLocalSpotlightWithPrompt,\n onStopLocalSpotlight: hideSpotlightButtons ? undefined : onStopLocalSpotlightWithPrompt,\n onStartRemoteSpotlight: hideSpotlightButtons ? undefined : onStartRemoteSpotlightWithPrompt,\n onStopRemoteSpotlight: hideSpotlightButtons ? undefined : onStopRemoteSpotlightWithPrompt,\n onStopAllSpotlight: hideSpotlightButtons ? undefined : stopAllSpotlightWithPrompt,\n maxParticipantsToSpotlight\n };\n return {};\n }, [\n /* @conditional-compile-remove(spotlight) */ hideSpotlightButtons,\n /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,\n /* @conditional-compile-remove(spotlight) */ onStartLocalSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ onStartRemoteSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ onStopLocalSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ onStopRemoteSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ stopAllSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ spotlightedParticipants\n ]);\n\n const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane({\n ...peoplePaneProps,\n ...spotlightPeoplePaneProps\n });\n const togglePeoplePane = useCallback(() => {\n if (isPeoplePaneOpen) {\n closePeoplePane();\n } else {\n openPeoplePane();\n }\n }, [closePeoplePane, isPeoplePaneOpen, openPeoplePane]);\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n useEffect(() => {\n if (isInLocalHold) {\n // close side pane on local hold\n updateSidePaneRenderer(undefined);\n }\n }, [updateSidePaneRenderer, isInLocalHold, isPeoplePaneOpen, closePeoplePane]);\n\n const isSidePaneOpen = useIsSidePaneOpen();\n\n const [renderGallery, setRenderGallery] = useState<boolean>(!isSidePaneOpen && props.mobileView);\n\n useEffect(() => {\n if (isSidePaneOpen && props.mobileView) {\n setRenderGallery(false);\n } else {\n setRenderGallery(true);\n }\n }, [props.mobileView, isSidePaneOpen]);\n\n const modalStrings = { dismissModalAriaLabel: locale.strings.call.dismissModalAriaLabel };\n\n const isMobileWithActivePane = props.mobileView && isSidePaneOpen;\n\n const callCompositeContainerCSS = useMemo((): React.CSSProperties => {\n return {\n display: isMobileWithActivePane ? 'none' : 'flex',\n minWidth: props.mobileView ? 'unset' : `${compositeMinWidthRem}rem`,\n width: '100%',\n height: '100%',\n position: 'relative'\n };\n }, [isMobileWithActivePane, props.mobileView]);\n\n const onResolveVideoEffectDependency = adapter.getState().onResolveVideoEffectDependency;\n\n const { openVideoEffectsPane } = useVideoEffectsPane(\n props.updateSidePaneRenderer,\n props.mobileView,\n props.latestErrors,\n props.onDismissError,\n cameraButtonRef\n );\n const [showDrawer, setShowDrawer] = useState(false);\n const onMoreButtonClicked = useCallback(() => {\n setShowDrawer(true);\n }, []);\n const closeDrawer = useCallback(() => {\n setShowDrawer(false);\n }, []);\n const onMoreDrawerPeopleClicked = useCallback(() => {\n setShowDrawer(false);\n togglePeoplePane();\n }, [togglePeoplePane]);\n\n const drawerContainerStylesValue = useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);\n\n const role = adapter.getState().call?.role;\n\n const canUnmute = role !== 'Consumer' ? true : false;\n\n let filteredLatestErrors: ActiveErrorMessage[] = props.errorBarProps !== false ? props.latestErrors : [];\n\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n // TODO: move this logic to the error bar selector once role is plumbed from the headless SDK\n if (role === 'Consumer' && props.errorBarProps) {\n filteredLatestErrors = filteredLatestErrors.filter(\n (e) => e.type !== 'callCameraAccessDenied' && e.type !== 'callCameraAccessDeniedSafari'\n );\n }\n\n const isVideoPaneOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n\n if ((isVideoPaneOpen || !isCameraOn) && props.errorBarProps) {\n filteredLatestErrors = filteredLatestErrors.filter((e) => e.type !== 'unableToStartVideoEffect');\n }\n\n /* @conditional-compile-remove(acs-close-captions) */\n const isTeamsCaptions = useSelector(getCaptionsKind) === 'TeamsCaptions';\n const useTeamsCaptions =\n useSelector(getIsTeamsCall) || /* @conditional-compile-remove(acs-close-captions) */ isTeamsCaptions;\n const hasJoinedCall = useSelector(getCallStatus) === 'Connected';\n const isCaptionsOn = useSelector(getCaptionsStatus);\n const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);\n const pipStyles = useMemo(() => getPipStyles(theme), [theme]);\n\n const verticalControlBar =\n props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;\n\n // Filter out shareScreen capability notifications if on mobile\n const filteredCapabilitesChangedNotifications = props.mobileView\n ? props.capabilitiesChangedNotificationBarProps?.capabilitiesChangedNotifications.filter(\n (notification) => notification.capabilityName !== 'shareScreen'\n )\n : props.capabilitiesChangedNotificationBarProps?.capabilitiesChangedNotifications;\n\n return (\n <div ref={containerRef} className={mergeStyles(containerDivStyles)} id={props.id}>\n <Stack verticalFill horizontalAlign=\"stretch\" className={containerClassName} data-ui-id={props.dataUiId}>\n <Stack\n reversed\n horizontal={verticalControlBar}\n grow\n styles={callArrangementContainerStyles(verticalControlBar)}\n >\n {props.callControlProps?.options !== false && !isMobileWithActivePane && (\n <Stack\n verticalAlign={'center'}\n className={mergeStyles({\n zIndex: CONTROL_BAR_Z_INDEX,\n padding: verticalControlBar ? '0.25rem' : 'unset'\n })}\n >\n {isLegacyCallControlEnabled(props.callControlProps?.options) ? (\n <CallControls\n {...props.callControlProps}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n isMobile={props.mobileView}\n /* @conditional-compile-remove(one-to-n-calling) */\n peopleButtonChecked={isPeoplePaneOpen}\n /* @conditional-compile-remove(one-to-n-calling) */\n onPeopleButtonClicked={togglePeoplePane}\n displayVertical={verticalControlBar}\n />\n ) : (\n <CommonCallControlBar\n {...props.callControlProps}\n callControls={props.callControlProps.options}\n callAdapter={adapter as CallAdapter}\n mobileView={props.mobileView}\n disableButtonsForLobbyPage={isInLobby}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n peopleButtonChecked={isPeoplePaneOpen}\n onPeopleButtonClicked={togglePeoplePane}\n onMoreButtonClicked={onMoreButtonClicked}\n isCaptionsSupported={\n (useTeamsCaptions && hasJoinedCall) ||\n /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall\n }\n useTeamsCaptions={useTeamsCaptions}\n isCaptionsOn={isCaptionsOn}\n onClickVideoEffects={onResolveVideoEffectDependency ? openVideoEffectsPane : undefined}\n displayVertical={verticalControlBar}\n onUserSetOverflowGalleryPositionChange={props.onUserSetOverflowGalleryPositionChange}\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n userSetGalleryLayout={props.userSetGalleryLayout}\n onSetDialpadPage={props.onSetDialpadPage}\n dtmfDialerPresent={props.dtmfDialerPresent}\n peopleButtonRef={peopleButtonRef}\n cameraButtonRef={cameraButtonRef}\n /* @conditional-compile-remove(spotlight) */\n onStopLocalSpotlight={\n !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined\n }\n />\n )}\n </Stack>\n )}\n {props.callControlProps?.options !== false && showDrawer && (\n <Stack styles={drawerContainerStylesValue}>\n <PreparedMoreDrawer\n callControls={props.callControlProps.options}\n onLightDismiss={closeDrawer}\n onPeopleButtonClicked={onMoreDrawerPeopleClicked}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n isCaptionsSupported={\n (useTeamsCaptions && hasJoinedCall) ||\n /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall\n }\n useTeamsCaptions={useTeamsCaptions}\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n userSetGalleryLayout={props.userSetGalleryLayout}\n onSetDialpadPage={props.onSetDialpadPage}\n dtmfDialerPresent={props.dtmfDialerPresent}\n reactionResources={adapter.getState().reactions}\n />\n </Stack>\n )}\n <Stack horizontal grow>\n <Stack.Item style={callCompositeContainerCSS}>\n <Stack.Item styles={callGalleryStyles} grow>\n <Stack verticalFill styles={mediaGalleryContainerStyles}>\n <Stack.Item styles={notificationsContainerStyles}>\n <Stack styles={bannerNotificationStyles}>\n <_ComplianceBanner {...props.complianceBannerProps} />\n </Stack>\n {props.errorBarProps !== false && (\n <Stack styles={bannerNotificationStyles}>\n <ErrorBar\n {...props.errorBarProps}\n onDismissError={props.onDismissError}\n activeErrorMessages={filteredLatestErrors}\n />\n </Stack>\n )}\n {props.capabilitiesChangedNotificationBarProps &&\n props.capabilitiesChangedNotificationBarProps.capabilitiesChangedNotifications.length > 0 && (\n <Stack styles={bannerNotificationStyles}>\n <CapabilitiesChangedNotificationBar\n {...props.capabilitiesChangedNotificationBarProps}\n capabilitiesChangedNotifications={filteredCapabilitesChangedNotifications ?? []}\n />\n </Stack>\n )}\n {canUnmute && !!props.mutedNotificationProps && (\n <MutedNotification {...props.mutedNotificationProps} />\n )}\n </Stack.Item>\n {renderGallery && props.onRenderGalleryContent && props.onRenderGalleryContent()}\n {true &&\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (\n <CaptionsBanner\n isMobile={props.mobileView}\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n useTeamsCaptions={useTeamsCaptions}\n />\n )}\n </Stack>\n </Stack.Item>\n </Stack.Item>\n <SidePane\n mobileView={props.mobileView}\n maxWidth={isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined}\n minWidth={isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n onPeopleButtonClicked={\n props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)\n ? undefined\n : togglePeoplePane\n }\n disablePeopleButton={\n typeof props.callControlProps.options !== 'boolean' &&\n isDisabled(props.callControlProps.options?.participantsButton)\n }\n onChatButtonClicked={props.mobileChatTabHeader?.onClick}\n disableChatButton={props.mobileChatTabHeader?.disabled}\n />\n {props.mobileView && (\n <ModalLocalAndRemotePIP\n modalLayerHostId={props.modalLayerHostId}\n hidden={!isSidePaneOpen}\n styles={pipStyles}\n strings={modalStrings}\n minDragPosition={minMaxDragPosition.minDragPosition}\n maxDragPosition={minMaxDragPosition.maxDragPosition}\n onDismissSidePane={() => {\n closePeoplePane();\n if (props.onCloseChatPane) {\n props.onCloseChatPane();\n }\n }}\n />\n )}\n {drawerMenuItems.length > 0 && (\n <Stack styles={drawerContainerStyles()}>\n <_DrawerMenu onLightDismiss={() => setDrawerMenuItems([])} items={drawerMenuItems} />\n </Stack>\n )}\n </Stack>\n </Stack>\n </Stack>\n </div>\n );\n};\n\nconst isLegacyCallControlEnabled = (options?: boolean | CallControlOptions): boolean => {\n return !!options && options !== true && options?.legacyControlBarExperience === true;\n};\n\nconst shouldShowPeopleTabHeaderButton = (callControls?: boolean | CommonCallControlOptions): boolean => {\n if (callControls === undefined || callControls === true) {\n return true;\n }\n if (callControls === false) {\n return false;\n }\n return callControls.participantsButton !== false && callControls.peopleButton !== false;\n};\n"]}
1
+ {"version":3,"file":"CallArrangement.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/CallArrangement.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButton, mergeStyles, Stack } from '@fluentui/react';\nimport { _isInCall, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport {\n _ComplianceBanner,\n _ComplianceBannerProps,\n _DrawerMenu,\n _DrawerMenuItemProps,\n _useContainerHeight,\n _useContainerWidth,\n ActiveErrorMessage,\n ErrorBar,\n ErrorBarProps,\n useTheme\n} from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\n/* @conditional-compile-remove(spotlight) */\nimport { VideoGallery } from '@internal/react-components';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { useEffect } from 'react';\nimport { useCallback } from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { CaptionsBanner } from '../../common/CaptionsBanner';\nimport { containerDivStyles } from '../../common/ContainerRectProps';\nimport { compositeMinWidthRem } from '../../common/styles/Composite.styles';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { CallControls, CallControlsProps } from '../components/CallControls';\nimport { CommonCallControlBar } from '../../common/ControlBar/CommonCallControlBar';\nimport {\n callArrangementContainerStyles,\n notificationsContainerStyles,\n containerStyleDesktop,\n containerStyleMobile,\n mediaGalleryContainerStyles,\n galleryParentContainerStyles,\n bannerNotificationStyles,\n CONTROL_BAR_Z_INDEX,\n DRAWER_Z_INDEX\n} from '../styles/CallPage.styles';\nimport { MutedNotification, MutedNotificationProps } from './MutedNotification';\nimport { CallAdapter } from '../adapter';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { PreparedMoreDrawer } from '../../common/Drawer/PreparedMoreDrawer';\nimport { getRemoteParticipants } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { getPage } from '../selectors/baseSelectors';\nimport { getCallStatus, getIsTeamsCall, getCaptionsStatus } from '../selectors/baseSelectors';\nimport { drawerContainerStyles } from '../styles/CallComposite.styles';\nimport { SidePane } from './SidePane/SidePane';\nimport { usePeoplePane } from './SidePane/usePeoplePane';\n\nimport {\n useVideoEffectsPane,\n VIDEO_EFFECTS_SIDE_PANE_ID,\n VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM\n} from './SidePane/useVideoEffectsPane';\nimport { isDisabled } from '../utils';\nimport { SidePaneRenderer, useIsSidePaneOpen } from './SidePane/SidePaneProvider';\n\nimport { useIsParticularSidePaneOpen } from './SidePane/SidePaneProvider';\nimport { ModalLocalAndRemotePIP } from '../../common/ModalLocalAndRemotePIP';\nimport { getPipStyles } from '../../common/styles/ModalLocalAndRemotePIP.styles';\nimport { useMinMaxDragPosition } from '../../common/utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { CommonCallControlOptions } from '../../common/types/CommonCallControlOptions';\n\nimport { localVideoSelector } from '../../CallComposite/selectors/localVideoStreamSelector';\n\nimport {\n CapabilitiesChangedNotificationBar,\n CapabilitiesChangeNotificationBarProps\n} from './CapabilitiesChangedNotificationBar';\nimport { useLocale } from '../../localization';\n/* @conditional-compile-remove(spotlight) */\nimport { usePropsFor } from '../hooks/usePropsFor';\n/* @conditional-compile-remove(spotlight) */\nimport { PromptProps } from './Prompt';\n/* @conditional-compile-remove(spotlight) */\nimport {\n useLocalSpotlightCallbacksWithPrompt,\n useRemoteSpotlightCallbacksWithPrompt,\n useStopAllSpotlightCallbackWithPrompt\n} from '../utils/spotlightUtils';\n/* @conditional-compile-remove(acs-close-captions) */\nimport { getCaptionsKind } from '../selectors/baseSelectors';\n\n/**\n * @private\n */\nexport interface CallArrangementProps {\n id?: string;\n complianceBannerProps: _ComplianceBannerProps;\n errorBarProps: ErrorBarProps | false;\n mutedNotificationProps?: MutedNotificationProps;\n callControlProps: CallControlsProps;\n onRenderGalleryContent: () => JSX.Element;\n dataUiId: string;\n mobileView: boolean;\n modalLayerHostId: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n latestErrors: ActiveErrorMessage[];\n onDismissError: (error: ActiveErrorMessage) => void;\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n userSetGalleryLayout?: VideoGalleryLayout;\n\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n onCloseChatPane?: () => void;\n onSetDialpadPage?: () => void;\n dtmfDialerPresent?: boolean;\n /* @conditional-compile-remove(spotlight) */\n setIsPromptOpen?: (isOpen: boolean) => void;\n /* @conditional-compile-remove(spotlight) */\n setPromptProps?: (props: PromptProps) => void;\n /* @conditional-compile-remove(spotlight) */\n hideSpotlightButtons?: boolean;\n}\n\n/**\n * @private\n */\nexport const CallArrangement = (props: CallArrangementProps): JSX.Element => {\n const containerClassName = useMemo(() => {\n return props.mobileView ? containerStyleMobile : containerStyleDesktop;\n }, [props.mobileView]);\n\n const theme = useTheme();\n const callGalleryStyles = useMemo(\n () => galleryParentContainerStyles(theme.palette.neutralLighterAlt),\n [theme.palette.neutralLighterAlt]\n );\n\n const peopleButtonRef = useRef<IButton>(null);\n const cameraButtonRef = useRef<IButton>(null);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const containerWidth = _useContainerWidth(containerRef);\n const containerHeight = _useContainerHeight(containerRef);\n\n const isInLobby = _isInLobbyOrConnecting(useSelector(callStatusSelector).callStatus);\n\n const { updateSidePaneRenderer } = props;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const isInLocalHold = useSelector(getPage) === 'hold';\n\n const adapter = useAdapter();\n\n const [participantActioned, setParticipantActioned] = useState<string>();\n const remoteParticipants = useSelector(getRemoteParticipants);\n const [drawerMenuItems, setDrawerMenuItems] = useState<_DrawerMenuItemProps[]>([]);\n useEffect(() => {\n const participantIsActionedButIsNotPresent =\n participantActioned && remoteParticipants?.[participantActioned] === undefined;\n if (participantIsActionedButIsNotPresent) {\n setDrawerMenuItems([]);\n }\n }, [participantActioned, remoteParticipants]);\n const peoplePaneProps = useMemo(\n () => ({\n updateSidePaneRenderer,\n setDrawerMenuItems,\n inviteLink: props.callControlProps.callInvitationURL,\n onFetchAvatarPersonaData: props.onFetchAvatarPersonaData,\n onFetchParticipantMenuItems: props.callControlProps?.onFetchParticipantMenuItems,\n mobileView: props.mobileView,\n peopleButtonRef,\n setParticipantActioned\n }),\n [\n updateSidePaneRenderer,\n props.callControlProps.callInvitationURL,\n props.callControlProps?.onFetchParticipantMenuItems,\n props.onFetchAvatarPersonaData,\n props.mobileView,\n peopleButtonRef,\n setParticipantActioned\n ]\n );\n\n const locale = useLocale();\n\n /* @conditional-compile-remove(spotlight) */\n const videoGalleryProps = usePropsFor(VideoGallery);\n\n /* @conditional-compile-remove(spotlight) */\n const { setPromptProps, setIsPromptOpen, hideSpotlightButtons } = props;\n\n /* @conditional-compile-remove(spotlight) */\n const {\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n spotlightedParticipants,\n maxParticipantsToSpotlight,\n localParticipant\n } = videoGalleryProps;\n\n /* @conditional-compile-remove(spotlight) */\n const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n /* @conditional-compile-remove(spotlight) */\n const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n /* @conditional-compile-remove(spotlight) */\n const canRemoveSpotlight =\n adapter.getState().call?.capabilitiesFeature?.capabilities.removeParticipantsSpotlight.isPresent;\n /* @conditional-compile-remove(spotlight) */\n const stopAllSpotlight = useMemo(\n () => (canRemoveSpotlight ? () => adapter.stopAllSpotlight() : undefined),\n [canRemoveSpotlight, adapter]\n );\n\n /* @conditional-compile-remove(spotlight) */\n const { stopAllSpotlightWithPrompt } = useStopAllSpotlightCallbackWithPrompt(\n stopAllSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const spotlightPeoplePaneProps = useMemo(() => {\n /* @conditional-compile-remove(spotlight) */\n return {\n spotlightedParticipantUserIds: spotlightedParticipants,\n onStartLocalSpotlight: hideSpotlightButtons ? undefined : onStartLocalSpotlightWithPrompt,\n onStopLocalSpotlight: hideSpotlightButtons ? undefined : onStopLocalSpotlightWithPrompt,\n onStartRemoteSpotlight: hideSpotlightButtons ? undefined : onStartRemoteSpotlightWithPrompt,\n onStopRemoteSpotlight: hideSpotlightButtons ? undefined : onStopRemoteSpotlightWithPrompt,\n onStopAllSpotlight: hideSpotlightButtons ? undefined : stopAllSpotlightWithPrompt,\n maxParticipantsToSpotlight\n };\n return {};\n }, [\n /* @conditional-compile-remove(spotlight) */ hideSpotlightButtons,\n /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,\n /* @conditional-compile-remove(spotlight) */ onStartLocalSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ onStartRemoteSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ onStopLocalSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ onStopRemoteSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ stopAllSpotlightWithPrompt,\n /* @conditional-compile-remove(spotlight) */ spotlightedParticipants\n ]);\n\n const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane({\n ...peoplePaneProps,\n ...spotlightPeoplePaneProps\n });\n const togglePeoplePane = useCallback(() => {\n if (isPeoplePaneOpen) {\n closePeoplePane();\n } else {\n openPeoplePane();\n }\n }, [closePeoplePane, isPeoplePaneOpen, openPeoplePane]);\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n useEffect(() => {\n if (isInLocalHold) {\n // close side pane on local hold\n updateSidePaneRenderer(undefined);\n }\n }, [updateSidePaneRenderer, isInLocalHold, isPeoplePaneOpen, closePeoplePane]);\n\n const isSidePaneOpen = useIsSidePaneOpen();\n\n const [renderGallery, setRenderGallery] = useState<boolean>(!isSidePaneOpen && props.mobileView);\n\n useEffect(() => {\n if (isSidePaneOpen && props.mobileView) {\n setRenderGallery(false);\n } else {\n setRenderGallery(true);\n }\n }, [props.mobileView, isSidePaneOpen]);\n\n const modalStrings = { dismissModalAriaLabel: locale.strings.call.dismissModalAriaLabel };\n\n const isMobileWithActivePane = props.mobileView && isSidePaneOpen;\n\n const callCompositeContainerCSS = useMemo((): React.CSSProperties => {\n return {\n display: isMobileWithActivePane ? 'none' : 'flex',\n minWidth: props.mobileView ? 'unset' : `${compositeMinWidthRem}rem`,\n width: '100%',\n height: '100%',\n position: 'relative'\n };\n }, [isMobileWithActivePane, props.mobileView]);\n\n const onResolveVideoEffectDependency = adapter.getState().onResolveVideoEffectDependency;\n\n const { openVideoEffectsPane } = useVideoEffectsPane(\n props.updateSidePaneRenderer,\n props.mobileView,\n props.latestErrors,\n props.onDismissError,\n cameraButtonRef\n );\n const [showDrawer, setShowDrawer] = useState(false);\n const onMoreButtonClicked = useCallback(() => {\n setShowDrawer(true);\n }, []);\n const closeDrawer = useCallback(() => {\n setShowDrawer(false);\n }, []);\n const onMoreDrawerPeopleClicked = useCallback(() => {\n setShowDrawer(false);\n togglePeoplePane();\n }, [togglePeoplePane]);\n\n const drawerContainerStylesValue = useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);\n\n const role = adapter.getState().call?.role;\n\n const canUnmute = role !== 'Consumer' ? true : false;\n\n let filteredLatestErrors: ActiveErrorMessage[] = props.errorBarProps !== false ? props.latestErrors : [];\n\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n // TODO: move this logic to the error bar selector once role is plumbed from the headless SDK\n if (role === 'Consumer' && props.errorBarProps) {\n filteredLatestErrors = filteredLatestErrors.filter(\n (e) => e.type !== 'callCameraAccessDenied' && e.type !== 'callCameraAccessDeniedSafari'\n );\n }\n\n const isVideoPaneOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n\n if ((isVideoPaneOpen || !isCameraOn) && props.errorBarProps) {\n filteredLatestErrors = filteredLatestErrors.filter((e) => e.type !== 'unableToStartVideoEffect');\n }\n\n /* @conditional-compile-remove(acs-close-captions) */\n const isTeamsCaptions = useSelector(getCaptionsKind) === 'TeamsCaptions';\n const useTeamsCaptions =\n useSelector(getIsTeamsCall) || /* @conditional-compile-remove(acs-close-captions) */ isTeamsCaptions;\n const hasJoinedCall = useSelector(getCallStatus) === 'Connected';\n const isCaptionsOn = useSelector(getCaptionsStatus);\n const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);\n const pipStyles = useMemo(() => getPipStyles(theme), [theme]);\n\n const verticalControlBar =\n props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;\n\n // Filter out shareScreen capability notifications if on mobile\n const filteredCapabilitesChangedNotifications = props.mobileView\n ? props.capabilitiesChangedNotificationBarProps?.capabilitiesChangedNotifications.filter(\n (notification) => notification.capabilityName !== 'shareScreen'\n )\n : props.capabilitiesChangedNotificationBarProps?.capabilitiesChangedNotifications;\n\n return (\n <div ref={containerRef} className={mergeStyles(containerDivStyles)} id={props.id}>\n <Stack verticalFill horizontalAlign=\"stretch\" className={containerClassName} data-ui-id={props.dataUiId}>\n <Stack\n reversed\n horizontal={verticalControlBar}\n grow\n styles={callArrangementContainerStyles(verticalControlBar)}\n >\n {props.callControlProps?.options !== false && !isMobileWithActivePane && (\n <Stack\n verticalAlign={'center'}\n className={mergeStyles({\n zIndex: CONTROL_BAR_Z_INDEX,\n padding: verticalControlBar ? '0.25rem' : 'unset'\n })}\n >\n {isLegacyCallControlEnabled(props.callControlProps?.options) ? (\n <CallControls\n {...props.callControlProps}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n isMobile={props.mobileView}\n /* @conditional-compile-remove(one-to-n-calling) */\n peopleButtonChecked={isPeoplePaneOpen}\n /* @conditional-compile-remove(one-to-n-calling) */\n onPeopleButtonClicked={togglePeoplePane}\n displayVertical={verticalControlBar}\n />\n ) : (\n <CommonCallControlBar\n {...props.callControlProps}\n callControls={props.callControlProps.options}\n callAdapter={adapter as CallAdapter}\n mobileView={props.mobileView}\n disableButtonsForLobbyPage={isInLobby}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n peopleButtonChecked={isPeoplePaneOpen}\n onPeopleButtonClicked={togglePeoplePane}\n onMoreButtonClicked={onMoreButtonClicked}\n isCaptionsSupported={\n (useTeamsCaptions && hasJoinedCall) ||\n /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall\n }\n useTeamsCaptions={useTeamsCaptions}\n isCaptionsOn={isCaptionsOn}\n onClickVideoEffects={onResolveVideoEffectDependency ? openVideoEffectsPane : undefined}\n displayVertical={verticalControlBar}\n onUserSetOverflowGalleryPositionChange={props.onUserSetOverflowGalleryPositionChange}\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n userSetGalleryLayout={props.userSetGalleryLayout}\n onSetDialpadPage={props.onSetDialpadPage}\n dtmfDialerPresent={props.dtmfDialerPresent}\n peopleButtonRef={peopleButtonRef}\n cameraButtonRef={cameraButtonRef}\n /* @conditional-compile-remove(spotlight) */\n onStopLocalSpotlight={\n !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined\n }\n />\n )}\n </Stack>\n )}\n {props.callControlProps?.options !== false && showDrawer && (\n <Stack styles={drawerContainerStylesValue}>\n <PreparedMoreDrawer\n callControls={props.callControlProps.options}\n onLightDismiss={closeDrawer}\n onPeopleButtonClicked={onMoreDrawerPeopleClicked}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n isCaptionsSupported={\n (useTeamsCaptions && hasJoinedCall) ||\n /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall\n }\n useTeamsCaptions={useTeamsCaptions}\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n userSetGalleryLayout={props.userSetGalleryLayout}\n onSetDialpadPage={props.onSetDialpadPage}\n dtmfDialerPresent={props.dtmfDialerPresent}\n reactionResources={adapter.getState().reactions}\n />\n </Stack>\n )}\n <Stack horizontal grow>\n <Stack.Item style={callCompositeContainerCSS}>\n <Stack.Item styles={callGalleryStyles} grow>\n <Stack verticalFill styles={mediaGalleryContainerStyles}>\n <Stack.Item styles={notificationsContainerStyles}>\n <Stack styles={bannerNotificationStyles}>\n <_ComplianceBanner {...props.complianceBannerProps} />\n </Stack>\n {props.errorBarProps !== false && (\n <Stack styles={bannerNotificationStyles}>\n <ErrorBar\n {...props.errorBarProps}\n onDismissError={props.onDismissError}\n activeErrorMessages={filteredLatestErrors}\n />\n </Stack>\n )}\n {props.capabilitiesChangedNotificationBarProps &&\n props.capabilitiesChangedNotificationBarProps.capabilitiesChangedNotifications.length > 0 && (\n <Stack styles={bannerNotificationStyles}>\n <CapabilitiesChangedNotificationBar\n {...props.capabilitiesChangedNotificationBarProps}\n capabilitiesChangedNotifications={filteredCapabilitesChangedNotifications ?? []}\n />\n </Stack>\n )}\n {canUnmute && !!props.mutedNotificationProps && (\n <MutedNotification {...props.mutedNotificationProps} />\n )}\n </Stack.Item>\n {renderGallery && props.onRenderGalleryContent && props.onRenderGalleryContent()}\n {true &&\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (\n <CaptionsBanner\n isMobile={props.mobileView}\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n useTeamsCaptions={useTeamsCaptions}\n />\n )}\n </Stack>\n </Stack.Item>\n </Stack.Item>\n <SidePane\n mobileView={props.mobileView}\n maxWidth={isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined}\n minWidth={isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n onPeopleButtonClicked={\n props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)\n ? undefined\n : togglePeoplePane\n }\n disablePeopleButton={\n typeof props.callControlProps.options !== 'boolean' &&\n isDisabled(props.callControlProps.options?.participantsButton)\n }\n onChatButtonClicked={props.mobileChatTabHeader?.onClick}\n disableChatButton={props.mobileChatTabHeader?.disabled}\n />\n {props.mobileView && (\n <ModalLocalAndRemotePIP\n modalLayerHostId={props.modalLayerHostId}\n hidden={!isSidePaneOpen}\n styles={pipStyles}\n strings={modalStrings}\n minDragPosition={minMaxDragPosition.minDragPosition}\n maxDragPosition={minMaxDragPosition.maxDragPosition}\n onDismissSidePane={() => {\n closePeoplePane();\n if (props.onCloseChatPane) {\n props.onCloseChatPane();\n }\n }}\n />\n )}\n {drawerMenuItems.length > 0 && (\n <Stack styles={drawerContainerStyles()}>\n <_DrawerMenu onLightDismiss={() => setDrawerMenuItems([])} items={drawerMenuItems} />\n </Stack>\n )}\n </Stack>\n </Stack>\n </Stack>\n </div>\n );\n};\n\nconst isLegacyCallControlEnabled = (options?: boolean | CallControlOptions): boolean => {\n return !!options && options !== true && options?.legacyControlBarExperience === true;\n};\n\nconst shouldShowPeopleTabHeaderButton = (callControls?: boolean | CommonCallControlOptions): boolean => {\n if (callControls === undefined || callControls === true) {\n return true;\n }\n if (callControls === false) {\n return false;\n }\n return callControls.participantsButton !== false && callControls.peopleButton !== false;\n};\n"]}
@@ -12,6 +12,7 @@ export declare const usePeoplePane: (props: {
12
12
  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback | undefined;
13
13
  mobileView?: boolean | undefined;
14
14
  peopleButtonRef?: React.RefObject<IButton> | undefined;
15
+ setParticipantActioned?: ((userId: string) => void) | undefined;
15
16
  spotlightedParticipantUserIds?: string[] | undefined;
16
17
  onStartLocalSpotlight?: (() => Promise<void>) | undefined;
17
18
  onStopLocalSpotlight?: (() => Promise<void>) | undefined;
@@ -8,7 +8,7 @@ import { useLocale } from '../../../localization';
8
8
  const PEOPLE_SIDE_PANE_ID = 'people';
9
9
  /** @private */
10
10
  export const usePeoplePane = (props) => {
11
- const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef,
11
+ const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef, setParticipantActioned,
12
12
  /* @conditional-compile-remove(spotlight) */
13
13
  spotlightedParticipantUserIds,
14
14
  /* @conditional-compile-remove(spotlight) */
@@ -129,7 +129,7 @@ export const usePeoplePane = (props) => {
129
129
  /* @conditional-compile-remove(spotlight) */
130
130
  _onFetchParticipantMenuItems = onFetchParticipantMenuItemsForCallComposite;
131
131
  const onRenderContent = useCallback(() => {
132
- return (React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: _onFetchParticipantMenuItems, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView,
132
+ return (React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: _onFetchParticipantMenuItems, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned,
133
133
  /* @conditional-compile-remove(spotlight) */
134
134
  participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps }));
135
135
  }, [
@@ -138,6 +138,7 @@ export const usePeoplePane = (props) => {
138
138
  onFetchAvatarPersonaData,
139
139
  _onFetchParticipantMenuItems,
140
140
  setDrawerMenuItems,
141
+ setParticipantActioned,
141
142
  /* @conditional-compile-remove(spotlight) */ sidePaneHeaderMenuProps
142
143
  ]);
143
144
  const sidePaneRenderer = useMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"file":"usePeoplePane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { RefObject, useCallback, useEffect, useMemo } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\nimport { PeoplePaneContent } from '../../../common/PeoplePaneContent';\nimport { useLocale } from '../../../localization';\nimport { ParticipantMenuItemsCallback, _DrawerMenuItemProps } from '@internal/react-components';\nimport { AvatarPersonaDataCallback } from '../../../common/AvatarPersona';\nimport { IButton } from '@fluentui/react';\n/* @conditional-compile-remove(spotlight) */\nimport { IContextualMenuItem, IContextualMenuProps } from '@fluentui/react';\n\nconst PEOPLE_SIDE_PANE_ID = 'people';\n\n/** @private */\nexport const usePeoplePane = (props: {\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n setDrawerMenuItems: (items: _DrawerMenuItemProps[]) => void;\n inviteLink?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n mobileView?: boolean;\n peopleButtonRef?: RefObject<IButton>;\n /* @conditional-compile-remove(spotlight) */\n spotlightedParticipantUserIds?: string[];\n /* @conditional-compile-remove(spotlight) */\n onStartLocalSpotlight?: () => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n onStopLocalSpotlight?: () => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n onStartRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n onStopRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n onStopAllSpotlight?: () => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n maxParticipantsToSpotlight?: number;\n}): {\n openPeoplePane: () => void;\n closePeoplePane: () => void;\n isPeoplePaneOpen: boolean;\n} => {\n const {\n updateSidePaneRenderer,\n inviteLink,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n setDrawerMenuItems,\n mobileView,\n peopleButtonRef,\n /* @conditional-compile-remove(spotlight) */\n spotlightedParticipantUserIds,\n /* @conditional-compile-remove(spotlight) */\n onStartLocalSpotlight,\n /* @conditional-compile-remove(spotlight) */\n onStopLocalSpotlight,\n /* @conditional-compile-remove(spotlight) */\n onStartRemoteSpotlight,\n /* @conditional-compile-remove(spotlight) */\n onStopRemoteSpotlight,\n /* @conditional-compile-remove(spotlight) */\n onStopAllSpotlight,\n /* @conditional-compile-remove(spotlight) */\n maxParticipantsToSpotlight\n } = props;\n\n const closePane = useCallback(() => {\n updateSidePaneRenderer(undefined);\n peopleButtonRef?.current?.focus();\n }, [peopleButtonRef, updateSidePaneRenderer]);\n\n const localeStrings = useLocale().strings.call;\n\n /* @conditional-compile-remove(spotlight) */\n const sidePaneHeaderMenuProps: IContextualMenuProps = useMemo(() => {\n const menuItems: IContextualMenuItem[] = [];\n if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {\n menuItems.push({\n key: 'stopAllSpotlightKey',\n text: localeStrings.stopAllSpotlightMenuLabel,\n iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },\n onClick: () => {\n onStopAllSpotlight();\n },\n ariaLabel: localeStrings.stopAllSpotlightMenuLabel\n });\n }\n return {\n items: menuItems\n };\n }, [onStopAllSpotlight, spotlightedParticipantUserIds, localeStrings.stopAllSpotlightMenuLabel]);\n\n const onRenderHeader = useCallback(\n () => (\n <SidePaneHeader\n onClose={closePane}\n headingText={localeStrings.peoplePaneTitle}\n dismissSidePaneButtonAriaLabel={localeStrings.dismissSidePaneButtonLabel}\n mobileView={mobileView ?? false}\n />\n ),\n [mobileView, closePane, localeStrings]\n );\n\n /* @conditional-compile-remove(spotlight) */\n const onFetchParticipantMenuItemsForCallComposite = useCallback(\n (participantId: string, myUserId?: string, defaultMenuItems?: IContextualMenuItem[]): IContextualMenuItem[] => {\n const _defaultMenuItems: IContextualMenuItem[] = defaultMenuItems ?? [];\n const isSpotlighted = spotlightedParticipantUserIds?.find((p) => p === participantId);\n const isMe = myUserId === participantId;\n if (isSpotlighted) {\n const stopSpotlightMenuText = isMe\n ? localeStrings.stopSpotlightOnSelfMenuLabel\n : localeStrings.stopSpotlightMenuLabel;\n const onStopSpotlight = isMe\n ? onStopLocalSpotlight\n : onStopRemoteSpotlight\n ? () => {\n onStopRemoteSpotlight([participantId]);\n }\n : undefined;\n if (onStopSpotlight && stopSpotlightMenuText) {\n _defaultMenuItems.push({\n key: 'stop-spotlight',\n text: stopSpotlightMenuText,\n onClick: onStopSpotlight,\n iconProps: {\n iconName: 'StopSpotlightContextualMenuItem',\n styles: { root: { lineHeight: 0 } }\n },\n ariaLabel: stopSpotlightMenuText\n });\n }\n } else {\n const startSpotlightMenuText =\n spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0\n ? localeStrings.addSpotlightMenuLabel\n : localeStrings.startSpotlightMenuLabel;\n const maxSpotlightedParticipantsReached = maxParticipantsToSpotlight\n ? spotlightedParticipantUserIds\n ? spotlightedParticipantUserIds.length >= maxParticipantsToSpotlight\n : false\n : false;\n const onStartSpotlight = isMe\n ? onStartLocalSpotlight\n : onStartRemoteSpotlight\n ? () => {\n onStartRemoteSpotlight([participantId]);\n }\n : undefined;\n if (onStartSpotlight && startSpotlightMenuText) {\n _defaultMenuItems.push({\n key: 'start-spotlight',\n text: startSpotlightMenuText,\n onClick: onStartSpotlight,\n iconProps: {\n iconName: 'StartSpotlightContextualMenuItem',\n styles: { root: { lineHeight: 0 } }\n },\n ariaLabel: startSpotlightMenuText,\n disabled: maxSpotlightedParticipantsReached,\n title: maxSpotlightedParticipantsReached ? localeStrings.spotlightLimitReachedMenuTitle : undefined\n });\n }\n }\n return onFetchParticipantMenuItems\n ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)\n : _defaultMenuItems;\n },\n [\n spotlightedParticipantUserIds,\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n onFetchParticipantMenuItems,\n localeStrings.stopSpotlightMenuLabel,\n localeStrings.stopSpotlightOnSelfMenuLabel,\n localeStrings.addSpotlightMenuLabel,\n localeStrings.startSpotlightMenuLabel,\n localeStrings.spotlightLimitReachedMenuTitle,\n maxParticipantsToSpotlight\n ]\n );\n\n let _onFetchParticipantMenuItems = onFetchParticipantMenuItems;\n /* @conditional-compile-remove(spotlight) */\n _onFetchParticipantMenuItems = onFetchParticipantMenuItemsForCallComposite;\n\n const onRenderContent = useCallback((): JSX.Element => {\n return (\n <PeoplePaneContent\n inviteLink={inviteLink}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={_onFetchParticipantMenuItems}\n setDrawerMenuItems={setDrawerMenuItems}\n mobileView={mobileView}\n /* @conditional-compile-remove(spotlight) */\n participantListHeadingMoreButtonProps={sidePaneHeaderMenuProps}\n />\n );\n }, [\n inviteLink,\n mobileView,\n onFetchAvatarPersonaData,\n _onFetchParticipantMenuItems,\n setDrawerMenuItems,\n /* @conditional-compile-remove(spotlight) */ sidePaneHeaderMenuProps\n ]);\n\n const sidePaneRenderer: SidePaneRenderer = useMemo(\n () => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: PEOPLE_SIDE_PANE_ID\n }),\n [onRenderContent, onRenderHeader]\n );\n\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n }, [sidePaneRenderer, updateSidePaneRenderer]);\n\n const isOpen = useIsParticularSidePaneOpen(PEOPLE_SIDE_PANE_ID);\n\n // Update pane renderer if it is open and the openPane dep changes\n useEffect(() => {\n if (isOpen) {\n openPane();\n }\n }, [isOpen, openPane]);\n\n return { openPeoplePane: openPane, closePeoplePane: closePane, isPeoplePaneOpen: isOpen };\n};\n"]}
1
+ {"version":3,"file":"usePeoplePane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { RefObject, useCallback, useEffect, useMemo } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\nimport { PeoplePaneContent } from '../../../common/PeoplePaneContent';\nimport { useLocale } from '../../../localization';\nimport { ParticipantMenuItemsCallback, _DrawerMenuItemProps } from '@internal/react-components';\nimport { AvatarPersonaDataCallback } from '../../../common/AvatarPersona';\nimport { IButton } from '@fluentui/react';\n/* @conditional-compile-remove(spotlight) */\nimport { IContextualMenuItem, IContextualMenuProps } from '@fluentui/react';\n\nconst PEOPLE_SIDE_PANE_ID = 'people';\n\n/** @private */\nexport const usePeoplePane = (props: {\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n setDrawerMenuItems: (items: _DrawerMenuItemProps[]) => void;\n inviteLink?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n mobileView?: boolean;\n peopleButtonRef?: RefObject<IButton>;\n setParticipantActioned?: (userId: string) => void;\n /* @conditional-compile-remove(spotlight) */\n spotlightedParticipantUserIds?: string[];\n /* @conditional-compile-remove(spotlight) */\n onStartLocalSpotlight?: () => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n onStopLocalSpotlight?: () => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n onStartRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n onStopRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n onStopAllSpotlight?: () => Promise<void>;\n /* @conditional-compile-remove(spotlight) */\n maxParticipantsToSpotlight?: number;\n}): {\n openPeoplePane: () => void;\n closePeoplePane: () => void;\n isPeoplePaneOpen: boolean;\n} => {\n const {\n updateSidePaneRenderer,\n inviteLink,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n setDrawerMenuItems,\n mobileView,\n peopleButtonRef,\n setParticipantActioned,\n /* @conditional-compile-remove(spotlight) */\n spotlightedParticipantUserIds,\n /* @conditional-compile-remove(spotlight) */\n onStartLocalSpotlight,\n /* @conditional-compile-remove(spotlight) */\n onStopLocalSpotlight,\n /* @conditional-compile-remove(spotlight) */\n onStartRemoteSpotlight,\n /* @conditional-compile-remove(spotlight) */\n onStopRemoteSpotlight,\n /* @conditional-compile-remove(spotlight) */\n onStopAllSpotlight,\n /* @conditional-compile-remove(spotlight) */\n maxParticipantsToSpotlight\n } = props;\n\n const closePane = useCallback(() => {\n updateSidePaneRenderer(undefined);\n peopleButtonRef?.current?.focus();\n }, [peopleButtonRef, updateSidePaneRenderer]);\n\n const localeStrings = useLocale().strings.call;\n\n /* @conditional-compile-remove(spotlight) */\n const sidePaneHeaderMenuProps: IContextualMenuProps = useMemo(() => {\n const menuItems: IContextualMenuItem[] = [];\n if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {\n menuItems.push({\n key: 'stopAllSpotlightKey',\n text: localeStrings.stopAllSpotlightMenuLabel,\n iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },\n onClick: () => {\n onStopAllSpotlight();\n },\n ariaLabel: localeStrings.stopAllSpotlightMenuLabel\n });\n }\n return {\n items: menuItems\n };\n }, [onStopAllSpotlight, spotlightedParticipantUserIds, localeStrings.stopAllSpotlightMenuLabel]);\n\n const onRenderHeader = useCallback(\n () => (\n <SidePaneHeader\n onClose={closePane}\n headingText={localeStrings.peoplePaneTitle}\n dismissSidePaneButtonAriaLabel={localeStrings.dismissSidePaneButtonLabel}\n mobileView={mobileView ?? false}\n />\n ),\n [mobileView, closePane, localeStrings]\n );\n\n /* @conditional-compile-remove(spotlight) */\n const onFetchParticipantMenuItemsForCallComposite = useCallback(\n (participantId: string, myUserId?: string, defaultMenuItems?: IContextualMenuItem[]): IContextualMenuItem[] => {\n const _defaultMenuItems: IContextualMenuItem[] = defaultMenuItems ?? [];\n const isSpotlighted = spotlightedParticipantUserIds?.find((p) => p === participantId);\n const isMe = myUserId === participantId;\n if (isSpotlighted) {\n const stopSpotlightMenuText = isMe\n ? localeStrings.stopSpotlightOnSelfMenuLabel\n : localeStrings.stopSpotlightMenuLabel;\n const onStopSpotlight = isMe\n ? onStopLocalSpotlight\n : onStopRemoteSpotlight\n ? () => {\n onStopRemoteSpotlight([participantId]);\n }\n : undefined;\n if (onStopSpotlight && stopSpotlightMenuText) {\n _defaultMenuItems.push({\n key: 'stop-spotlight',\n text: stopSpotlightMenuText,\n onClick: onStopSpotlight,\n iconProps: {\n iconName: 'StopSpotlightContextualMenuItem',\n styles: { root: { lineHeight: 0 } }\n },\n ariaLabel: stopSpotlightMenuText\n });\n }\n } else {\n const startSpotlightMenuText =\n spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0\n ? localeStrings.addSpotlightMenuLabel\n : localeStrings.startSpotlightMenuLabel;\n const maxSpotlightedParticipantsReached = maxParticipantsToSpotlight\n ? spotlightedParticipantUserIds\n ? spotlightedParticipantUserIds.length >= maxParticipantsToSpotlight\n : false\n : false;\n const onStartSpotlight = isMe\n ? onStartLocalSpotlight\n : onStartRemoteSpotlight\n ? () => {\n onStartRemoteSpotlight([participantId]);\n }\n : undefined;\n if (onStartSpotlight && startSpotlightMenuText) {\n _defaultMenuItems.push({\n key: 'start-spotlight',\n text: startSpotlightMenuText,\n onClick: onStartSpotlight,\n iconProps: {\n iconName: 'StartSpotlightContextualMenuItem',\n styles: { root: { lineHeight: 0 } }\n },\n ariaLabel: startSpotlightMenuText,\n disabled: maxSpotlightedParticipantsReached,\n title: maxSpotlightedParticipantsReached ? localeStrings.spotlightLimitReachedMenuTitle : undefined\n });\n }\n }\n return onFetchParticipantMenuItems\n ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)\n : _defaultMenuItems;\n },\n [\n spotlightedParticipantUserIds,\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n onFetchParticipantMenuItems,\n localeStrings.stopSpotlightMenuLabel,\n localeStrings.stopSpotlightOnSelfMenuLabel,\n localeStrings.addSpotlightMenuLabel,\n localeStrings.startSpotlightMenuLabel,\n localeStrings.spotlightLimitReachedMenuTitle,\n maxParticipantsToSpotlight\n ]\n );\n\n let _onFetchParticipantMenuItems = onFetchParticipantMenuItems;\n /* @conditional-compile-remove(spotlight) */\n _onFetchParticipantMenuItems = onFetchParticipantMenuItemsForCallComposite;\n\n const onRenderContent = useCallback((): JSX.Element => {\n return (\n <PeoplePaneContent\n inviteLink={inviteLink}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={_onFetchParticipantMenuItems}\n setDrawerMenuItems={setDrawerMenuItems}\n mobileView={mobileView}\n setParticipantActioned={setParticipantActioned}\n /* @conditional-compile-remove(spotlight) */\n participantListHeadingMoreButtonProps={sidePaneHeaderMenuProps}\n />\n );\n }, [\n inviteLink,\n mobileView,\n onFetchAvatarPersonaData,\n _onFetchParticipantMenuItems,\n setDrawerMenuItems,\n setParticipantActioned,\n /* @conditional-compile-remove(spotlight) */ sidePaneHeaderMenuProps\n ]);\n\n const sidePaneRenderer: SidePaneRenderer = useMemo(\n () => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: PEOPLE_SIDE_PANE_ID\n }),\n [onRenderContent, onRenderHeader]\n );\n\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n }, [sidePaneRenderer, updateSidePaneRenderer]);\n\n const isOpen = useIsParticularSidePaneOpen(PEOPLE_SIDE_PANE_ID);\n\n // Update pane renderer if it is open and the openPane dep changes\n useEffect(() => {\n if (isOpen) {\n openPane();\n }\n }, [isOpen, openPane]);\n\n return { openPeoplePane: openPane, closePeoplePane: closePane, isPeoplePaneOpen: isOpen };\n};\n"]}
@@ -10,6 +10,7 @@ export declare const PeoplePaneContent: (props: {
10
10
  onFetchAvatarPersonaData?: AvatarPersonaDataCallback | undefined;
11
11
  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback | undefined;
12
12
  setDrawerMenuItems: (drawerMenuItems: _DrawerMenuItemProps[]) => void;
13
+ setParticipantActioned?: ((userId: string) => void) | undefined;
13
14
  mobileView?: boolean | undefined;
14
15
  participantListHeadingMoreButtonProps?: IContextualMenuProps | undefined;
15
16
  }) => JSX.Element;
@@ -24,7 +24,7 @@ import { useLocale } from '../localization';
24
24
  * @private
25
25
  */
26
26
  export const PeoplePaneContent = (props) => {
27
- const { inviteLink, onFetchParticipantMenuItems, setDrawerMenuItems,
27
+ const { inviteLink, onFetchParticipantMenuItems, setDrawerMenuItems, setParticipantActioned,
28
28
  /* @conditional-compile-remove(spotlight) */ participantListHeadingMoreButtonProps } = props;
29
29
  const adapter = useAdapter();
30
30
  const localeStrings = useLocale();
@@ -49,6 +49,7 @@ export const PeoplePaneContent = (props) => {
49
49
  const setDrawerMenuItemsForParticipant = useMemo(() => {
50
50
  return (participant) => {
51
51
  if (participant) {
52
+ setParticipantActioned === null || setParticipantActioned === void 0 ? void 0 : setParticipantActioned(participant.userId);
52
53
  let contextualMenuItems = createDefaultContextualMenuItems(participant, strings, removeButtonAllowed && participant.isRemovable ? participantListDefaultProps.onRemoveParticipant : undefined, participantListDefaultProps.myUserId);
53
54
  if (onFetchParticipantMenuItems) {
54
55
  contextualMenuItems = onFetchParticipantMenuItems(participant.userId, participantListDefaultProps.myUserId, contextualMenuItems);
@@ -63,7 +64,8 @@ export const PeoplePaneContent = (props) => {
63
64
  participantListDefaultProps.myUserId,
64
65
  removeButtonAllowed,
65
66
  onFetchParticipantMenuItems,
66
- setDrawerMenuItems
67
+ setDrawerMenuItems,
68
+ setParticipantActioned
67
69
  ]);
68
70
  /* @conditional-compile-remove(spotlight) */
69
71
  const setDrawerMenuItemsForParticipantListHeadingMoreButton = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"PeoplePaneContent.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/PeoplePaneContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IContextualMenuItem, Stack } from '@fluentui/react';\n/* @conditional-compile-remove(spotlight) */\nimport { IContextualMenuProps } from '@fluentui/react';\nimport {\n ParticipantList,\n ParticipantListParticipant,\n ParticipantListProps,\n ParticipantMenuItemsCallback,\n _DrawerMenuItemProps\n} from '@internal/react-components';\nimport React, { useCallback, useMemo } from 'react';\nimport { CallWithChatCompositeStrings } from '../CallWithChatComposite';\nimport { usePropsFor } from '../CallComposite/hooks/usePropsFor';\nimport { AvatarPersonaDataCallback } from '../common/AvatarPersona';\nimport { ParticipantListWithHeading } from '../common/ParticipantContainer';\nimport { peoplePaneContainerTokens } from '../common/styles/ParticipantContainer.styles';\nimport { participantListContainerStyles, peoplePaneContainerStyle } from './styles/PeoplePaneContent.styles';\nimport { convertContextualMenuItemToDrawerMenuItem } from './ConvertContextualMenuItemToDrawerMenuItem';\nimport { CommonCallAdapter } from '../CallComposite';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { CallCompositeStrings } from '../CallComposite';\nimport { AddPeopleButton } from './AddPeopleButton';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { PhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\nimport { useLocale } from '../localization';\n\n/**\n * @private\n */\nexport const PeoplePaneContent = (props: {\n inviteLink?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n setDrawerMenuItems: (drawerMenuItems: _DrawerMenuItemProps[]) => void;\n mobileView?: boolean;\n /* @conditional-compile-remove(spotlight) */\n participantListHeadingMoreButtonProps?: IContextualMenuProps;\n}): JSX.Element => {\n const {\n inviteLink,\n onFetchParticipantMenuItems,\n setDrawerMenuItems,\n /* @conditional-compile-remove(spotlight) */ participantListHeadingMoreButtonProps\n } = props;\n const adapter = useAdapter();\n const localeStrings = useLocale();\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const getStrings = () => {\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n return localeStrings.strings.call;\n\n return localeStrings.strings.callWithChat;\n };\n const strings = getStrings();\n\n const removeParticipantFromCall = useCallback(\n async (participantId: string): Promise<void> => {\n await adapter.removeParticipant(participantId);\n },\n [adapter]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */\n const addParticipantToCall = useCallback(\n async (participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions): Promise<void> => {\n await adapter.addParticipant(participant, options);\n },\n [adapter]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */\n const alternateCallerId = adapter.getState().alternateCallerId;\n\n const participantListDefaultProps = usePropsFor(ParticipantList);\n const removeButtonAllowed = canRemoveParticipants(adapter);\n const setDrawerMenuItemsForParticipant: (participant?: ParticipantListParticipant) => void = useMemo(() => {\n return (participant?: ParticipantListParticipant) => {\n if (participant) {\n let contextualMenuItems: IContextualMenuItem[] = createDefaultContextualMenuItems(\n participant,\n strings,\n removeButtonAllowed && participant.isRemovable ? participantListDefaultProps.onRemoveParticipant : undefined,\n participantListDefaultProps.myUserId\n );\n if (onFetchParticipantMenuItems) {\n contextualMenuItems = onFetchParticipantMenuItems(\n participant.userId,\n participantListDefaultProps.myUserId,\n contextualMenuItems\n );\n }\n const drawerMenuItems = contextualMenuItems.map((contextualMenu: IContextualMenuItem) =>\n convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setDrawerMenuItems([]))\n );\n setDrawerMenuItems(drawerMenuItems);\n }\n };\n }, [\n strings,\n participantListDefaultProps.onRemoveParticipant,\n participantListDefaultProps.myUserId,\n removeButtonAllowed,\n onFetchParticipantMenuItems,\n setDrawerMenuItems\n ]);\n\n /* @conditional-compile-remove(spotlight) */\n const setDrawerMenuItemsForParticipantListHeadingMoreButton = useMemo(() => {\n const drawerMenuItems = participantListHeadingMoreButtonProps?.items.map((contextualMenu: IContextualMenuItem) =>\n convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setDrawerMenuItems([]))\n );\n return drawerMenuItems && drawerMenuItems.length > 0 ? () => setDrawerMenuItems(drawerMenuItems) : undefined;\n }, [participantListHeadingMoreButtonProps?.items, setDrawerMenuItems]);\n\n const participantListProps: ParticipantListProps = useMemo(() => {\n const onRemoveAParticipant = async (participantId: string): Promise<void> =>\n removeParticipantFromCall(participantId);\n return {\n ...participantListDefaultProps,\n // Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked\n onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant,\n // We want the drawer menu items to appear when participants in ParticipantList are clicked\n onParticipantClick: props.mobileView ? setDrawerMenuItemsForParticipant : undefined\n };\n }, [participantListDefaultProps, props.mobileView, setDrawerMenuItemsForParticipant, removeParticipantFromCall]);\n\n const participantList = (\n <ParticipantListWithHeading\n isMobile={props.mobileView}\n participantListProps={participantListProps}\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={props.mobileView ? undefined : onFetchParticipantMenuItems}\n title={strings.peoplePaneSubTitle}\n /* @conditional-compile-remove(spotlight) */\n headingMoreButtonAriaLabel={localeStrings.strings.call.peoplePaneMoreButtonAriaLabel}\n /* @conditional-compile-remove(spotlight) */\n onClickHeadingMoreButton={props.mobileView ? setDrawerMenuItemsForParticipantListHeadingMoreButton : undefined}\n /* @conditional-compile-remove(spotlight) */\n headingMoreButtonMenuProps={props.participantListHeadingMoreButtonProps}\n />\n );\n\n if (props.mobileView) {\n return (\n <Stack\n verticalFill\n styles={peoplePaneContainerStyle}\n tokens={peoplePaneContainerTokens}\n data-ui-id=\"people-pane-content\"\n >\n <Stack.Item grow styles={participantListContainerStyles}>\n {participantList}\n </Stack.Item>\n\n <AddPeopleButton\n inviteLink={inviteLink}\n mobileView={props.mobileView}\n participantList={participantList}\n strings={strings}\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant={addParticipantToCall}\n /* @conditional-compile-remove(PSTN-calls) */\n alternateCallerId={alternateCallerId}\n />\n </Stack>\n );\n }\n\n return (\n <AddPeopleButton\n inviteLink={inviteLink}\n mobileView={props.mobileView}\n participantList={participantList}\n strings={strings}\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant={addParticipantToCall}\n /* @conditional-compile-remove(PSTN-calls) */\n alternateCallerId={alternateCallerId}\n />\n );\n};\n\n/**\n * Create default contextual menu items for particant\n * @param participant - participant to create contextual menu items for\n * @param strings - localized strings for menu item text\n * @param onRemoveParticipant - callback to remove participant\n * @param localParticipantUserId - Local participant user id\n * @returns - IContextualMenuItem[]\n */\nconst createDefaultContextualMenuItems = (\n participant: ParticipantListParticipant,\n strings:\n | CallWithChatCompositeStrings\n | /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */ CallCompositeStrings,\n onRemoveParticipant?: (userId: string) => Promise<void>,\n localParticipantUserId?: string\n): IContextualMenuItem[] => {\n const menuItems: IContextualMenuItem[] = [];\n if (onRemoveParticipant && participant?.userId !== localParticipantUserId) {\n menuItems.push({\n key: 'remove',\n text: strings.removeMenuLabel,\n onClick: () => {\n if (participant?.userId) {\n onRemoveParticipant?.(participant?.userId);\n }\n },\n iconProps: {\n iconName: 'UserRemove'\n },\n 'data-ui-id': 'participant-list-remove-participant-button'\n });\n }\n return menuItems;\n};\n\nconst canRemoveParticipants = (adapter: CommonCallAdapter): boolean => {\n // TODO: We should be using the removeParticipant capability here but there is an SDK bug for Rooms where a\n // Presenter's removeParticipant capability is {isPresent: false, reason: 'CapabilityNotApplicableForTheCallType'}.\n // But a Presenter in Rooms should be able to remove participants according to the following documentation\n // https://learn.microsoft.com/en-us/azure/communication-services/concepts/rooms/room-concept#predefined-participant-roles-and-permissions\n const role = adapter.getState().call?.role;\n const canRemove = role === 'Presenter' || role === 'Unknown' || role === undefined;\n return canRemove;\n};\n"]}
1
+ {"version":3,"file":"PeoplePaneContent.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/PeoplePaneContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IContextualMenuItem, Stack } from '@fluentui/react';\n/* @conditional-compile-remove(spotlight) */\nimport { IContextualMenuProps } from '@fluentui/react';\nimport {\n ParticipantList,\n ParticipantListParticipant,\n ParticipantListProps,\n ParticipantMenuItemsCallback,\n _DrawerMenuItemProps\n} from '@internal/react-components';\nimport React, { useCallback, useMemo } from 'react';\nimport { CallWithChatCompositeStrings } from '../CallWithChatComposite';\nimport { usePropsFor } from '../CallComposite/hooks/usePropsFor';\nimport { AvatarPersonaDataCallback } from '../common/AvatarPersona';\nimport { ParticipantListWithHeading } from '../common/ParticipantContainer';\nimport { peoplePaneContainerTokens } from '../common/styles/ParticipantContainer.styles';\nimport { participantListContainerStyles, peoplePaneContainerStyle } from './styles/PeoplePaneContent.styles';\nimport { convertContextualMenuItemToDrawerMenuItem } from './ConvertContextualMenuItemToDrawerMenuItem';\nimport { CommonCallAdapter } from '../CallComposite';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { CallCompositeStrings } from '../CallComposite';\nimport { AddPeopleButton } from './AddPeopleButton';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { PhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { AddPhoneNumberOptions } from '@azure/communication-calling';\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\nimport { useLocale } from '../localization';\n\n/**\n * @private\n */\nexport const PeoplePaneContent = (props: {\n inviteLink?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n setDrawerMenuItems: (drawerMenuItems: _DrawerMenuItemProps[]) => void;\n setParticipantActioned?: (userId: string) => void;\n mobileView?: boolean;\n /* @conditional-compile-remove(spotlight) */\n participantListHeadingMoreButtonProps?: IContextualMenuProps;\n}): JSX.Element => {\n const {\n inviteLink,\n onFetchParticipantMenuItems,\n setDrawerMenuItems,\n setParticipantActioned,\n /* @conditional-compile-remove(spotlight) */ participantListHeadingMoreButtonProps\n } = props;\n const adapter = useAdapter();\n const localeStrings = useLocale();\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n const getStrings = () => {\n /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n return localeStrings.strings.call;\n\n return localeStrings.strings.callWithChat;\n };\n const strings = getStrings();\n\n const removeParticipantFromCall = useCallback(\n async (participantId: string): Promise<void> => {\n await adapter.removeParticipant(participantId);\n },\n [adapter]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */\n const addParticipantToCall = useCallback(\n async (participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions): Promise<void> => {\n await adapter.addParticipant(participant, options);\n },\n [adapter]\n );\n\n /* @conditional-compile-remove(PSTN-calls) */\n const alternateCallerId = adapter.getState().alternateCallerId;\n\n const participantListDefaultProps = usePropsFor(ParticipantList);\n const removeButtonAllowed = canRemoveParticipants(adapter);\n const setDrawerMenuItemsForParticipant: (participant?: ParticipantListParticipant) => void = useMemo(() => {\n return (participant?: ParticipantListParticipant) => {\n if (participant) {\n setParticipantActioned?.(participant.userId);\n let contextualMenuItems: IContextualMenuItem[] = createDefaultContextualMenuItems(\n participant,\n strings,\n removeButtonAllowed && participant.isRemovable ? participantListDefaultProps.onRemoveParticipant : undefined,\n participantListDefaultProps.myUserId\n );\n if (onFetchParticipantMenuItems) {\n contextualMenuItems = onFetchParticipantMenuItems(\n participant.userId,\n participantListDefaultProps.myUserId,\n contextualMenuItems\n );\n }\n const drawerMenuItems = contextualMenuItems.map((contextualMenu: IContextualMenuItem) =>\n convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setDrawerMenuItems([]))\n );\n setDrawerMenuItems(drawerMenuItems);\n }\n };\n }, [\n strings,\n participantListDefaultProps.onRemoveParticipant,\n participantListDefaultProps.myUserId,\n removeButtonAllowed,\n onFetchParticipantMenuItems,\n setDrawerMenuItems,\n setParticipantActioned\n ]);\n\n /* @conditional-compile-remove(spotlight) */\n const setDrawerMenuItemsForParticipantListHeadingMoreButton = useMemo(() => {\n const drawerMenuItems = participantListHeadingMoreButtonProps?.items.map((contextualMenu: IContextualMenuItem) =>\n convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setDrawerMenuItems([]))\n );\n return drawerMenuItems && drawerMenuItems.length > 0 ? () => setDrawerMenuItems(drawerMenuItems) : undefined;\n }, [participantListHeadingMoreButtonProps?.items, setDrawerMenuItems]);\n\n const participantListProps: ParticipantListProps = useMemo(() => {\n const onRemoveAParticipant = async (participantId: string): Promise<void> =>\n removeParticipantFromCall(participantId);\n return {\n ...participantListDefaultProps,\n // Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked\n onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant,\n // We want the drawer menu items to appear when participants in ParticipantList are clicked\n onParticipantClick: props.mobileView ? setDrawerMenuItemsForParticipant : undefined\n };\n }, [participantListDefaultProps, props.mobileView, setDrawerMenuItemsForParticipant, removeParticipantFromCall]);\n\n const participantList = (\n <ParticipantListWithHeading\n isMobile={props.mobileView}\n participantListProps={participantListProps}\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={props.mobileView ? undefined : onFetchParticipantMenuItems}\n title={strings.peoplePaneSubTitle}\n /* @conditional-compile-remove(spotlight) */\n headingMoreButtonAriaLabel={localeStrings.strings.call.peoplePaneMoreButtonAriaLabel}\n /* @conditional-compile-remove(spotlight) */\n onClickHeadingMoreButton={props.mobileView ? setDrawerMenuItemsForParticipantListHeadingMoreButton : undefined}\n /* @conditional-compile-remove(spotlight) */\n headingMoreButtonMenuProps={props.participantListHeadingMoreButtonProps}\n />\n );\n\n if (props.mobileView) {\n return (\n <Stack\n verticalFill\n styles={peoplePaneContainerStyle}\n tokens={peoplePaneContainerTokens}\n data-ui-id=\"people-pane-content\"\n >\n <Stack.Item grow styles={participantListContainerStyles}>\n {participantList}\n </Stack.Item>\n\n <AddPeopleButton\n inviteLink={inviteLink}\n mobileView={props.mobileView}\n participantList={participantList}\n strings={strings}\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant={addParticipantToCall}\n /* @conditional-compile-remove(PSTN-calls) */\n alternateCallerId={alternateCallerId}\n />\n </Stack>\n );\n }\n\n return (\n <AddPeopleButton\n inviteLink={inviteLink}\n mobileView={props.mobileView}\n participantList={participantList}\n strings={strings}\n /* @conditional-compile-remove(PSTN-calls) */\n onAddParticipant={addParticipantToCall}\n /* @conditional-compile-remove(PSTN-calls) */\n alternateCallerId={alternateCallerId}\n />\n );\n};\n\n/**\n * Create default contextual menu items for particant\n * @param participant - participant to create contextual menu items for\n * @param strings - localized strings for menu item text\n * @param onRemoveParticipant - callback to remove participant\n * @param localParticipantUserId - Local participant user id\n * @returns - IContextualMenuItem[]\n */\nconst createDefaultContextualMenuItems = (\n participant: ParticipantListParticipant,\n strings:\n | CallWithChatCompositeStrings\n | /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */ CallCompositeStrings,\n onRemoveParticipant?: (userId: string) => Promise<void>,\n localParticipantUserId?: string\n): IContextualMenuItem[] => {\n const menuItems: IContextualMenuItem[] = [];\n if (onRemoveParticipant && participant?.userId !== localParticipantUserId) {\n menuItems.push({\n key: 'remove',\n text: strings.removeMenuLabel,\n onClick: () => {\n if (participant?.userId) {\n onRemoveParticipant?.(participant?.userId);\n }\n },\n iconProps: {\n iconName: 'UserRemove'\n },\n 'data-ui-id': 'participant-list-remove-participant-button'\n });\n }\n return menuItems;\n};\n\nconst canRemoveParticipants = (adapter: CommonCallAdapter): boolean => {\n // TODO: We should be using the removeParticipant capability here but there is an SDK bug for Rooms where a\n // Presenter's removeParticipant capability is {isPresent: false, reason: 'CapabilityNotApplicableForTheCallType'}.\n // But a Presenter in Rooms should be able to remove participants according to the following documentation\n // https://learn.microsoft.com/en-us/azure/communication-services/concepts/rooms/room-concept#predefined-participant-roles-and-permissions\n const role = adapter.getState().call?.role;\n const canRemove = role === 'Presenter' || role === 'Unknown' || role === undefined;\n return canRemove;\n};\n"]}