@azure/communication-react 1.8.1-alpha-202309230012 → 1.8.1-alpha-202309270012
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/communication-react.d.ts +4 -0
- package/dist/dist-cjs/communication-react/index.js +3077 -2910
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +1 -1
- package/dist/dist-esm/communication-react/src/index.js +1 -1
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +3 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +3 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +7 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +11 -9
- package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +11 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/index.d.ts +20 -0
- package/dist/dist-esm/react-components/src/index.js +20 -0
- package/dist/dist-esm/react-components/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/index.d.ts +0 -120
- package/dist/dist-esm/react-components/src/localization/locales/index.js +0 -147
- package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/utils.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/utils.js +15 -0
- package/dist/dist-esm/react-components/src/localization/locales/utils.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.d.ts +8 -0
- package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.js +11 -0
- package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +5 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +32 -32
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.d.ts +10 -0
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +51 -0
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.d.ts +3 -0
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/index.d.ts +20 -0
- package/dist/dist-esm/react-composites/src/composites/index.js +20 -0
- package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/index.d.ts +0 -120
- package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js +1 -208
- package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/utils.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/utils.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/utils.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/CompositeLocale.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/CompositeLocale.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/CompositeLocale.js +15 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/CompositeLocale.js.map +1 -0
- package/package.json +8 -8
@@ -0,0 +1,11 @@
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
2
|
+
// Licensed under the MIT License.
|
3
|
+
import { createComponentStrings } from '../utils';
|
4
|
+
import zh_TW from './strings.json';
|
5
|
+
/**
|
6
|
+
* Locale for Chinese (Taiwan).
|
7
|
+
*
|
8
|
+
* @public
|
9
|
+
*/
|
10
|
+
export const COMPONENT_LOCALE_ZH_TW = { strings: createComponentStrings(zh_TW) };
|
11
|
+
//# sourceMappingURL=ComponentLocale.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ComponentLocale.js","sourceRoot":"","sources":["../../../../../../../../react-components/src/localization/locales/zh-TW/ComponentLocale.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,KAAK,MAAM,gBAAgB,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAoB,EAAE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createComponentStrings } from '../utils';\nimport type { ComponentLocale } from '../..';\nimport zh_TW from './strings.json';\n\n/**\n * Locale for Chinese (Taiwan).\n *\n * @public\n */\nexport const COMPONENT_LOCALE_ZH_TW: ComponentLocale = { strings: createComponentStrings(zh_TW) };\n"]}
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js
CHANGED
@@ -215,7 +215,11 @@ export const CallArrangement = (props) => {
|
|
215
215
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
216
216
|
disableButtonsForHoldScreen: isInLocalHold,
|
217
217
|
/* @conditional-compile-remove(close-captions) */
|
218
|
-
isCaptionsSupported: isTeamsCall && hasJoinedCall
|
218
|
+
isCaptionsSupported: isTeamsCall && hasJoinedCall,
|
219
|
+
/* @conditional-compile-remove(gallery-layouts) */
|
220
|
+
onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange,
|
221
|
+
/* @conditional-compile-remove(gallery-layouts) */
|
222
|
+
userSetGalleryLayout: props.userSetGalleryLayout }))),
|
219
223
|
/* @conditional-compile-remove(PSTN-calls) */
|
220
224
|
((_h = props.callControlProps) === null || _h === void 0 ? void 0 : _h.options) !== false && showDtmfDialpad && (React.createElement(Stack, { styles: drawerContainerStylesValue },
|
221
225
|
React.createElement(SendDtmfDialpad, { isMobile: props.mobileView, strings: dialpadStrings, showDialpad: showDtmfDialpad, onDismissDialpad: onDismissDtmfDialpad }))),
|
@@ -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';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React, { useMemo, useRef, useState } from 'react';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { useEffect } from 'react';\nimport { useCallback } from 'react';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\n/* @conditional-compile-remove(close-captions) */\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, CallControlOptions } from '../types/CallControlOptions';\nimport { PreparedMoreDrawer } from '../../common/Drawer/PreparedMoreDrawer';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { SendDtmfDialpad } from '../../common/SendDtmfDialpad';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { useCallWithChatCompositeStrings } from '../../CallWithChatComposite/hooks/useCallWithChatCompositeStrings';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { getPage } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(close-captions) */\nimport { getCallStatus, getIsTeamsCall, getCaptionsStatus } from '../selectors/baseSelectors';\nimport { drawerContainerStyles } from '../styles/CallComposite.styles';\nimport { SidePane } from './SidePane/SidePane';\nimport { usePeoplePane } from './SidePane/usePeoplePane';\n/* @conditional-compile-remove(video-background-effects) */\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/* @conditional-compile-remove(video-background-effects) */\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/* @conditional-compile-remove(video-background-effects) */\nimport { localVideoSelector } from '../../CallComposite/selectors/localVideoStreamSelector';\n/* @conditional-compile-remove(capabilities) */\nimport {\n CapabilitiesChangedNotificationBar,\n CapabilitiesChangeNotificationBarProps\n} from './CapabilitiesChangedNotificationBar';\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 /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n latestErrors: ActiveErrorMessage[];\n onDismissError: (error: ActiveErrorMessage) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'HorizontalTop') => void;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout?: VideoGalleryLayout;\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\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 /* @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]);\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 /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\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 /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n props.onFetchAvatarPersonaData,\n props.mobileView,\n peopleButtonRef\n ]\n );\n const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(peoplePaneProps);\n const togglePeoplePane = useCallback(() => {\n if (isPeoplePaneOpen) {\n closePeoplePane();\n } else {\n openPeoplePane();\n }\n }, [closePeoplePane, isPeoplePaneOpen, openPeoplePane]);\n\n const isSidePaneOpen = useIsSidePaneOpen();\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 /* @conditional-compile-remove(PSTN-calls) */\n const callWithChatStrings = useCallWithChatCompositeStrings();\n\n /* @conditional-compile-remove(PSTN-calls) */\n const dialpadStrings = useMemo(\n () => ({\n dialpadModalAriaLabel: callWithChatStrings.dialpadModalAriaLabel,\n dialpadCloseModalButtonAriaLabel: callWithChatStrings.dialpadCloseModalButtonAriaLabel,\n placeholderText: callWithChatStrings.dtmfDialpadPlaceholderText\n }),\n [callWithChatStrings]\n );\n\n /* @conditional-compile-remove(video-background-effects) */\n const onResolveVideoEffectDependency = adapter.getState().onResolveVideoEffectDependency;\n\n /* @conditional-compile-remove(video-background-effects) */\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 /* @conditional-compile-remove(PSTN-calls) */\n const alternateCallerId = useAdapter().getState().alternateCallerId;\n\n /* @conditional-compile-remove(PSTN-calls) */\n const [showDtmfDialpad, setShowDtmfDialpad] = useState(false);\n\n /* @conditional-compile-remove(PSTN-calls) */\n const onDismissDtmfDialpad = (): void => {\n setShowDtmfDialpad(false);\n };\n\n /* @conditional-compile-remove(PSTN-calls) */\n const onClickShowDialpad = (): void => {\n setShowDtmfDialpad(true);\n };\n\n const drawerContainerStylesValue = useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);\n\n /* @conditional-compile-remove(rooms) */\n const role = adapter.getState().call?.role;\n\n let canUnmute = true;\n /* @conditional-compile-remove(rooms) */\n canUnmute = role !== 'Consumer' ? true : false;\n\n let filteredLatestErrors: ActiveErrorMessage[] = props.errorBarProps !== false ? props.latestErrors : [];\n\n /* @conditional-compile-remove(video-background-effects) */\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n /* @conditional-compile-remove(rooms) */\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 /* @conditional-compile-remove(video-background-effects) */\n const isVideoPaneOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n /* @conditional-compile-remove(video-background-effects) */\n if ((isVideoPaneOpen || !isCameraOn) && props.errorBarProps) {\n filteredLatestErrors = filteredLatestErrors.filter((e) => e.type !== 'unableToStartVideoEffect');\n }\n\n /* @conditional-compile-remove(close-captions) */\n const isTeamsCall = useSelector(getIsTeamsCall);\n /* @conditional-compile-remove(close-captions) */\n const hasJoinedCall = useSelector(getCallStatus) === 'Connected';\n /* @conditional-compile-remove(close-captions) */\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 /* @conditional-compile-remove(capabilities) */\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 /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported={isTeamsCall && hasJoinedCall}\n /* @conditional-compile-remove(close-captions) */\n isCaptionsOn={isCaptionsOn}\n /* @conditional-compile-remove(video-background-effects) */\n onClickVideoEffects={onResolveVideoEffectDependency ? openVideoEffectsPane : undefined}\n /* @conditional-compile-remove(PSTN-calls) */\n onClickShowDialpad={alternateCallerId ? onClickShowDialpad : undefined}\n displayVertical={verticalControlBar}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetOverflowGalleryPositionChange={props.onUserSetOverflowGalleryPositionChange}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout={props.userSetGalleryLayout}\n peopleButtonRef={peopleButtonRef}\n cameraButtonRef={cameraButtonRef}\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) */\n onClickShowDialpad={alternateCallerId ? onClickShowDialpad : undefined}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported={isTeamsCall && hasJoinedCall}\n />\n </Stack>\n )}\n\n {\n /* @conditional-compile-remove(PSTN-calls) */\n props.callControlProps?.options !== false && showDtmfDialpad && (\n <Stack styles={drawerContainerStylesValue}>\n <SendDtmfDialpad\n isMobile={props.mobileView}\n strings={dialpadStrings}\n showDialpad={showDtmfDialpad}\n onDismissDialpad={onDismissDtmfDialpad}\n />\n </Stack>\n )\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 {\n /* @conditional-compile-remove(capabilities) */\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 }\n {canUnmute && !!props.mutedNotificationProps && (\n <MutedNotification {...props.mutedNotificationProps} />\n )}\n </Stack.Item>\n {props.onRenderGalleryContent && props.onRenderGalleryContent()}\n {\n /* @conditional-compile-remove(close-captions) */\n true &&\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (\n <CaptionsBanner isMobile={props.mobileView} />\n )\n }\n </Stack>\n </Stack.Item>\n </Stack.Item>\n <SidePane\n mobileView={props.mobileView}\n /* @conditional-compile-remove(video-background-effects) */\n maxWidth={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 minDragPosition={minMaxDragPosition.minDragPosition}\n maxDragPosition={minMaxDragPosition.maxDragPosition}\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 as _CallControlOptions)?.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\"../../../../../calling-component-bindings/src\"\"../../../../../react-components/src\""]}
|
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';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React, { useMemo, useRef, useState } from 'react';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { useEffect } from 'react';\nimport { useCallback } from 'react';\n/* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\n/* @conditional-compile-remove(close-captions) */\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, CallControlOptions } from '../types/CallControlOptions';\nimport { PreparedMoreDrawer } from '../../common/Drawer/PreparedMoreDrawer';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { SendDtmfDialpad } from '../../common/SendDtmfDialpad';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { useCallWithChatCompositeStrings } from '../../CallWithChatComposite/hooks/useCallWithChatCompositeStrings';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { getPage } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(close-captions) */\nimport { getCallStatus, getIsTeamsCall, getCaptionsStatus } from '../selectors/baseSelectors';\nimport { drawerContainerStyles } from '../styles/CallComposite.styles';\nimport { SidePane } from './SidePane/SidePane';\nimport { usePeoplePane } from './SidePane/usePeoplePane';\n/* @conditional-compile-remove(video-background-effects) */\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/* @conditional-compile-remove(video-background-effects) */\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/* @conditional-compile-remove(video-background-effects) */\nimport { localVideoSelector } from '../../CallComposite/selectors/localVideoStreamSelector';\n/* @conditional-compile-remove(capabilities) */\nimport {\n CapabilitiesChangedNotificationBar,\n CapabilitiesChangeNotificationBarProps\n} from './CapabilitiesChangedNotificationBar';\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 /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n latestErrors: ActiveErrorMessage[];\n onDismissError: (error: ActiveErrorMessage) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'HorizontalTop') => void;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout?: VideoGalleryLayout;\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\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 /* @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]);\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 /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\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 /* @conditional-compile-remove(one-to-n-calling) @conditional-compile-remove(PSTN-calls) */\n props.onFetchAvatarPersonaData,\n props.mobileView,\n peopleButtonRef\n ]\n );\n const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(peoplePaneProps);\n const togglePeoplePane = useCallback(() => {\n if (isPeoplePaneOpen) {\n closePeoplePane();\n } else {\n openPeoplePane();\n }\n }, [closePeoplePane, isPeoplePaneOpen, openPeoplePane]);\n\n const isSidePaneOpen = useIsSidePaneOpen();\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 /* @conditional-compile-remove(PSTN-calls) */\n const callWithChatStrings = useCallWithChatCompositeStrings();\n\n /* @conditional-compile-remove(PSTN-calls) */\n const dialpadStrings = useMemo(\n () => ({\n dialpadModalAriaLabel: callWithChatStrings.dialpadModalAriaLabel,\n dialpadCloseModalButtonAriaLabel: callWithChatStrings.dialpadCloseModalButtonAriaLabel,\n placeholderText: callWithChatStrings.dtmfDialpadPlaceholderText\n }),\n [callWithChatStrings]\n );\n\n /* @conditional-compile-remove(video-background-effects) */\n const onResolveVideoEffectDependency = adapter.getState().onResolveVideoEffectDependency;\n\n /* @conditional-compile-remove(video-background-effects) */\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 /* @conditional-compile-remove(PSTN-calls) */\n const alternateCallerId = useAdapter().getState().alternateCallerId;\n\n /* @conditional-compile-remove(PSTN-calls) */\n const [showDtmfDialpad, setShowDtmfDialpad] = useState(false);\n\n /* @conditional-compile-remove(PSTN-calls) */\n const onDismissDtmfDialpad = (): void => {\n setShowDtmfDialpad(false);\n };\n\n /* @conditional-compile-remove(PSTN-calls) */\n const onClickShowDialpad = (): void => {\n setShowDtmfDialpad(true);\n };\n\n const drawerContainerStylesValue = useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);\n\n /* @conditional-compile-remove(rooms) */\n const role = adapter.getState().call?.role;\n\n let canUnmute = true;\n /* @conditional-compile-remove(rooms) */\n canUnmute = role !== 'Consumer' ? true : false;\n\n let filteredLatestErrors: ActiveErrorMessage[] = props.errorBarProps !== false ? props.latestErrors : [];\n\n /* @conditional-compile-remove(video-background-effects) */\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n /* @conditional-compile-remove(rooms) */\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 /* @conditional-compile-remove(video-background-effects) */\n const isVideoPaneOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n /* @conditional-compile-remove(video-background-effects) */\n if ((isVideoPaneOpen || !isCameraOn) && props.errorBarProps) {\n filteredLatestErrors = filteredLatestErrors.filter((e) => e.type !== 'unableToStartVideoEffect');\n }\n\n /* @conditional-compile-remove(close-captions) */\n const isTeamsCall = useSelector(getIsTeamsCall);\n /* @conditional-compile-remove(close-captions) */\n const hasJoinedCall = useSelector(getCallStatus) === 'Connected';\n /* @conditional-compile-remove(close-captions) */\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 /* @conditional-compile-remove(capabilities) */\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 /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported={isTeamsCall && hasJoinedCall}\n /* @conditional-compile-remove(close-captions) */\n isCaptionsOn={isCaptionsOn}\n /* @conditional-compile-remove(video-background-effects) */\n onClickVideoEffects={onResolveVideoEffectDependency ? openVideoEffectsPane : undefined}\n /* @conditional-compile-remove(PSTN-calls) */\n onClickShowDialpad={alternateCallerId ? onClickShowDialpad : undefined}\n displayVertical={verticalControlBar}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetOverflowGalleryPositionChange={props.onUserSetOverflowGalleryPositionChange}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout={props.userSetGalleryLayout}\n peopleButtonRef={peopleButtonRef}\n cameraButtonRef={cameraButtonRef}\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) */\n onClickShowDialpad={alternateCallerId ? onClickShowDialpad : undefined}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported={isTeamsCall && hasJoinedCall}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout={props.userSetGalleryLayout}\n />\n </Stack>\n )}\n\n {\n /* @conditional-compile-remove(PSTN-calls) */\n props.callControlProps?.options !== false && showDtmfDialpad && (\n <Stack styles={drawerContainerStylesValue}>\n <SendDtmfDialpad\n isMobile={props.mobileView}\n strings={dialpadStrings}\n showDialpad={showDtmfDialpad}\n onDismissDialpad={onDismissDtmfDialpad}\n />\n </Stack>\n )\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 {\n /* @conditional-compile-remove(capabilities) */\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 }\n {canUnmute && !!props.mutedNotificationProps && (\n <MutedNotification {...props.mutedNotificationProps} />\n )}\n </Stack.Item>\n {props.onRenderGalleryContent && props.onRenderGalleryContent()}\n {\n /* @conditional-compile-remove(close-captions) */\n true &&\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (\n <CaptionsBanner isMobile={props.mobileView} />\n )\n }\n </Stack>\n </Stack.Item>\n </Stack.Item>\n <SidePane\n mobileView={props.mobileView}\n /* @conditional-compile-remove(video-background-effects) */\n maxWidth={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 minDragPosition={minMaxDragPosition.minDragPosition}\n maxDragPosition={minMaxDragPosition.maxDragPosition}\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 as _CallControlOptions)?.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\"../../../../../calling-component-bindings/src\"\"../../../../../react-components/src\""]}
|
@@ -74,6 +74,10 @@ export interface CallWithChatCompositeStrings {
|
|
74
74
|
* Only used with `mobileView` set to `true`.
|
75
75
|
*/
|
76
76
|
moreDrawerCaptionLanguageMenuTitle: string;
|
77
|
+
/**
|
78
|
+
* Title for the gallery options sub-menu in the more button drawer.
|
79
|
+
*/
|
80
|
+
moreDrawerGalleryOptionsMenuTitle: string;
|
77
81
|
/**
|
78
82
|
* {@Link CallWithChatComposite} control bar More button label
|
79
83
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallWithChatComposite/Strings.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Strings used by the {@link CallWithChatComposite} directly.\n *\n * This strings are in addition to those used by the components from the component library.\n *\n * @public\n */\nexport interface CallWithChatCompositeStrings {\n /**\n * {@link CallWithChatComposite} control bar People button label\n */\n peopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button label when checked\n */\n selectedPeopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipOpen: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button label.\n */\n chatButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipOpen: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button enhanced tooltip string.\n */\n chatButtonTooltipClosedWithMessageCount: string;\n /**\n * Title for the audio device selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when no speakers are available.\n */\n moreDrawerAudioDeviceMenuTitle?: string;\n /**\n * Title for the microphone selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when speakers are available.\n */\n moreDrawerMicrophoneMenuTitle: string;\n /**\n * Title for the speaker selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpeakerMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the captions sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionsMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the spoken language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpokenLanguageMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the caption language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionLanguageMenuTitle: string;\n /**\n * {@Link CallWithChatComposite} control bar More button label\n */\n moreDrawerButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar More button tooltip content\n */\n moreDrawerButtonTooltip: string;\n /**\n * Side pane People section Title.\n */\n peoplePaneTitle: string;\n /**\n * Side pane People section subheader.\n */\n peoplePaneSubTitle: string;\n /**\n * Side pane Chat screen title.\n */\n chatPaneTitle: string;\n /**\n * New Message label for chat button with notification icon component.\n */\n chatButtonNewMessageNotificationLabel: string;\n /**\n * Aria label for the picture in picture in picture tile that.\n * This feature currently only shows on mobileView when the chat or people pane is expanded.\n * @remarks\n * This component displays the local and most-dominant remote participant and when clicked\n * returns the user to the call screen.\n */\n pictureInPictureTileAriaLabel: string;\n /**\n * Label for menu item to remove participant\n */\n removeMenuLabel: string;\n /**\n * Label for button to copy invite link\n */\n copyInviteLinkButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to open dialpad\n */\n openDialpadButtonLabel: string;\n /**\n * Label for SidePaneHeader dismiss button\n */\n dismissSidePaneButtonLabel?: string;\n /**\n * Aria Description string for return to call button\n */\n returnToCallButtonAriaDescription?: string;\n /**\n * Aria label string for return to call back button\n */\n returnToCallButtonAriaLabel?: string;\n\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for add people dropdown\n */\n peoplePaneAddPeopleButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to start a call\n */\n dialpadStartCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Title for dialpad Modal\n */\n dialpadModalTitle: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal\n */\n dialpadModalAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal close button\n */\n dialpadCloseModalButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Placeholder text for dtmf dialpad\n */\n dtmfDialpadPlaceholderText: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for the button to open dtmf dialpad\n */\n openDtmfDialpadLabel: string;\n /**\n * aria label for when the invite link has been actioned\n */\n copyInviteLinkActionedAriaLabel: string;\n}\n"]}
|
1
|
+
{"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/CallWithChatComposite/Strings.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Strings used by the {@link CallWithChatComposite} directly.\n *\n * This strings are in addition to those used by the components from the component library.\n *\n * @public\n */\nexport interface CallWithChatCompositeStrings {\n /**\n * {@link CallWithChatComposite} control bar People button label\n */\n peopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button label when checked\n */\n selectedPeopleButtonLabel: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipOpen: string;\n /**\n * {@link CallWithChatComposite} control bar People button ToolTipContent\n */\n peopleButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button label.\n */\n chatButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipOpen: string;\n /**\n * {@Link CallWithChatComposite} control bar Chat button ToolTipContent.\n */\n chatButtonTooltipClose: string;\n /**\n * {@link CallWithChatComposite} control bar Chat button enhanced tooltip string.\n */\n chatButtonTooltipClosedWithMessageCount: string;\n /**\n * Title for the audio device selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when no speakers are available.\n */\n moreDrawerAudioDeviceMenuTitle?: string;\n /**\n * Title for the microphone selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true` and when speakers are available.\n */\n moreDrawerMicrophoneMenuTitle: string;\n /**\n * Title for the speaker selection sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpeakerMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the captions sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionsMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the spoken language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerSpokenLanguageMenuTitle: string;\n /* @conditional-compile-remove(close-captions) */\n /**\n * Title for the caption language sub-menu in more button drawer.\n *\n * Only used with `mobileView` set to `true`.\n */\n moreDrawerCaptionLanguageMenuTitle: string;\n /* @conditional-compile-remove(gallery-layouts) */\n /**\n * Title for the gallery options sub-menu in the more button drawer.\n */\n moreDrawerGalleryOptionsMenuTitle: string;\n /**\n * {@Link CallWithChatComposite} control bar More button label\n */\n moreDrawerButtonLabel: string;\n /**\n * {@Link CallWithChatComposite} control bar More button tooltip content\n */\n moreDrawerButtonTooltip: string;\n /**\n * Side pane People section Title.\n */\n peoplePaneTitle: string;\n /**\n * Side pane People section subheader.\n */\n peoplePaneSubTitle: string;\n /**\n * Side pane Chat screen title.\n */\n chatPaneTitle: string;\n /**\n * New Message label for chat button with notification icon component.\n */\n chatButtonNewMessageNotificationLabel: string;\n /**\n * Aria label for the picture in picture in picture tile that.\n * This feature currently only shows on mobileView when the chat or people pane is expanded.\n * @remarks\n * This component displays the local and most-dominant remote participant and when clicked\n * returns the user to the call screen.\n */\n pictureInPictureTileAriaLabel: string;\n /**\n * Label for menu item to remove participant\n */\n removeMenuLabel: string;\n /**\n * Label for button to copy invite link\n */\n copyInviteLinkButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to open dialpad\n */\n openDialpadButtonLabel: string;\n /**\n * Label for SidePaneHeader dismiss button\n */\n dismissSidePaneButtonLabel?: string;\n /**\n * Aria Description string for return to call button\n */\n returnToCallButtonAriaDescription?: string;\n /**\n * Aria label string for return to call back button\n */\n returnToCallButtonAriaLabel?: string;\n\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for add people dropdown\n */\n peoplePaneAddPeopleButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for button to start a call\n */\n dialpadStartCallButtonLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Title for dialpad Modal\n */\n dialpadModalTitle: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal\n */\n dialpadModalAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Aria Label for dialpad Modal close button\n */\n dialpadCloseModalButtonAriaLabel: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Placeholder text for dtmf dialpad\n */\n dtmfDialpadPlaceholderText: string;\n /* @conditional-compile-remove(PSTN-calls) */\n /**\n * Label for the button to open dtmf dialpad\n */\n openDtmfDialpadLabel: string;\n /**\n * aria label for when the invite link has been actioned\n */\n copyInviteLinkActionedAriaLabel: string;\n}\n"]}
|
package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js
CHANGED
@@ -9,8 +9,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
9
9
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
10
10
|
});
|
11
11
|
};
|
12
|
-
/* @conditional-compile-remove(gallery-layouts) */
|
13
|
-
import { ContextualMenuItemType } from '@fluentui/react';
|
14
12
|
/* @conditional-compile-remove(close-captions) */
|
15
13
|
import { _StartCaptionsButton } from "../../../../../react-components/src";
|
16
14
|
/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
@@ -41,7 +39,7 @@ import { _preventDismissOnEvent } from "../../../../../acs-ui-common/src";
|
|
41
39
|
* @private
|
42
40
|
*/
|
43
41
|
export const DesktopMoreButton = (props) => {
|
44
|
-
var _a, _b, _c;
|
42
|
+
var _a, _b, _c, _d, _e;
|
45
43
|
/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */
|
46
44
|
const localeStrings = useLocale();
|
47
45
|
/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
@@ -183,6 +181,7 @@ export const DesktopMoreButton = (props) => {
|
|
183
181
|
styles: menuSubIconStyleSet
|
184
182
|
},
|
185
183
|
text: localeStrings.strings.call.moreButtonGalleryControlLabel,
|
184
|
+
disabled: props.disableButtonsForHoldScreen,
|
186
185
|
subMenuProps: {
|
187
186
|
items: [
|
188
187
|
{
|
@@ -260,33 +259,6 @@ export const DesktopMoreButton = (props) => {
|
|
260
259
|
iconName: 'FocusedContentGalleryLayout',
|
261
260
|
styles: { root: { lineHeight: 0 } }
|
262
261
|
}
|
263
|
-
},
|
264
|
-
{ key: 'dividerLayoutsKey', itemType: ContextualMenuItemType.Divider },
|
265
|
-
{
|
266
|
-
key: 'topKey',
|
267
|
-
text: localeStrings.strings.call.moreButtonGalleryPositionToggleLabel,
|
268
|
-
canCheck: true,
|
269
|
-
topDivider: true,
|
270
|
-
itemProps: {
|
271
|
-
styles: buttonFlyoutIncreasedSizeStyles
|
272
|
-
},
|
273
|
-
iconProps: {
|
274
|
-
iconName: 'OverflowGalleryTop',
|
275
|
-
styles: { root: { lineHeight: 0 } }
|
276
|
-
},
|
277
|
-
isChecked: galleryPositionTop,
|
278
|
-
onClick: () => {
|
279
|
-
if (galleryPositionTop === false) {
|
280
|
-
props.onUserSetOverflowGalleryPositionChange &&
|
281
|
-
props.onUserSetOverflowGalleryPositionChange('HorizontalTop');
|
282
|
-
setGalleryPositionTop(true);
|
283
|
-
}
|
284
|
-
else {
|
285
|
-
props.onUserSetOverflowGalleryPositionChange &&
|
286
|
-
props.onUserSetOverflowGalleryPositionChange('Responsive');
|
287
|
-
setGalleryPositionTop(false);
|
288
|
-
}
|
289
|
-
}
|
290
262
|
}
|
291
263
|
],
|
292
264
|
calloutProps: {
|
@@ -295,7 +267,7 @@ export const DesktopMoreButton = (props) => {
|
|
295
267
|
}
|
296
268
|
};
|
297
269
|
/* @conditional-compile-remove(large-gallery) */
|
298
|
-
const
|
270
|
+
const largeGalleryOptions = {
|
299
271
|
key: 'largeGallerySelectionKey',
|
300
272
|
text: localeStrings.strings.call.moreButtonLargeGalleryDefaultLayoutLabel,
|
301
273
|
canCheck: true,
|
@@ -312,8 +284,36 @@ export const DesktopMoreButton = (props) => {
|
|
312
284
|
styles: { root: { lineHeight: 0 } }
|
313
285
|
}
|
314
286
|
};
|
287
|
+
/* @conditional-compile-remove(gallery-layouts) */
|
288
|
+
const overflowGalleryOptions = {
|
289
|
+
key: 'topKey',
|
290
|
+
text: localeStrings.strings.call.moreButtonGalleryPositionToggleLabel,
|
291
|
+
canCheck: true,
|
292
|
+
topDivider: true,
|
293
|
+
itemProps: {
|
294
|
+
styles: buttonFlyoutIncreasedSizeStyles
|
295
|
+
},
|
296
|
+
iconProps: {
|
297
|
+
iconName: 'OverflowGalleryTop',
|
298
|
+
styles: { root: { lineHeight: 0 } }
|
299
|
+
},
|
300
|
+
isChecked: galleryPositionTop,
|
301
|
+
onClick: () => {
|
302
|
+
if (galleryPositionTop === false) {
|
303
|
+
props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('HorizontalTop');
|
304
|
+
setGalleryPositionTop(true);
|
305
|
+
}
|
306
|
+
else {
|
307
|
+
props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('Responsive');
|
308
|
+
setGalleryPositionTop(false);
|
309
|
+
}
|
310
|
+
}
|
311
|
+
};
|
315
312
|
/* @conditional-compile-remove(large-gallery) */
|
316
|
-
(_c = (_b = galleryOptions.subMenuProps) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.push(
|
313
|
+
(_c = (_b = galleryOptions.subMenuProps) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.push(largeGalleryOptions);
|
314
|
+
/* @conditional-compile-remove(gallery-layouts) */
|
315
|
+
(_e = (_d = galleryOptions.subMenuProps) === null || _d === void 0 ? void 0 : _d.items) === null || _e === void 0 ? void 0 : _e.push(overflowGalleryOptions);
|
316
|
+
/* @conditional-compile-remove(gallery-layouts) */
|
317
317
|
moreButtonContextualMenuItems.push(galleryOptions);
|
318
318
|
}
|
319
319
|
/* @conditional-compile-remove(control-bar-button-injection) */
|
package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DesktopMoreButton.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/ControlBar/DesktopMoreButton.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IContextualMenuItem } from '@fluentui/react';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { ContextualMenuItemType } from '@fluentui/react';\nimport { ControlBarButtonProps } from '@internal/react-components';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _StartCaptionsButton } from '@internal/react-components';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport React from 'react';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { useState } from 'react';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\nimport { useMemo, useCallback } from 'react';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\nimport { buttonFlyoutIncreasedSizeStyles } from '../../CallComposite/styles/Buttons.styles';\nimport { MoreButton } from '../MoreButton';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\nimport { useLocale } from '../../localization';\n/* @conditional-compile-remove(control-bar-button-injection) */\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\n/* @conditional-compile-remove(control-bar-button-injection) */\nimport {\n CUSTOM_BUTTON_OPTIONS,\n generateCustomCallDesktopOverflowButtons,\n onFetchCustomButtonPropsTrampoline\n} from './CustomButton';\n/* @conditional-compile-remove(close-captions) */\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\n/* @conditional-compile-remove(close-captions) */\nimport { _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\n/* @conditional-compile-remove(close-captions) */\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\nimport { _preventDismissOnEvent } from '@internal/acs-ui-common';\n\n/** @private */\nexport interface DesktopMoreButtonProps extends ControlBarButtonProps {\n disableButtonsForHoldScreen?: boolean;\n onClickShowDialpad?: () => void;\n /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported?: boolean;\n /* @conditional-compile-remove(control-bar-button-injection) */\n callControls?: boolean | CommonCallControlOptions;\n onCaptionsSettingsClick?: () => void;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'HorizontalTop') => void;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout?: VideoGalleryLayout;\n}\n\n/**\n *\n * @private\n */\nexport const DesktopMoreButton = (props: DesktopMoreButtonProps): JSX.Element => {\n /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n const localeStrings = useLocale();\n /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const holdButtonProps = usePropsFor(HoldButton);\n /* @conditional-compile-remove(close-captions) */\n const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);\n /* @conditional-compile-remove(close-captions) */\n const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n /* @conditional-compile-remove(close-captions) */\n const startCaptions = useCallback(async () => {\n await startCaptionsButtonHandlers.onStartCaptions({\n spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage\n });\n }, [startCaptionsButtonHandlers, startCaptionsButtonProps.currentSpokenLanguage]);\n\n /* @conditional-compile-remove(gallery-layouts) */\n const [galleryPositionTop, setGalleryPositionTop] = useState<boolean>(false);\n /* @conditional-compile-remove(gallery-layouts) */\n const [focusedContentOn, setFocusedContentOn] = useState<boolean>(false);\n /* @conditional-compile-remove(gallery-layouts) */\n const [previousLayout, setPreviousLayout] = useState<VideoGalleryLayout>(\n props.userSetGalleryLayout ?? 'floatingLocalVideo'\n );\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n const moreButtonStrings = useMemo(\n () => ({\n label: localeStrings.strings.call.moreButtonCallingLabel,\n tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip\n }),\n [localeStrings]\n );\n\n const moreButtonContextualMenuItems: IContextualMenuItem[] = [];\n\n /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(gallery-layouts) */\n const menuSubIconStyleSet = {\n root: {\n height: 'unset',\n lineHeight: '100%',\n width: '1.25rem'\n }\n };\n\n /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n moreButtonContextualMenuItems.push({\n key: 'holdButtonKey',\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onClick: () => {\n holdButtonProps.onToggleHold();\n },\n iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen\n });\n\n // is captions feature is active\n /* @conditional-compile-remove(close-captions) */\n if (props.isCaptionsSupported) {\n const captionsContextualMenuItems: IContextualMenuItem[] = [];\n\n moreButtonContextualMenuItems.push({\n key: 'liveCaptionsKey',\n id: 'common-call-composite-captions-button',\n text: localeStrings.strings.call.liveCaptionsLabel,\n iconProps: { iconName: 'CaptionsIcon', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen,\n subMenuProps: {\n id: 'captions-contextual-menu',\n items: captionsContextualMenuItems,\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n },\n submenuIconProps: {\n iconName: 'HorizontalGalleryRightButton',\n styles: menuSubIconStyleSet\n }\n });\n\n captionsContextualMenuItems.push({\n key: 'ToggleCaptionsKey',\n id: 'common-call-composite-captions-toggle-button',\n text: startCaptionsButtonProps.checked\n ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n onClick: () => {\n startCaptionsButtonProps.checked\n ? startCaptionsButtonHandlers.onStopCaptions()\n : startCaptionsButtonProps.currentSpokenLanguage !== ''\n ? startCaptions()\n : props.onCaptionsSettingsClick && props.onCaptionsSettingsClick();\n },\n iconProps: {\n iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: { root: { lineHeight: 0 } }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen\n });\n\n if (props.onCaptionsSettingsClick) {\n captionsContextualMenuItems.push({\n key: 'openCaptionsSettingsKey',\n id: 'common-call-composite-captions-settings-button',\n text: localeStrings.strings.call.captionsSettingsLabel,\n onClick: props.onCaptionsSettingsClick,\n iconProps: {\n iconName: 'CaptionsSettingsIcon',\n styles: { root: { lineHeight: 0 } }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen || !startCaptionsButtonProps.checked\n });\n }\n }\n\n /*@conditional-compile-remove(PSTN-calls) */\n if (props.onClickShowDialpad) {\n moreButtonContextualMenuItems.push({\n key: 'showDialpadKey',\n text: localeStrings.strings.callWithChat.openDtmfDialpadLabel,\n onClick: () => {\n props.onClickShowDialpad && props.onClickShowDialpad();\n },\n iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen\n });\n }\n\n /* @conditional-compile-remove(gallery-layouts) */\n if (props.onUserSetOverflowGalleryPositionChange) {\n const galleryOptions = {\n key: 'overflowGalleryPositionKey',\n iconProps: {\n iconName: 'GalleryOptions',\n styles: { root: { lineHeight: 0 } }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n submenuIconProps: {\n styles: menuSubIconStyleSet\n },\n text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n subMenuProps: {\n items: [\n {\n key: 'speakerSelectionKey',\n text: localeStrings.strings.call.moreButtonGallerySpeakerLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'speaker',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('speaker');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'SpeakerGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n },\n {\n key: 'dynamicSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'floatingLocalVideo',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'FloatingLocalVideoGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n },\n {\n key: 'defaultSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'default',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'DefaultGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n },\n {\n key: 'focusedContentSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: focusedContentOn,\n onClick: () => {\n if (focusedContentOn === false) {\n setPreviousLayout(props.userSetGalleryLayout ?? 'floatingLocalVideo');\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n setFocusedContentOn(true);\n } else {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout(previousLayout);\n setFocusedContentOn(false);\n }\n },\n iconProps: {\n iconName: 'FocusedContentGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n },\n { key: 'dividerLayoutsKey', itemType: ContextualMenuItemType.Divider },\n {\n key: 'topKey',\n text: localeStrings.strings.call.moreButtonGalleryPositionToggleLabel,\n canCheck: true,\n topDivider: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n iconProps: {\n iconName: 'OverflowGalleryTop',\n styles: { root: { lineHeight: 0 } }\n },\n isChecked: galleryPositionTop,\n onClick: () => {\n if (galleryPositionTop === false) {\n props.onUserSetOverflowGalleryPositionChange &&\n props.onUserSetOverflowGalleryPositionChange('HorizontalTop');\n setGalleryPositionTop(true);\n } else {\n props.onUserSetOverflowGalleryPositionChange &&\n props.onUserSetOverflowGalleryPositionChange('Responsive');\n setGalleryPositionTop(false);\n }\n }\n }\n ],\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n }\n };\n /* @conditional-compile-remove(large-gallery) */\n const largeGalleryOption = {\n key: 'largeGallerySelectionKey',\n text: localeStrings.strings.call.moreButtonLargeGalleryDefaultLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'largeGallery',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('largeGallery');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'LargeGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n };\n /* @conditional-compile-remove(large-gallery) */\n galleryOptions.subMenuProps?.items?.push(largeGalleryOption);\n\n moreButtonContextualMenuItems.push(galleryOptions);\n }\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n const customDrawerButtons = useMemo(\n () =>\n generateCustomCallDesktopOverflowButtons(\n onFetchCustomButtonPropsTrampoline(typeof props.callControls === 'object' ? props.callControls : undefined),\n typeof props.callControls === 'object' ? props.callControls.displayType : undefined\n ),\n [props.callControls]\n );\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).forEach((element) => {\n moreButtonContextualMenuItems.push({\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n ...element\n });\n });\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['secondary']\n .slice(CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS)\n .forEach((element) => {\n moreButtonContextualMenuItems.push({\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n ...element\n });\n });\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['overflow'].forEach((element) => {\n moreButtonContextualMenuItems.push({\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n ...element\n });\n });\n\n return (\n <MoreButton\n {...props}\n data-ui-id=\"common-call-composite-more-button\"\n /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n strings={moreButtonStrings}\n menuIconProps={{ hidden: true }}\n menuProps={{\n items: moreButtonContextualMenuItems,\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n }}\n />\n );\n};\n\"../../../../../react-components/src\"\"../../../../../calling-component-bindings/src\"\"../../../../../acs-ui-common/src\""]}
|
1
|
+
{"version":3,"file":"DesktopMoreButton.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/ControlBar/DesktopMoreButton.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IContextualMenuItem } from '@fluentui/react';\nimport { ControlBarButtonProps } from '@internal/react-components';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _StartCaptionsButton } from '@internal/react-components';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport React from 'react';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { useState } from 'react';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\nimport { useMemo, useCallback } from 'react';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\nimport { buttonFlyoutIncreasedSizeStyles } from '../../CallComposite/styles/Buttons.styles';\nimport { MoreButton } from '../MoreButton';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\nimport { useLocale } from '../../localization';\n/* @conditional-compile-remove(control-bar-button-injection) */\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\n/* @conditional-compile-remove(control-bar-button-injection) */\nimport {\n CUSTOM_BUTTON_OPTIONS,\n generateCustomCallDesktopOverflowButtons,\n onFetchCustomButtonPropsTrampoline\n} from './CustomButton';\n/* @conditional-compile-remove(close-captions) */\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\n/* @conditional-compile-remove(close-captions) */\nimport { _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\n/* @conditional-compile-remove(close-captions) */\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\nimport { _preventDismissOnEvent } from '@internal/acs-ui-common';\n\n/** @private */\nexport interface DesktopMoreButtonProps extends ControlBarButtonProps {\n disableButtonsForHoldScreen?: boolean;\n onClickShowDialpad?: () => void;\n /* @conditional-compile-remove(close-captions) */\n isCaptionsSupported?: boolean;\n /* @conditional-compile-remove(control-bar-button-injection) */\n callControls?: boolean | CommonCallControlOptions;\n onCaptionsSettingsClick?: () => void;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'HorizontalTop') => void;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout?: VideoGalleryLayout;\n}\n\n/**\n *\n * @private\n */\nexport const DesktopMoreButton = (props: DesktopMoreButtonProps): JSX.Element => {\n /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n const localeStrings = useLocale();\n /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const holdButtonProps = usePropsFor(HoldButton);\n /* @conditional-compile-remove(close-captions) */\n const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);\n /* @conditional-compile-remove(close-captions) */\n const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n /* @conditional-compile-remove(close-captions) */\n const startCaptions = useCallback(async () => {\n await startCaptionsButtonHandlers.onStartCaptions({\n spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage\n });\n }, [startCaptionsButtonHandlers, startCaptionsButtonProps.currentSpokenLanguage]);\n\n /* @conditional-compile-remove(gallery-layouts) */\n const [galleryPositionTop, setGalleryPositionTop] = useState<boolean>(false);\n /* @conditional-compile-remove(gallery-layouts) */\n const [focusedContentOn, setFocusedContentOn] = useState<boolean>(false);\n /* @conditional-compile-remove(gallery-layouts) */\n const [previousLayout, setPreviousLayout] = useState<VideoGalleryLayout>(\n props.userSetGalleryLayout ?? 'floatingLocalVideo'\n );\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n const moreButtonStrings = useMemo(\n () => ({\n label: localeStrings.strings.call.moreButtonCallingLabel,\n tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip\n }),\n [localeStrings]\n );\n\n const moreButtonContextualMenuItems: IContextualMenuItem[] = [];\n\n /* @conditional-compile-remove(close-captions) */ /* @conditional-compile-remove(gallery-layouts) */\n const menuSubIconStyleSet = {\n root: {\n height: 'unset',\n lineHeight: '100%',\n width: '1.25rem'\n }\n };\n\n /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n moreButtonContextualMenuItems.push({\n key: 'holdButtonKey',\n text: localeStrings.component.strings.holdButton.tooltipOffContent,\n onClick: () => {\n holdButtonProps.onToggleHold();\n },\n iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen\n });\n\n // is captions feature is active\n /* @conditional-compile-remove(close-captions) */\n if (props.isCaptionsSupported) {\n const captionsContextualMenuItems: IContextualMenuItem[] = [];\n\n moreButtonContextualMenuItems.push({\n key: 'liveCaptionsKey',\n id: 'common-call-composite-captions-button',\n text: localeStrings.strings.call.liveCaptionsLabel,\n iconProps: { iconName: 'CaptionsIcon', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen,\n subMenuProps: {\n id: 'captions-contextual-menu',\n items: captionsContextualMenuItems,\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n },\n submenuIconProps: {\n iconName: 'HorizontalGalleryRightButton',\n styles: menuSubIconStyleSet\n }\n });\n\n captionsContextualMenuItems.push({\n key: 'ToggleCaptionsKey',\n id: 'common-call-composite-captions-toggle-button',\n text: startCaptionsButtonProps.checked\n ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n onClick: () => {\n startCaptionsButtonProps.checked\n ? startCaptionsButtonHandlers.onStopCaptions()\n : startCaptionsButtonProps.currentSpokenLanguage !== ''\n ? startCaptions()\n : props.onCaptionsSettingsClick && props.onCaptionsSettingsClick();\n },\n iconProps: {\n iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',\n styles: { root: { lineHeight: 0 } }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen\n });\n\n if (props.onCaptionsSettingsClick) {\n captionsContextualMenuItems.push({\n key: 'openCaptionsSettingsKey',\n id: 'common-call-composite-captions-settings-button',\n text: localeStrings.strings.call.captionsSettingsLabel,\n onClick: props.onCaptionsSettingsClick,\n iconProps: {\n iconName: 'CaptionsSettingsIcon',\n styles: { root: { lineHeight: 0 } }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen || !startCaptionsButtonProps.checked\n });\n }\n }\n\n /*@conditional-compile-remove(PSTN-calls) */\n if (props.onClickShowDialpad) {\n moreButtonContextualMenuItems.push({\n key: 'showDialpadKey',\n text: localeStrings.strings.callWithChat.openDtmfDialpadLabel,\n onClick: () => {\n props.onClickShowDialpad && props.onClickShowDialpad();\n },\n iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n disabled: props.disableButtonsForHoldScreen\n });\n }\n\n /* @conditional-compile-remove(gallery-layouts) */\n if (props.onUserSetOverflowGalleryPositionChange) {\n const galleryOptions = {\n key: 'overflowGalleryPositionKey',\n iconProps: {\n iconName: 'GalleryOptions',\n styles: { root: { lineHeight: 0 } }\n },\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n submenuIconProps: {\n styles: menuSubIconStyleSet\n },\n text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n disabled: props.disableButtonsForHoldScreen,\n subMenuProps: {\n items: [\n {\n key: 'speakerSelectionKey',\n text: localeStrings.strings.call.moreButtonGallerySpeakerLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'speaker',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('speaker');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'SpeakerGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n },\n {\n key: 'dynamicSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'floatingLocalVideo',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'FloatingLocalVideoGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n },\n {\n key: 'defaultSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'default',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'DefaultGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n },\n {\n key: 'focusedContentSelectionKey',\n text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: focusedContentOn,\n onClick: () => {\n if (focusedContentOn === false) {\n setPreviousLayout(props.userSetGalleryLayout ?? 'floatingLocalVideo');\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n setFocusedContentOn(true);\n } else {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout(previousLayout);\n setFocusedContentOn(false);\n }\n },\n iconProps: {\n iconName: 'FocusedContentGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n }\n ],\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n }\n };\n /* @conditional-compile-remove(large-gallery) */\n const largeGalleryOptions = {\n key: 'largeGallerySelectionKey',\n text: localeStrings.strings.call.moreButtonLargeGalleryDefaultLayoutLabel,\n canCheck: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n isChecked: props.userSetGalleryLayout === 'largeGallery',\n onClick: () => {\n props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('largeGallery');\n setFocusedContentOn(false);\n },\n iconProps: {\n iconName: 'LargeGalleryLayout',\n styles: { root: { lineHeight: 0 } }\n }\n };\n\n /* @conditional-compile-remove(gallery-layouts) */\n const overflowGalleryOptions = {\n key: 'topKey',\n text: localeStrings.strings.call.moreButtonGalleryPositionToggleLabel,\n canCheck: true,\n topDivider: true,\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n iconProps: {\n iconName: 'OverflowGalleryTop',\n styles: { root: { lineHeight: 0 } }\n },\n isChecked: galleryPositionTop,\n onClick: () => {\n if (galleryPositionTop === false) {\n props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('HorizontalTop');\n setGalleryPositionTop(true);\n } else {\n props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('Responsive');\n setGalleryPositionTop(false);\n }\n }\n };\n /* @conditional-compile-remove(large-gallery) */\n galleryOptions.subMenuProps?.items?.push(largeGalleryOptions);\n /* @conditional-compile-remove(gallery-layouts) */\n galleryOptions.subMenuProps?.items?.push(overflowGalleryOptions);\n\n /* @conditional-compile-remove(gallery-layouts) */\n moreButtonContextualMenuItems.push(galleryOptions);\n }\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n const customDrawerButtons = useMemo(\n () =>\n generateCustomCallDesktopOverflowButtons(\n onFetchCustomButtonPropsTrampoline(typeof props.callControls === 'object' ? props.callControls : undefined),\n typeof props.callControls === 'object' ? props.callControls.displayType : undefined\n ),\n [props.callControls]\n );\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).forEach((element) => {\n moreButtonContextualMenuItems.push({\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n ...element\n });\n });\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['secondary']\n .slice(CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS)\n .forEach((element) => {\n moreButtonContextualMenuItems.push({\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n ...element\n });\n });\n\n /* @conditional-compile-remove(control-bar-button-injection) */\n customDrawerButtons['overflow'].forEach((element) => {\n moreButtonContextualMenuItems.push({\n itemProps: {\n styles: buttonFlyoutIncreasedSizeStyles\n },\n ...element\n });\n });\n\n return (\n <MoreButton\n {...props}\n data-ui-id=\"common-call-composite-more-button\"\n /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n strings={moreButtonStrings}\n menuIconProps={{ hidden: true }}\n menuProps={{\n items: moreButtonContextualMenuItems,\n calloutProps: {\n preventDismissOnEvent: _preventDismissOnEvent\n }\n }}\n />\n );\n};\n\"../../../../../react-components/src\"\"../../../../../calling-component-bindings/src\"\"../../../../../acs-ui-common/src\""]}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { OptionsDevice } from "../../../../../react-components/src";
|
3
|
+
import { VideoGalleryLayout } from "../../../../../react-components/src";
|
3
4
|
import { AudioDeviceInfo } from '@azure/communication-calling';
|
4
5
|
import { CommonCallControlOptions } from '../types/CommonCallControlOptions';
|
5
6
|
/** @private */
|
@@ -47,6 +48,10 @@ export interface MoreDrawerStrings {
|
|
47
48
|
* @remarks Only displayed when in Teams call, disabled until captions is on
|
48
49
|
*/
|
49
50
|
captionLanguageMenuTitle: string;
|
51
|
+
/**
|
52
|
+
* Label for gallery options drawerMenuItem
|
53
|
+
*/
|
54
|
+
galleryOptionsMenuTitle: string;
|
50
55
|
}
|
51
56
|
/** @private */
|
52
57
|
export interface MoreDrawerDevicesMenuProps {
|
@@ -74,6 +79,11 @@ export interface MoreDrawerDevicesMenuProps {
|
|
74
79
|
* Callback when a microphone is selected
|
75
80
|
*/
|
76
81
|
onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;
|
82
|
+
userSetGalleryLayout?: VideoGalleryLayout;
|
83
|
+
/**
|
84
|
+
* Callback for when the gallery layout is changed
|
85
|
+
*/
|
86
|
+
onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;
|
77
87
|
}
|
78
88
|
/** @private */
|
79
89
|
export interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {
|
@@ -127,6 +127,57 @@ export const MoreDrawer = (props) => {
|
|
127
127
|
secondaryText: (_b = props.selectedMicrophone) === null || _b === void 0 ? void 0 : _b.name
|
128
128
|
});
|
129
129
|
}
|
130
|
+
/* @conditional-compile-remove(gallery-layouts) */
|
131
|
+
drawerMenuItems.push({
|
132
|
+
itemKey: 'overflowGalleryPositionKey',
|
133
|
+
iconProps: {
|
134
|
+
iconName: 'GalleryOptions',
|
135
|
+
styles: { root: { lineHeight: 0 } }
|
136
|
+
},
|
137
|
+
disabled: props.disableButtonsForHoldScreen,
|
138
|
+
text: localeStrings.strings.call.moreButtonGalleryControlLabel,
|
139
|
+
subMenuProps: [
|
140
|
+
{
|
141
|
+
itemKey: 'dynamicSelectionKey',
|
142
|
+
text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,
|
143
|
+
onItemClick: () => {
|
144
|
+
props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');
|
145
|
+
onLightDismiss();
|
146
|
+
},
|
147
|
+
iconProps: {
|
148
|
+
iconName: 'FloatingLocalVideoGalleryLayout',
|
149
|
+
styles: { root: { lineHeight: 0 } }
|
150
|
+
},
|
151
|
+
secondaryIconProps: props.userSetGalleryLayout === 'floatingLocalVideo' ? { iconName: 'Accept' } : undefined
|
152
|
+
},
|
153
|
+
{
|
154
|
+
itemKey: 'defaultSelectionKey',
|
155
|
+
text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,
|
156
|
+
onItemClick: () => {
|
157
|
+
props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');
|
158
|
+
onLightDismiss();
|
159
|
+
},
|
160
|
+
iconProps: {
|
161
|
+
iconName: 'DefaultGalleryLayout',
|
162
|
+
styles: { root: { lineHeight: 0 } }
|
163
|
+
},
|
164
|
+
secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined
|
165
|
+
},
|
166
|
+
{
|
167
|
+
itemKey: 'focusedContentSelectionKey',
|
168
|
+
text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,
|
169
|
+
onItemClick: () => {
|
170
|
+
props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');
|
171
|
+
onLightDismiss();
|
172
|
+
},
|
173
|
+
iconProps: {
|
174
|
+
iconName: 'FocusedContentGalleryLayout',
|
175
|
+
styles: { root: { lineHeight: 0 } }
|
176
|
+
},
|
177
|
+
secondaryIconProps: props.userSetGalleryLayout === 'focusedContent' ? { iconName: 'Accept' } : undefined
|
178
|
+
}
|
179
|
+
]
|
180
|
+
});
|
130
181
|
if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.peopleButton)) {
|
131
182
|
drawerMenuItems.push({
|
132
183
|
itemKey: 'people',
|