@azure/communication-react 1.19.0-alpha-202408250016 → 1.19.0-alpha-202408270015
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 +18 -0
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-vvmyDrAz.js → ChatMessageComponentAsRichTextEditBox-qEJmtx93.js} +2 -2
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-vvmyDrAz.js.map → ChatMessageComponentAsRichTextEditBox-qEJmtx93.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BXGkZC3x.js → RichTextSendBoxWrapper-BgnerjU-.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BXGkZC3x.js.map → RichTextSendBoxWrapper-BgnerjU-.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-Bqw-4OaM.js → index-DejG4i9h.js} +181 -59
- package/dist/dist-cjs/communication-react/index-DejG4i9h.js.map +1 -0
- package/dist/dist-cjs/communication-react/index.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/BreakoutRoomsSubscriber.js +5 -4
- package/dist/dist-esm/calling-stateful-client/src/BreakoutRoomsSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +18 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +36 -29
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Banner.d.ts +47 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Banner.js +48 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/Banner.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BreakoutRoomsBanner.d.ts +13 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BreakoutRoomsBanner.js +43 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BreakoutRoomsBanner.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +13 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +5 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +5 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +6 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +16 -4
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +10 -2
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
- package/package.json +1 -1
- package/dist/dist-cjs/communication-react/index-Bqw-4OaM.js.map +0 -1
@@ -0,0 +1,47 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import { IIconProps } from '@fluentui/react';
|
3
|
+
/**
|
4
|
+
* Props for {@link Banner}.
|
5
|
+
*
|
6
|
+
* @private
|
7
|
+
*/
|
8
|
+
export interface BannerProps {
|
9
|
+
/**
|
10
|
+
* Banner strings.
|
11
|
+
*/
|
12
|
+
strings?: BannerStrings;
|
13
|
+
/**
|
14
|
+
* Banner icon.
|
15
|
+
*/
|
16
|
+
iconProps?: IIconProps;
|
17
|
+
/**
|
18
|
+
* Callback called when the button inside banner is clicked.
|
19
|
+
*/
|
20
|
+
onClickButton?: () => void;
|
21
|
+
/**
|
22
|
+
* If true, the primary button will be styled as a primary button. Default is false.
|
23
|
+
*/
|
24
|
+
primaryButton?: boolean;
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* All strings that may be shown on the UI in the {@link Banner}.
|
28
|
+
*
|
29
|
+
* @private
|
30
|
+
*/
|
31
|
+
export interface BannerStrings {
|
32
|
+
/**
|
33
|
+
* Banner title.
|
34
|
+
*/
|
35
|
+
title: string;
|
36
|
+
/**
|
37
|
+
* Banner primary button label.
|
38
|
+
*/
|
39
|
+
primaryButtonLabel: string;
|
40
|
+
}
|
41
|
+
/**
|
42
|
+
* A component to show a banner in the UI.
|
43
|
+
*
|
44
|
+
* @private
|
45
|
+
*/
|
46
|
+
export declare const Banner: (props: BannerProps) => JSX.Element;
|
47
|
+
//# sourceMappingURL=Banner.d.ts.map
|
@@ -0,0 +1,48 @@
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
2
|
+
// Licensed under the MIT License.
|
3
|
+
import { DefaultButton, mergeStyles } from '@fluentui/react';
|
4
|
+
import { _pxToRem } from "../../../../../acs-ui-common/src";
|
5
|
+
// eslint-disable-next-line no-restricted-imports
|
6
|
+
import { Icon, PrimaryButton, Stack, Text, useTheme } from '@fluentui/react';
|
7
|
+
import React from 'react';
|
8
|
+
/**
|
9
|
+
* A component to show a banner in the UI.
|
10
|
+
*
|
11
|
+
* @private
|
12
|
+
*/
|
13
|
+
export const Banner = (props) => {
|
14
|
+
var _a, _b;
|
15
|
+
const strings = props.strings;
|
16
|
+
const theme = useTheme();
|
17
|
+
return (React.createElement(Stack, { horizontalAlign: "center" },
|
18
|
+
React.createElement(Stack, { "data-ui-id": "banner", className: containerStyles(theme) },
|
19
|
+
React.createElement(Stack, { horizontal: true, horizontalAlign: "space-between" },
|
20
|
+
React.createElement(Stack, { horizontal: true },
|
21
|
+
((_a = props.iconProps) === null || _a === void 0 ? void 0 : _a.iconName) && (React.createElement(Icon, Object.assign({ className: bannerIconClassName, iconName: (_b = props.iconProps) === null || _b === void 0 ? void 0 : _b.iconName }, props.iconProps))),
|
22
|
+
React.createElement(Text, { className: titleTextClassName }, strings === null || strings === void 0 ? void 0 : strings.title)),
|
23
|
+
props.primaryButton ? (React.createElement(PrimaryButton, { text: strings === null || strings === void 0 ? void 0 : strings.primaryButtonLabel, ariaLabel: strings === null || strings === void 0 ? void 0 : strings.primaryButtonLabel, onClick: props.onClickButton })) : (React.createElement(DefaultButton, { text: strings === null || strings === void 0 ? void 0 : strings.primaryButtonLabel, ariaLabel: strings === null || strings === void 0 ? void 0 : strings.primaryButtonLabel, onClick: props.onClickButton }))))));
|
24
|
+
};
|
25
|
+
const titleTextClassName = mergeStyles({
|
26
|
+
fontWeight: 400,
|
27
|
+
fontSize: _pxToRem(14),
|
28
|
+
lineHeight: _pxToRem(16),
|
29
|
+
alignSelf: 'center'
|
30
|
+
});
|
31
|
+
const containerStyles = (theme) => mergeStyles({
|
32
|
+
boxShadow: theme.effects.elevation8,
|
33
|
+
width: '20rem',
|
34
|
+
padding: '0.75rem',
|
35
|
+
borderRadius: '0.25rem',
|
36
|
+
position: 'relative',
|
37
|
+
backgroundColor: theme.palette.white
|
38
|
+
});
|
39
|
+
const bannerIconClassName = mergeStyles({
|
40
|
+
fontSize: '1.25rem',
|
41
|
+
alignSelf: 'center',
|
42
|
+
marginRight: '0.5rem',
|
43
|
+
svg: {
|
44
|
+
width: '1.25rem',
|
45
|
+
height: '1.25rem'
|
46
|
+
}
|
47
|
+
});
|
48
|
+
//# sourceMappingURL=Banner.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/Banner.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,aAAa,EAAS,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,yCAAgC;AACnD,iDAAiD;AACjD,OAAO,EAAc,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,KAAK,MAAM,OAAO,CAAC;AA6C1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAkB,EAAe,EAAE;;IACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,OAAO,CACL,oBAAC,KAAK,IAAC,eAAe,EAAC,QAAQ;QAC7B,oBAAC,KAAK,kBAAY,QAAQ,EAAC,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC;YAC1D,oBAAC,KAAK,IAAC,UAAU,QAAC,eAAe,EAAC,eAAe;gBAC/C,oBAAC,KAAK,IAAC,UAAU;oBACd,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,QAAQ,KAAI,CAC5B,oBAAC,IAAI,kBAAC,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAA,KAAK,CAAC,SAAS,0CAAE,QAAQ,IAAM,KAAK,CAAC,SAAS,EAAI,CACnG;oBACD,oBAAC,IAAI,IAAC,SAAS,EAAE,kBAAkB,IAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAQ,CACtD;gBACP,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CACrB,oBAAC,aAAa,IACZ,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,EACjC,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,EACtC,OAAO,EAAE,KAAK,CAAC,aAAa,GAC5B,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,aAAa,IACZ,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,EACjC,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,EACtC,OAAO,EAAE,KAAK,CAAC,aAAa,GAC5B,CACH,CACK,CACF,CACF,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC;IACrC,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;IACtB,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;IACxB,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,KAAY,EAAU,EAAE,CAC/C,WAAW,CAAC;IACV,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;IACnC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;CACrC,CAAC,CAAC;AAEL,MAAM,mBAAmB,GAAG,WAAW,CAAC;IACtC,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,QAAQ;IACrB,GAAG,EAAE;QACH,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;KAClB;CACF,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DefaultButton, Theme, mergeStyles } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\n// eslint-disable-next-line no-restricted-imports\nimport { IIconProps, Icon, PrimaryButton, Stack, Text, useTheme } from '@fluentui/react';\nimport React from 'react';\n\n/**\n * Props for {@link Banner}.\n *\n * @private\n */\nexport interface BannerProps {\n /**\n * Banner strings.\n */\n strings?: BannerStrings;\n\n /**\n * Banner icon.\n */\n iconProps?: IIconProps;\n\n /**\n * Callback called when the button inside banner is clicked.\n */\n onClickButton?: () => void;\n\n /**\n * If true, the primary button will be styled as a primary button. Default is false.\n */\n primaryButton?: boolean;\n}\n\n/**\n * All strings that may be shown on the UI in the {@link Banner}.\n *\n * @private\n */\nexport interface BannerStrings {\n /**\n * Banner title.\n */\n title: string;\n /**\n * Banner primary button label.\n */\n primaryButtonLabel: string;\n}\n\n/**\n * A component to show a banner in the UI.\n *\n * @private\n */\nexport const Banner = (props: BannerProps): JSX.Element => {\n const strings = props.strings;\n const theme = useTheme();\n\n return (\n <Stack horizontalAlign=\"center\">\n <Stack data-ui-id=\"banner\" className={containerStyles(theme)}>\n <Stack horizontal horizontalAlign=\"space-between\">\n <Stack horizontal>\n {props.iconProps?.iconName && (\n <Icon className={bannerIconClassName} iconName={props.iconProps?.iconName} {...props.iconProps} />\n )}\n <Text className={titleTextClassName}>{strings?.title}</Text>\n </Stack>\n {props.primaryButton ? (\n <PrimaryButton\n text={strings?.primaryButtonLabel}\n ariaLabel={strings?.primaryButtonLabel}\n onClick={props.onClickButton}\n />\n ) : (\n <DefaultButton\n text={strings?.primaryButtonLabel}\n ariaLabel={strings?.primaryButtonLabel}\n onClick={props.onClickButton}\n />\n )}\n </Stack>\n </Stack>\n </Stack>\n );\n};\n\nconst titleTextClassName = mergeStyles({\n fontWeight: 400,\n fontSize: _pxToRem(14),\n lineHeight: _pxToRem(16),\n alignSelf: 'center'\n});\n\nconst containerStyles = (theme: Theme): string =>\n mergeStyles({\n boxShadow: theme.effects.elevation8,\n width: '20rem',\n padding: '0.75rem',\n borderRadius: '0.25rem',\n position: 'relative',\n backgroundColor: theme.palette.white\n });\n\nconst bannerIconClassName = mergeStyles({\n fontSize: '1.25rem',\n alignSelf: 'center',\n marginRight: '0.5rem',\n svg: {\n width: '1.25rem',\n height: '1.25rem'\n }\n});\n"]}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import { ActiveNotification } from "../../../../../react-components/src";
|
3
|
+
import { CommonCallAdapter } from '../adapter';
|
4
|
+
import { CompositeLocale } from '../../localization';
|
5
|
+
/**
|
6
|
+
* @private
|
7
|
+
*/
|
8
|
+
export declare const BreakoutRoomsBanner: (props: {
|
9
|
+
latestNotifications: ActiveNotification[] | undefined;
|
10
|
+
locale: CompositeLocale;
|
11
|
+
adapter: CommonCallAdapter;
|
12
|
+
}) => JSX.Element | undefined;
|
13
|
+
//# sourceMappingURL=BreakoutRoomsBanner.d.ts.map
|
@@ -0,0 +1,43 @@
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
2
|
+
// Licensed under the MIT License.
|
3
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
4
|
+
import { Stack } from '@fluentui/react';
|
5
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
6
|
+
import React from 'react';
|
7
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
8
|
+
import { bannerNotificationStyles } from '../styles/CallPage.styles';
|
9
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
10
|
+
import { useSelector } from '../hooks/useSelector';
|
11
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
12
|
+
import { getAssignedBreakoutRoom, getBreakoutRoomSettings } from '../selectors/baseSelectors';
|
13
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
14
|
+
import { Banner } from './Banner';
|
15
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
16
|
+
/**
|
17
|
+
* @private
|
18
|
+
*/
|
19
|
+
export const BreakoutRoomsBanner = (props) => {
|
20
|
+
const { latestNotifications, locale, adapter } = props;
|
21
|
+
const assignedBreakoutRoom = useSelector(getAssignedBreakoutRoom);
|
22
|
+
const breakoutRoomSettings = useSelector(getBreakoutRoomSettings);
|
23
|
+
const autoMoveToBreakoutRoomCurrentlyInEffect = (assignedBreakoutRoom === null || assignedBreakoutRoom === void 0 ? void 0 : assignedBreakoutRoom.autoMoveParticipantToBreakoutRoom) &&
|
24
|
+
(latestNotifications === null || latestNotifications === void 0 ? void 0 : latestNotifications.find((notification) => notification.type === 'assignedBreakoutRoomOpened' || notification.type === 'assignedBreakoutRoomChanged'));
|
25
|
+
if (assignedBreakoutRoom && assignedBreakoutRoom.state === 'open' && !autoMoveToBreakoutRoomCurrentlyInEffect) {
|
26
|
+
return (React.createElement(Stack, { styles: bannerNotificationStyles },
|
27
|
+
React.createElement(Banner, { strings: {
|
28
|
+
title: assignedBreakoutRoom.displayName
|
29
|
+
? locale.strings.call.joinBreakoutRoomBannerTitle.replace('{roomName}', assignedBreakoutRoom.displayName)
|
30
|
+
: locale.strings.call.joinBreakoutRoomBannerTitle,
|
31
|
+
primaryButtonLabel: locale.strings.call.joinBreakoutRoomBannerButtonLabel
|
32
|
+
}, onClickButton: () => assignedBreakoutRoom.join(), iconProps: { iconName: 'NotificationBarBreakoutRoomPromptJoin' }, primaryButton: true })));
|
33
|
+
}
|
34
|
+
else if (breakoutRoomSettings && breakoutRoomSettings.disableReturnToMainMeeting !== true) {
|
35
|
+
return (React.createElement(Stack, { styles: bannerNotificationStyles },
|
36
|
+
React.createElement(Banner, { strings: {
|
37
|
+
title: locale.strings.call.returnFromBreakoutRoomBannerTitle,
|
38
|
+
primaryButtonLabel: locale.strings.call.returnFromBreakoutRoomBannerButtonLabel
|
39
|
+
}, onClickButton: () => adapter.returnFromBreakoutRoom(), iconProps: { iconName: 'NotificationBarBreakoutRoomClosingSoon' } })));
|
40
|
+
}
|
41
|
+
return undefined;
|
42
|
+
};
|
43
|
+
//# sourceMappingURL=BreakoutRoomsBanner.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"BreakoutRoomsBanner.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/BreakoutRoomsBanner.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,iDAAiD;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,iDAAiD;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,iDAAiD;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAKrE,iDAAiD;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,iDAAiD;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC9F,iDAAiD;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,iDAAiD;AACjD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAInC,EAA2B,EAAE;IAC5B,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEvD,MAAM,oBAAoB,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAClE,MAAM,oBAAoB,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAElE,MAAM,uCAAuC,GAC3C,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,iCAAiC;SACvD,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,IAAI,CACvB,CAAC,YAAY,EAAE,EAAE,CACf,YAAY,CAAC,IAAI,KAAK,4BAA4B,IAAI,YAAY,CAAC,IAAI,KAAK,6BAA6B,CAC5G,CAAA,CAAC;IAEJ,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,uCAAuC,EAAE,CAAC;QAC9G,OAAO,CACL,oBAAC,KAAK,IAAC,MAAM,EAAE,wBAAwB;YACrC,oBAAC,MAAM,IACL,OAAO,EAAE;oBACP,KAAK,EAAE,oBAAoB,CAAC,WAAW;wBACrC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,YAAY,EAAE,oBAAoB,CAAC,WAAW,CAAC;wBACzG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B;oBACnD,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC;iBAC1E,EACD,aAAa,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAChD,SAAS,EAAE,EAAE,QAAQ,EAAE,uCAAuC,EAAE,EAChE,aAAa,SACb,CACI,CACT,CAAC;IACJ,CAAC;SAAM,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,0BAA0B,KAAK,IAAI,EAAE,CAAC;QAC5F,OAAO,CACL,oBAAC,KAAK,IAAC,MAAM,EAAE,wBAAwB;YACrC,oBAAC,MAAM,IACL,OAAO,EAAE;oBACP,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC;oBAC5D,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,uCAAuC;iBAChF,EACD,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,EACrD,SAAS,EAAE,EAAE,QAAQ,EAAE,wCAAwC,EAAE,GACjE,CACI,CACT,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(breakout-rooms) */\nimport { Stack } from '@fluentui/react';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { ActiveNotification } from '@internal/react-components';\n/* @conditional-compile-remove(breakout-rooms) */\nimport React from 'react';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { bannerNotificationStyles } from '../styles/CallPage.styles';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { CommonCallAdapter } from '../adapter';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { CompositeLocale } from '../../localization';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { useSelector } from '../hooks/useSelector';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { getAssignedBreakoutRoom, getBreakoutRoomSettings } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { Banner } from './Banner';\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport const BreakoutRoomsBanner = (props: {\n latestNotifications: ActiveNotification[] | undefined;\n locale: CompositeLocale;\n adapter: CommonCallAdapter;\n}): JSX.Element | undefined => {\n const { latestNotifications, locale, adapter } = props;\n\n const assignedBreakoutRoom = useSelector(getAssignedBreakoutRoom);\n const breakoutRoomSettings = useSelector(getBreakoutRoomSettings);\n\n const autoMoveToBreakoutRoomCurrentlyInEffect =\n assignedBreakoutRoom?.autoMoveParticipantToBreakoutRoom &&\n latestNotifications?.find(\n (notification) =>\n notification.type === 'assignedBreakoutRoomOpened' || notification.type === 'assignedBreakoutRoomChanged'\n );\n\n if (assignedBreakoutRoom && assignedBreakoutRoom.state === 'open' && !autoMoveToBreakoutRoomCurrentlyInEffect) {\n return (\n <Stack styles={bannerNotificationStyles}>\n <Banner\n strings={{\n title: assignedBreakoutRoom.displayName\n ? locale.strings.call.joinBreakoutRoomBannerTitle.replace('{roomName}', assignedBreakoutRoom.displayName)\n : locale.strings.call.joinBreakoutRoomBannerTitle,\n primaryButtonLabel: locale.strings.call.joinBreakoutRoomBannerButtonLabel\n }}\n onClickButton={() => assignedBreakoutRoom.join()}\n iconProps={{ iconName: 'NotificationBarBreakoutRoomPromptJoin' }}\n primaryButton\n />\n </Stack>\n );\n } else if (breakoutRoomSettings && breakoutRoomSettings.disableReturnToMainMeeting !== true) {\n return (\n <Stack styles={bannerNotificationStyles}>\n <Banner\n strings={{\n title: locale.strings.call.returnFromBreakoutRoomBannerTitle,\n primaryButtonLabel: locale.strings.call.returnFromBreakoutRoomBannerButtonLabel\n }}\n onClickButton={() => adapter.returnFromBreakoutRoom()}\n iconProps={{ iconName: 'NotificationBarBreakoutRoomClosingSoon' }}\n />\n </Stack>\n );\n }\n return undefined;\n};\n"]}
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js
CHANGED
@@ -50,6 +50,8 @@ import { useHandlers } from '../hooks/useHandlers';
|
|
50
50
|
import { MoreDrawer } from '../../common/Drawer/MoreDrawer';
|
51
51
|
/* @conditional-compile-remove(breakout-rooms) */
|
52
52
|
import { useCompositeStringsForNotificationStackStrings } from '../hooks/useCompositeStringsForNotificationStack';
|
53
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
54
|
+
import { BreakoutRoomsBanner } from './BreakoutRoomsBanner';
|
53
55
|
/**
|
54
56
|
* @private
|
55
57
|
* Maximum number of remote video tiles that can be pinned
|
@@ -302,6 +304,13 @@ export const CallArrangement = (props) => {
|
|
302
304
|
: (_f = props.capabilitiesChangedNotificationBarProps) === null || _f === void 0 ? void 0 : _f.capabilitiesChangedNotifications;
|
303
305
|
/* @conditional-compile-remove(breakout-rooms) */
|
304
306
|
const notificationStackStrings = useCompositeStringsForNotificationStackStrings(locale);
|
307
|
+
let latestNotifications = props.latestNotifications;
|
308
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
309
|
+
// Filter out breakout room notification that prompts user to join breakout room when in mobile view. We will
|
310
|
+
// replace it with a non-dismissible banner
|
311
|
+
latestNotifications = props.mobileView
|
312
|
+
? (latestNotifications !== null && latestNotifications !== void 0 ? latestNotifications : []).filter((notification) => notification.type !== 'assignedBreakoutRoomOpenedPromptJoin')
|
313
|
+
: latestNotifications;
|
305
314
|
return (React.createElement("div", { ref: containerRef, className: mergeStyles(containerDivStyles), id: props.id },
|
306
315
|
React.createElement(Stack, { verticalFill: true, horizontalAlign: "stretch", className: containerClassName, "data-ui-id": props.dataUiId },
|
307
316
|
React.createElement(Stack, { reversed: true, horizontal: verticalControlBar, grow: true, styles: callArrangementContainerStyles(verticalControlBar) },
|
@@ -332,10 +341,12 @@ export const CallArrangement = (props) => {
|
|
332
341
|
React.createElement(Stack.Item, { styles: callGalleryStyles, grow: true },
|
333
342
|
React.createElement(Stack, { verticalFill: true, styles: mediaGalleryContainerStyles },
|
334
343
|
React.createElement(Stack.Item, { styles: notificationsContainerStyles },
|
344
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
345
|
+
props.mobileView && (React.createElement(BreakoutRoomsBanner, { latestNotifications: latestNotifications, locale: locale, adapter: adapter })),
|
335
346
|
props.showErrorNotifications && (React.createElement(Stack, { styles: notificationStackStyles, horizontalAlign: "center", verticalAlign: "center" },
|
336
347
|
React.createElement(NotificationStack, { onDismissNotification: props.onDismissError, activeNotifications: filteredLatestErrorNotifications }))),
|
337
|
-
|
338
|
-
React.createElement(NotificationStack, { activeNotifications:
|
348
|
+
latestNotifications && (React.createElement(Stack, { styles: notificationStackStyles, horizontalAlign: "center", verticalAlign: "center" },
|
349
|
+
React.createElement(NotificationStack, { activeNotifications: latestNotifications, onDismissNotification: props.onDismissNotification,
|
339
350
|
/* @conditional-compile-remove(breakout-rooms) */
|
340
351
|
strings: notificationStackStrings }))),
|
341
352
|
props.capabilitiesChangedNotificationBarProps &&
|
@@ -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 ErrorBarProps,\n useTheme\n} from '@internal/react-components';\nimport { ActiveNotification, NotificationStack } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { VideoGallery } from '@internal/react-components';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { useEffect } from 'react';\nimport { useCallback } from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { CaptionsBanner } from '../../common/CaptionsBanner';\nimport { containerDivStyles } from '../../common/ContainerRectProps';\nimport { compositeMinWidthRem } from '../../common/styles/Composite.styles';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { CallControls, CallControlsProps } from '../components/CallControls';\nimport { CommonCallControlBar } from '../../common/ControlBar/CommonCallControlBar';\nimport {\n callArrangementContainerStyles,\n notificationsContainerStyles,\n containerStyleDesktop,\n containerStyleMobile,\n mediaGalleryContainerStyles,\n galleryParentContainerStyles,\n bannerNotificationStyles,\n CONTROL_BAR_Z_INDEX,\n DRAWER_Z_INDEX\n} from '../styles/CallPage.styles';\n\nimport { notificationStackStyles } from '../styles/CallPage.styles';\nimport { MutedNotificationProps } from './MutedNotification';\nimport { CallAdapter } from '../adapter';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { PreparedMoreDrawer } from '../../common/Drawer/PreparedMoreDrawer';\nimport { getIsTeamsMeeting, getRemoteParticipants } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { getPage } from '../selectors/baseSelectors';\nimport { getCallStatus, getCaptionsStatus } from '../selectors/baseSelectors';\nimport { drawerContainerStyles } from '../styles/CallComposite.styles';\nimport { SidePane } from './SidePane/SidePane';\nimport { usePeoplePane } from './SidePane/usePeoplePane';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { useMeetingPhoneInfoPane } from './SidePane/useMeetingPhoneInfo';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { getTeamsMeetingCoordinates } from '../selectors/baseSelectors';\n\nimport {\n useVideoEffectsPane,\n VIDEO_EFFECTS_SIDE_PANE_ID,\n VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM\n} from './SidePane/useVideoEffectsPane';\nimport { isDisabled } from '../utils';\nimport { SidePaneRenderer, useIsSidePaneOpen } from './SidePane/SidePaneProvider';\n\nimport { useIsParticularSidePaneOpen } from './SidePane/SidePaneProvider';\nimport { ModalLocalAndRemotePIP } from '../../common/ModalLocalAndRemotePIP';\nimport { getPipStyles } from '../../common/styles/ModalLocalAndRemotePIP.styles';\nimport { useMinMaxDragPosition } from '../../common/utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { CommonCallControlOptions } from '../../common/types/CommonCallControlOptions';\n\nimport { localVideoSelector } from '../../CallComposite/selectors/localVideoStreamSelector';\n\nimport {\n CapabilitiesChangedNotificationBar,\n CapabilitiesChangeNotificationBarProps\n} from './CapabilitiesChangedNotificationBar';\nimport { useLocale } from '../../localization';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { PromptProps } from './Prompt';\nimport {\n useLocalSpotlightCallbacksWithPrompt,\n useRemoteSpotlightCallbacksWithPrompt,\n useStopAllSpotlightCallbackWithPrompt\n} from '../utils/spotlightUtils';\n/* @conditional-compile-remove(acs-close-captions) */\nimport { getCaptionsKind, getIsTeamsCall } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(soft-mute) */\nimport { useHandlers } from '../hooks/useHandlers';\n/* @conditional-compile-remove(soft-mute) */\nimport { MoreDrawer } from '../../common/Drawer/MoreDrawer';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { useCompositeStringsForNotificationStackStrings } from '../hooks/useCompositeStringsForNotificationStack';\n\n/**\n * @private\n */\nexport interface CallArrangementProps {\n id?: string;\n complianceBannerProps: _ComplianceBannerProps;\n errorBarProps: ErrorBarProps | false;\n showErrorNotifications: boolean;\n mutedNotificationProps?: MutedNotificationProps;\n callControlProps: CallControlsProps;\n onRenderGalleryContent: () => JSX.Element;\n dataUiId: string;\n mobileView: boolean;\n modalLayerHostId: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n latestErrors: ActiveErrorMessage[] | ActiveNotification[];\n latestNotifications?: ActiveNotification[];\n onDismissError: (error: ActiveErrorMessage | ActiveNotification) => void;\n\n onDismissNotification?: (notification: ActiveNotification) => void;\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n userSetGalleryLayout?: VideoGalleryLayout;\n\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n onCloseChatPane?: () => void;\n onSetDialpadPage?: () => void;\n dtmfDialerPresent?: boolean;\n\n setIsPromptOpen?: (isOpen: boolean) => void;\n\n setPromptProps?: (props: PromptProps) => void;\n\n hideSpotlightButtons?: boolean;\n pinnedParticipants?: string[];\n setPinnedParticipants?: (pinnedParticipants: string[]) => void;\n doNotShowCameraAccessNotifications?: boolean;\n}\n\n/**\n * @private\n * Maximum number of remote video tiles that can be pinned\n */\nexport const MAX_PINNED_REMOTE_VIDEO_TILES = 4;\n\n/**\n * @private\n */\nexport const CallArrangement = (props: CallArrangementProps): JSX.Element => {\n const containerClassName = useMemo(() => {\n return props.mobileView ? containerStyleMobile : containerStyleDesktop;\n }, [props.mobileView]);\n\n const theme = useTheme();\n const callGalleryStyles = useMemo(\n () => galleryParentContainerStyles(theme.palette.neutralLighterAlt),\n [theme.palette.neutralLighterAlt]\n );\n\n const peopleButtonRef = useRef<IButton>(null);\n const cameraButtonRef = useRef<IButton>(null);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const containerWidth = _useContainerWidth(containerRef);\n const containerHeight = _useContainerHeight(containerRef);\n\n const isInLobby = _isInLobbyOrConnecting(useSelector(callStatusSelector).callStatus);\n\n const { updateSidePaneRenderer } = props;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const isInLocalHold = useSelector(getPage) === 'hold';\n\n const adapter = useAdapter();\n\n const [participantActioned, setParticipantActioned] = useState<string>();\n const remoteParticipants = useSelector(getRemoteParticipants);\n const [drawerMenuItems, setDrawerMenuItems] = useState<_DrawerMenuItemProps[]>([]);\n useEffect(() => {\n const participantIsActionedButIsNotPresent =\n participantActioned && remoteParticipants?.[participantActioned] === undefined;\n if (participantIsActionedButIsNotPresent) {\n setDrawerMenuItems([]);\n }\n }, [participantActioned, remoteParticipants]);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const conferencePhoneInfo = useSelector(getTeamsMeetingCoordinates);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const meetingPhoneInfoPaneProps = {\n updateSidePaneRenderer,\n mobileView: props.mobileView,\n conferencePhoneInfo: conferencePhoneInfo\n };\n\n const peoplePaneProps = useMemo(\n () => ({\n updateSidePaneRenderer,\n setDrawerMenuItems,\n inviteLink: props.callControlProps.callInvitationURL,\n onFetchAvatarPersonaData: props.onFetchAvatarPersonaData,\n onFetchParticipantMenuItems: props.callControlProps?.onFetchParticipantMenuItems,\n mobileView: props.mobileView,\n peopleButtonRef,\n setParticipantActioned\n }),\n [\n updateSidePaneRenderer,\n props.callControlProps.callInvitationURL,\n props.callControlProps?.onFetchParticipantMenuItems,\n props.onFetchAvatarPersonaData,\n props.mobileView,\n peopleButtonRef,\n setParticipantActioned\n ]\n );\n\n const locale = useLocale();\n const role = adapter.getState().call?.role;\n const videoGalleryProps = usePropsFor(VideoGallery);\n /* @conditional-compile-remove(soft-mute) */\n const muteAllHandlers = useHandlers(MoreDrawer);\n const { setPromptProps, setIsPromptOpen, hideSpotlightButtons } = props;\n const {\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n /* @conditional-compile-remove(soft-mute) */\n onMuteParticipant,\n spotlightedParticipants,\n maxParticipantsToSpotlight,\n localParticipant\n } = videoGalleryProps;\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const [showTeamsMeetingConferenceModal, setShowTeamsMeetingConferenceModal] = useState(false);\n /* @conditional-compile-remove(teams-meeting-conference) */\n const toggleTeamsMeetingConferenceModal = useCallback((): void => {\n setShowTeamsMeetingConferenceModal(!showTeamsMeetingConferenceModal);\n }, [showTeamsMeetingConferenceModal]);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const { isMeetingPhoneInfoPaneOpen, openMeetingPhoneInfoPane, closeMeetingPhoneInfoPane } = useMeetingPhoneInfoPane({\n ...meetingPhoneInfoPaneProps\n });\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const toggleMeetingPhoneInfoPane = useCallback(() => {\n if (isMeetingPhoneInfoPaneOpen) {\n closeMeetingPhoneInfoPane();\n } else {\n openMeetingPhoneInfoPane();\n }\n }, [closeMeetingPhoneInfoPane, isMeetingPhoneInfoPaneOpen, openMeetingPhoneInfoPane]);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const onMeetingPhoneInfoClicked = useCallback(() => {\n setShowDrawer(false);\n toggleMeetingPhoneInfoPane();\n }, [toggleMeetingPhoneInfoPane]);\n\n const { pinnedParticipants, setPinnedParticipants } = props;\n const onPinParticipant = useCallback(\n (userId: string) => {\n if (pinnedParticipants && pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES) {\n return;\n }\n if (pinnedParticipants && setPinnedParticipants && !pinnedParticipants.includes(userId)) {\n setPinnedParticipants(pinnedParticipants.concat(userId));\n }\n },\n [pinnedParticipants, setPinnedParticipants]\n );\n\n const onUnpinParticipant = useCallback(\n (userId: string) => {\n if (pinnedParticipants && setPinnedParticipants) {\n setPinnedParticipants(pinnedParticipants.filter((participantId) => participantId !== userId));\n }\n },\n [setPinnedParticipants, pinnedParticipants]\n );\n\n const pinPeoplePaneProps = useMemo(() => {\n return {\n pinnedParticipants: pinnedParticipants,\n onPinParticipant: onPinParticipant,\n onUnpinParticipant: onUnpinParticipant,\n disablePinMenuItem: pinnedParticipants && pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES\n };\n }, [onPinParticipant, onUnpinParticipant, pinnedParticipants]);\n\n const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const canRemoveSpotlight =\n adapter.getState().call?.capabilitiesFeature?.capabilities.removeParticipantsSpotlight.isPresent;\n const stopAllSpotlight = useMemo(\n () => (canRemoveSpotlight ? () => adapter.stopAllSpotlight() : undefined),\n [canRemoveSpotlight, adapter]\n );\n\n const { stopAllSpotlightWithPrompt } = useStopAllSpotlightCallbackWithPrompt(\n stopAllSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const onMuteParticipantPeoplePaneProps = useMemo(() => {\n /* @conditional-compile-remove(soft-mute) */\n return {\n onMuteParticipant: ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(role ?? '')\n ? onMuteParticipant\n : undefined,\n onMuteAllRemoteParticipants: ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(role ?? '')\n ? muteAllHandlers.onMuteAllRemoteParticipants\n : undefined\n };\n return {};\n }, [\n /* @conditional-compile-remove(soft-mute) */ onMuteParticipant,\n /* @conditional-compile-remove(soft-mute) */ role,\n /* @conditional-compile-remove(soft-mute) */ muteAllHandlers.onMuteAllRemoteParticipants\n ]);\n\n const spotlightPeoplePaneProps = useMemo(() => {\n return {\n spotlightedParticipantUserIds: spotlightedParticipants,\n onStartLocalSpotlight: hideSpotlightButtons ? undefined : onStartLocalSpotlightWithPrompt,\n onStopLocalSpotlight: hideSpotlightButtons ? undefined : onStopLocalSpotlightWithPrompt,\n onStartRemoteSpotlight: hideSpotlightButtons ? undefined : onStartRemoteSpotlightWithPrompt,\n onStopRemoteSpotlight: hideSpotlightButtons ? undefined : onStopRemoteSpotlightWithPrompt,\n onStopAllSpotlight: hideSpotlightButtons ? undefined : stopAllSpotlightWithPrompt,\n maxParticipantsToSpotlight\n };\n return {};\n }, [\n hideSpotlightButtons,\n maxParticipantsToSpotlight,\n onStartLocalSpotlightWithPrompt,\n onStartRemoteSpotlightWithPrompt,\n onStopLocalSpotlightWithPrompt,\n onStopRemoteSpotlightWithPrompt,\n stopAllSpotlightWithPrompt,\n spotlightedParticipants\n ]);\n\n const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane({\n ...peoplePaneProps,\n ...spotlightPeoplePaneProps,\n ...onMuteParticipantPeoplePaneProps,\n ...pinPeoplePaneProps\n });\n const togglePeoplePane = useCallback(() => {\n if (isPeoplePaneOpen) {\n closePeoplePane();\n } else {\n openPeoplePane();\n }\n }, [closePeoplePane, isPeoplePaneOpen, openPeoplePane]);\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n useEffect(() => {\n if (isInLocalHold) {\n // close side pane on local hold\n updateSidePaneRenderer(undefined);\n }\n }, [updateSidePaneRenderer, isInLocalHold, isPeoplePaneOpen, closePeoplePane]);\n\n const isSidePaneOpen = useIsSidePaneOpen();\n\n const [renderGallery, setRenderGallery] = useState<boolean>(!isSidePaneOpen && props.mobileView);\n\n useEffect(() => {\n if (isSidePaneOpen && props.mobileView) {\n setRenderGallery(false);\n } else {\n setRenderGallery(true);\n }\n }, [props.mobileView, isSidePaneOpen]);\n\n const modalStrings = { dismissModalAriaLabel: locale.strings.call.dismissModalAriaLabel };\n\n const isMobileWithActivePane = props.mobileView && isSidePaneOpen;\n\n const callCompositeContainerCSS = useMemo((): React.CSSProperties => {\n return {\n display: isMobileWithActivePane ? 'none' : 'flex',\n minWidth: props.mobileView ? 'unset' : `${compositeMinWidthRem}rem`,\n width: '100%',\n height: '100%',\n position: 'relative'\n };\n }, [isMobileWithActivePane, props.mobileView]);\n\n const onResolveVideoEffectDependency = adapter.getState().onResolveVideoEffectDependency;\n\n const { openVideoEffectsPane } = useVideoEffectsPane(\n props.updateSidePaneRenderer,\n props.mobileView,\n props.latestErrors as ActiveErrorMessage[],\n props.onDismissError,\n cameraButtonRef\n );\n const [showDrawer, setShowDrawer] = useState(false);\n const onMoreButtonClicked = useCallback(() => {\n setShowDrawer(true);\n }, []);\n const closeDrawer = useCallback(() => {\n setShowDrawer(false);\n }, []);\n const onMoreDrawerPeopleClicked = useCallback(() => {\n setShowDrawer(false);\n togglePeoplePane();\n }, [togglePeoplePane]);\n\n const drawerContainerStylesValue = useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);\n\n let filteredLatestErrorNotifications: ActiveNotification[] = props.showErrorNotifications\n ? (props.latestErrors as ActiveNotification[])\n : [];\n\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n // TODO: move this logic to the error bar selector once role is plumbed from the headless SDK\n if (role === 'Consumer' && (props.errorBarProps || props.showErrorNotifications)) {\n filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter(\n (e) => e.type !== 'callCameraAccessDenied' && e.type !== 'callCameraAccessDeniedSafari'\n );\n }\n\n if (props.doNotShowCameraAccessNotifications) {\n filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter(\n (e) => e.type !== 'callCameraAccessDenied' && e.type !== 'callCameraAccessDeniedSafari'\n );\n }\n\n const isVideoPaneOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n\n if ((isVideoPaneOpen || !isCameraOn) && (props.errorBarProps || props.showErrorNotifications)) {\n filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter(\n (e) => e.type !== 'unableToStartVideoEffect'\n );\n }\n\n /* @conditional-compile-remove(acs-close-captions) */\n const isTeamsCaptions = useSelector(getCaptionsKind) === 'TeamsCaptions';\n const isTeamsMeeting = useSelector(getIsTeamsMeeting);\n /* @conditional-compile-remove(acs-close-captions) */\n const isTeamsCall = useSelector(getIsTeamsCall);\n const useTeamsCaptions =\n isTeamsMeeting ||\n /* @conditional-compile-remove(acs-close-captions) */ isTeamsCall ||\n /* @conditional-compile-remove(acs-close-captions) */ isTeamsCaptions;\n const hasJoinedCall = useSelector(getCallStatus) === 'Connected';\n const isCaptionsOn = useSelector(getCaptionsStatus);\n const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);\n const pipStyles = useMemo(() => getPipStyles(theme), [theme]);\n\n if (isTeamsMeeting) {\n filteredLatestErrorNotifications\n .filter((notification) => notification.type === 'teamsMeetingCallNetworkQualityLow')\n .forEach((notification) => {\n notification.onClickPrimaryButton = props.mobileView\n ? toggleMeetingPhoneInfoPane\n : toggleTeamsMeetingConferenceModal;\n });\n }\n\n const verticalControlBar =\n props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;\n\n // Filter out shareScreen capability notifications if on mobile\n const filteredCapabilitesChangedNotifications = props.mobileView\n ? props.capabilitiesChangedNotificationBarProps?.capabilitiesChangedNotifications.filter(\n (notification) => notification.capabilityName !== 'shareScreen'\n )\n : props.capabilitiesChangedNotificationBarProps?.capabilitiesChangedNotifications;\n\n /* @conditional-compile-remove(breakout-rooms) */\n const notificationStackStrings = useCompositeStringsForNotificationStackStrings(locale);\n\n return (\n <div ref={containerRef} className={mergeStyles(containerDivStyles)} id={props.id}>\n <Stack verticalFill horizontalAlign=\"stretch\" className={containerClassName} data-ui-id={props.dataUiId}>\n <Stack\n reversed\n horizontal={verticalControlBar}\n grow\n styles={callArrangementContainerStyles(verticalControlBar)}\n >\n {props.callControlProps?.options !== false && !isMobileWithActivePane && (\n <Stack\n verticalAlign={'center'}\n className={mergeStyles({\n zIndex: CONTROL_BAR_Z_INDEX,\n padding: verticalControlBar ? '0.25rem' : 'unset'\n })}\n >\n {isLegacyCallControlEnabled(props.callControlProps?.options) ? (\n <CallControls\n {...props.callControlProps}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n isMobile={props.mobileView}\n /* @conditional-compile-remove(one-to-n-calling) */\n peopleButtonChecked={isPeoplePaneOpen}\n /* @conditional-compile-remove(one-to-n-calling) */\n onPeopleButtonClicked={togglePeoplePane}\n displayVertical={verticalControlBar}\n />\n ) : (\n <CommonCallControlBar\n {...props.callControlProps}\n callControls={props.callControlProps.options}\n callAdapter={adapter as CallAdapter}\n mobileView={props.mobileView}\n disableButtonsForLobbyPage={isInLobby}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n peopleButtonChecked={isPeoplePaneOpen}\n onPeopleButtonClicked={togglePeoplePane}\n onMoreButtonClicked={onMoreButtonClicked}\n isCaptionsSupported={\n (useTeamsCaptions && hasJoinedCall) ||\n /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall\n }\n useTeamsCaptions={useTeamsCaptions}\n isCaptionsOn={isCaptionsOn}\n onClickVideoEffects={onResolveVideoEffectDependency ? openVideoEffectsPane : undefined}\n displayVertical={verticalControlBar}\n onUserSetOverflowGalleryPositionChange={props.onUserSetOverflowGalleryPositionChange}\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n userSetGalleryLayout={props.userSetGalleryLayout}\n onSetDialpadPage={props.onSetDialpadPage}\n dtmfDialerPresent={props.dtmfDialerPresent}\n peopleButtonRef={peopleButtonRef}\n cameraButtonRef={cameraButtonRef}\n onStopLocalSpotlight={\n !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined\n }\n /* @conditional-compile-remove(teams-meeting-conference) */\n onToggleTeamsMeetingConferenceModal={toggleTeamsMeetingConferenceModal}\n /* @conditional-compile-remove(teams-meeting-conference) */\n teamsMeetingConferenceModalPresent={showTeamsMeetingConferenceModal}\n />\n )}\n </Stack>\n )}\n {props.callControlProps?.options !== false && showDrawer && (\n <Stack styles={drawerContainerStylesValue}>\n <PreparedMoreDrawer\n callControls={props.callControlProps.options}\n onLightDismiss={closeDrawer}\n onPeopleButtonClicked={onMoreDrawerPeopleClicked}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n isCaptionsSupported={\n (useTeamsCaptions && hasJoinedCall) ||\n /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall\n }\n useTeamsCaptions={useTeamsCaptions}\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n userSetGalleryLayout={props.userSetGalleryLayout}\n onSetDialpadPage={props.onSetDialpadPage}\n dtmfDialerPresent={props.dtmfDialerPresent}\n reactionResources={adapter.getState().reactions}\n /* @conditional-compile-remove(teams-meeting-conference) */\n onClickMeetingPhoneInfo={onMeetingPhoneInfoClicked}\n />\n </Stack>\n )}\n <Stack horizontal grow>\n <Stack.Item style={callCompositeContainerCSS}>\n <Stack.Item styles={callGalleryStyles} grow>\n <Stack verticalFill styles={mediaGalleryContainerStyles}>\n <Stack.Item styles={notificationsContainerStyles}>\n {props.showErrorNotifications && (\n <Stack styles={notificationStackStyles} horizontalAlign=\"center\" verticalAlign=\"center\">\n <NotificationStack\n onDismissNotification={props.onDismissError}\n activeNotifications={filteredLatestErrorNotifications}\n />\n </Stack>\n )}\n {props.latestNotifications && (\n <Stack styles={notificationStackStyles} horizontalAlign=\"center\" verticalAlign=\"center\">\n <NotificationStack\n activeNotifications={props.latestNotifications}\n onDismissNotification={props.onDismissNotification}\n /* @conditional-compile-remove(breakout-rooms) */\n strings={notificationStackStrings}\n />\n </Stack>\n )}\n {props.capabilitiesChangedNotificationBarProps &&\n props.capabilitiesChangedNotificationBarProps.capabilitiesChangedNotifications.length > 0 && (\n <Stack styles={bannerNotificationStyles}>\n <CapabilitiesChangedNotificationBar\n {...props.capabilitiesChangedNotificationBarProps}\n capabilitiesChangedNotifications={filteredCapabilitesChangedNotifications ?? []}\n />\n </Stack>\n )}\n </Stack.Item>\n {renderGallery && props.onRenderGalleryContent && props.onRenderGalleryContent()}\n {true &&\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (\n <CaptionsBanner\n isMobile={props.mobileView}\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n useTeamsCaptions={useTeamsCaptions}\n />\n )}\n </Stack>\n </Stack.Item>\n </Stack.Item>\n <SidePane\n mobileView={props.mobileView}\n maxWidth={isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined}\n minWidth={isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n onPeopleButtonClicked={\n props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)\n ? undefined\n : togglePeoplePane\n }\n disablePeopleButton={\n typeof props.callControlProps.options !== 'boolean' &&\n isDisabled(props.callControlProps.options?.participantsButton)\n }\n onChatButtonClicked={props.mobileChatTabHeader?.onClick}\n disableChatButton={props.mobileChatTabHeader?.disabled}\n />\n {props.mobileView && (\n <ModalLocalAndRemotePIP\n modalLayerHostId={props.modalLayerHostId}\n hidden={!isSidePaneOpen}\n styles={pipStyles}\n strings={modalStrings}\n minDragPosition={minMaxDragPosition.minDragPosition}\n maxDragPosition={minMaxDragPosition.maxDragPosition}\n onDismissSidePane={() => {\n closePeoplePane();\n if (props.onCloseChatPane) {\n props.onCloseChatPane();\n }\n }}\n />\n )}\n {drawerMenuItems.length > 0 && (\n <Stack styles={drawerContainerStyles()}>\n <_DrawerMenu onLightDismiss={() => setDrawerMenuItems([])} items={drawerMenuItems} />\n </Stack>\n )}\n </Stack>\n </Stack>\n </Stack>\n </div>\n );\n};\n\nconst isLegacyCallControlEnabled = (options?: boolean | CallControlOptions): boolean => {\n return !!options && options !== true && options?.legacyControlBarExperience === true;\n};\n\nconst shouldShowPeopleTabHeaderButton = (callControls?: boolean | CommonCallControlOptions): boolean => {\n if (callControls === undefined || callControls === true) {\n return true;\n }\n if (callControls === false) {\n return false;\n }\n return callControls.participantsButton !== false && callControls.peopleButton !== false;\n};\n"]}
|
1
|
+
{"version":3,"file":"CallArrangement.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/CallArrangement.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IButton, mergeStyles, Stack } from '@fluentui/react';\nimport { _isInCall, _isInLobbyOrConnecting } from '@internal/calling-component-bindings';\nimport {\n _ComplianceBanner,\n _ComplianceBannerProps,\n _DrawerMenu,\n _DrawerMenuItemProps,\n _useContainerHeight,\n _useContainerWidth,\n ActiveErrorMessage,\n ErrorBarProps,\n useTheme\n} from '@internal/react-components';\nimport { ActiveNotification, NotificationStack } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { VideoGallery } from '@internal/react-components';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { useEffect } from 'react';\nimport { useCallback } from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { CaptionsBanner } from '../../common/CaptionsBanner';\nimport { containerDivStyles } from '../../common/ContainerRectProps';\nimport { compositeMinWidthRem } from '../../common/styles/Composite.styles';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { CallControls, CallControlsProps } from '../components/CallControls';\nimport { CommonCallControlBar } from '../../common/ControlBar/CommonCallControlBar';\nimport {\n callArrangementContainerStyles,\n notificationsContainerStyles,\n containerStyleDesktop,\n containerStyleMobile,\n mediaGalleryContainerStyles,\n galleryParentContainerStyles,\n bannerNotificationStyles,\n CONTROL_BAR_Z_INDEX,\n DRAWER_Z_INDEX\n} from '../styles/CallPage.styles';\n\nimport { notificationStackStyles } from '../styles/CallPage.styles';\nimport { MutedNotificationProps } from './MutedNotification';\nimport { CallAdapter } from '../adapter';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { CallControlOptions } from '../types/CallControlOptions';\nimport { PreparedMoreDrawer } from '../../common/Drawer/PreparedMoreDrawer';\nimport { getIsTeamsMeeting, getRemoteParticipants } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { getPage } from '../selectors/baseSelectors';\nimport { getCallStatus, getCaptionsStatus } from '../selectors/baseSelectors';\nimport { drawerContainerStyles } from '../styles/CallComposite.styles';\nimport { SidePane } from './SidePane/SidePane';\nimport { usePeoplePane } from './SidePane/usePeoplePane';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { useMeetingPhoneInfoPane } from './SidePane/useMeetingPhoneInfo';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { getTeamsMeetingCoordinates } from '../selectors/baseSelectors';\n\nimport {\n useVideoEffectsPane,\n VIDEO_EFFECTS_SIDE_PANE_ID,\n VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM\n} from './SidePane/useVideoEffectsPane';\nimport { isDisabled } from '../utils';\nimport { SidePaneRenderer, useIsSidePaneOpen } from './SidePane/SidePaneProvider';\n\nimport { useIsParticularSidePaneOpen } from './SidePane/SidePaneProvider';\nimport { ModalLocalAndRemotePIP } from '../../common/ModalLocalAndRemotePIP';\nimport { getPipStyles } from '../../common/styles/ModalLocalAndRemotePIP.styles';\nimport { useMinMaxDragPosition } from '../../common/utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { CommonCallControlOptions } from '../../common/types/CommonCallControlOptions';\n\nimport { localVideoSelector } from '../../CallComposite/selectors/localVideoStreamSelector';\n\nimport {\n CapabilitiesChangedNotificationBar,\n CapabilitiesChangeNotificationBarProps\n} from './CapabilitiesChangedNotificationBar';\nimport { useLocale } from '../../localization';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { PromptProps } from './Prompt';\nimport {\n useLocalSpotlightCallbacksWithPrompt,\n useRemoteSpotlightCallbacksWithPrompt,\n useStopAllSpotlightCallbackWithPrompt\n} from '../utils/spotlightUtils';\n/* @conditional-compile-remove(acs-close-captions) */\nimport { getCaptionsKind, getIsTeamsCall } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(soft-mute) */\nimport { useHandlers } from '../hooks/useHandlers';\n/* @conditional-compile-remove(soft-mute) */\nimport { MoreDrawer } from '../../common/Drawer/MoreDrawer';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { useCompositeStringsForNotificationStackStrings } from '../hooks/useCompositeStringsForNotificationStack';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { BreakoutRoomsBanner } from './BreakoutRoomsBanner';\n\n/**\n * @private\n */\nexport interface CallArrangementProps {\n id?: string;\n complianceBannerProps: _ComplianceBannerProps;\n errorBarProps: ErrorBarProps | false;\n showErrorNotifications: boolean;\n mutedNotificationProps?: MutedNotificationProps;\n callControlProps: CallControlsProps;\n onRenderGalleryContent: () => JSX.Element;\n dataUiId: string;\n mobileView: boolean;\n modalLayerHostId: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n latestErrors: ActiveErrorMessage[] | ActiveNotification[];\n latestNotifications?: ActiveNotification[];\n onDismissError: (error: ActiveErrorMessage | ActiveNotification) => void;\n\n onDismissNotification?: (notification: ActiveNotification) => void;\n onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n userSetGalleryLayout?: VideoGalleryLayout;\n\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n onCloseChatPane?: () => void;\n onSetDialpadPage?: () => void;\n dtmfDialerPresent?: boolean;\n\n setIsPromptOpen?: (isOpen: boolean) => void;\n\n setPromptProps?: (props: PromptProps) => void;\n\n hideSpotlightButtons?: boolean;\n pinnedParticipants?: string[];\n setPinnedParticipants?: (pinnedParticipants: string[]) => void;\n doNotShowCameraAccessNotifications?: boolean;\n}\n\n/**\n * @private\n * Maximum number of remote video tiles that can be pinned\n */\nexport const MAX_PINNED_REMOTE_VIDEO_TILES = 4;\n\n/**\n * @private\n */\nexport const CallArrangement = (props: CallArrangementProps): JSX.Element => {\n const containerClassName = useMemo(() => {\n return props.mobileView ? containerStyleMobile : containerStyleDesktop;\n }, [props.mobileView]);\n\n const theme = useTheme();\n const callGalleryStyles = useMemo(\n () => galleryParentContainerStyles(theme.palette.neutralLighterAlt),\n [theme.palette.neutralLighterAlt]\n );\n\n const peopleButtonRef = useRef<IButton>(null);\n const cameraButtonRef = useRef<IButton>(null);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const containerWidth = _useContainerWidth(containerRef);\n const containerHeight = _useContainerHeight(containerRef);\n\n const isInLobby = _isInLobbyOrConnecting(useSelector(callStatusSelector).callStatus);\n\n const { updateSidePaneRenderer } = props;\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const isInLocalHold = useSelector(getPage) === 'hold';\n\n const adapter = useAdapter();\n\n const [participantActioned, setParticipantActioned] = useState<string>();\n const remoteParticipants = useSelector(getRemoteParticipants);\n const [drawerMenuItems, setDrawerMenuItems] = useState<_DrawerMenuItemProps[]>([]);\n useEffect(() => {\n const participantIsActionedButIsNotPresent =\n participantActioned && remoteParticipants?.[participantActioned] === undefined;\n if (participantIsActionedButIsNotPresent) {\n setDrawerMenuItems([]);\n }\n }, [participantActioned, remoteParticipants]);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const conferencePhoneInfo = useSelector(getTeamsMeetingCoordinates);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const meetingPhoneInfoPaneProps = {\n updateSidePaneRenderer,\n mobileView: props.mobileView,\n conferencePhoneInfo: conferencePhoneInfo\n };\n\n const peoplePaneProps = useMemo(\n () => ({\n updateSidePaneRenderer,\n setDrawerMenuItems,\n inviteLink: props.callControlProps.callInvitationURL,\n onFetchAvatarPersonaData: props.onFetchAvatarPersonaData,\n onFetchParticipantMenuItems: props.callControlProps?.onFetchParticipantMenuItems,\n mobileView: props.mobileView,\n peopleButtonRef,\n setParticipantActioned\n }),\n [\n updateSidePaneRenderer,\n props.callControlProps.callInvitationURL,\n props.callControlProps?.onFetchParticipantMenuItems,\n props.onFetchAvatarPersonaData,\n props.mobileView,\n peopleButtonRef,\n setParticipantActioned\n ]\n );\n\n const locale = useLocale();\n const role = adapter.getState().call?.role;\n const videoGalleryProps = usePropsFor(VideoGallery);\n /* @conditional-compile-remove(soft-mute) */\n const muteAllHandlers = useHandlers(MoreDrawer);\n const { setPromptProps, setIsPromptOpen, hideSpotlightButtons } = props;\n const {\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n /* @conditional-compile-remove(soft-mute) */\n onMuteParticipant,\n spotlightedParticipants,\n maxParticipantsToSpotlight,\n localParticipant\n } = videoGalleryProps;\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const [showTeamsMeetingConferenceModal, setShowTeamsMeetingConferenceModal] = useState(false);\n /* @conditional-compile-remove(teams-meeting-conference) */\n const toggleTeamsMeetingConferenceModal = useCallback((): void => {\n setShowTeamsMeetingConferenceModal(!showTeamsMeetingConferenceModal);\n }, [showTeamsMeetingConferenceModal]);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const { isMeetingPhoneInfoPaneOpen, openMeetingPhoneInfoPane, closeMeetingPhoneInfoPane } = useMeetingPhoneInfoPane({\n ...meetingPhoneInfoPaneProps\n });\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const toggleMeetingPhoneInfoPane = useCallback(() => {\n if (isMeetingPhoneInfoPaneOpen) {\n closeMeetingPhoneInfoPane();\n } else {\n openMeetingPhoneInfoPane();\n }\n }, [closeMeetingPhoneInfoPane, isMeetingPhoneInfoPaneOpen, openMeetingPhoneInfoPane]);\n\n /* @conditional-compile-remove(teams-meeting-conference) */\n const onMeetingPhoneInfoClicked = useCallback(() => {\n setShowDrawer(false);\n toggleMeetingPhoneInfoPane();\n }, [toggleMeetingPhoneInfoPane]);\n\n const { pinnedParticipants, setPinnedParticipants } = props;\n const onPinParticipant = useCallback(\n (userId: string) => {\n if (pinnedParticipants && pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES) {\n return;\n }\n if (pinnedParticipants && setPinnedParticipants && !pinnedParticipants.includes(userId)) {\n setPinnedParticipants(pinnedParticipants.concat(userId));\n }\n },\n [pinnedParticipants, setPinnedParticipants]\n );\n\n const onUnpinParticipant = useCallback(\n (userId: string) => {\n if (pinnedParticipants && setPinnedParticipants) {\n setPinnedParticipants(pinnedParticipants.filter((participantId) => participantId !== userId));\n }\n },\n [setPinnedParticipants, pinnedParticipants]\n );\n\n const pinPeoplePaneProps = useMemo(() => {\n return {\n pinnedParticipants: pinnedParticipants,\n onPinParticipant: onPinParticipant,\n onUnpinParticipant: onUnpinParticipant,\n disablePinMenuItem: pinnedParticipants && pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES\n };\n }, [onPinParticipant, onUnpinParticipant, pinnedParticipants]);\n\n const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const canRemoveSpotlight =\n adapter.getState().call?.capabilitiesFeature?.capabilities.removeParticipantsSpotlight.isPresent;\n const stopAllSpotlight = useMemo(\n () => (canRemoveSpotlight ? () => adapter.stopAllSpotlight() : undefined),\n [canRemoveSpotlight, adapter]\n );\n\n const { stopAllSpotlightWithPrompt } = useStopAllSpotlightCallbackWithPrompt(\n stopAllSpotlight,\n setIsPromptOpen,\n setPromptProps\n );\n\n const onMuteParticipantPeoplePaneProps = useMemo(() => {\n /* @conditional-compile-remove(soft-mute) */\n return {\n onMuteParticipant: ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(role ?? '')\n ? onMuteParticipant\n : undefined,\n onMuteAllRemoteParticipants: ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(role ?? '')\n ? muteAllHandlers.onMuteAllRemoteParticipants\n : undefined\n };\n return {};\n }, [\n /* @conditional-compile-remove(soft-mute) */ onMuteParticipant,\n /* @conditional-compile-remove(soft-mute) */ role,\n /* @conditional-compile-remove(soft-mute) */ muteAllHandlers.onMuteAllRemoteParticipants\n ]);\n\n const spotlightPeoplePaneProps = useMemo(() => {\n return {\n spotlightedParticipantUserIds: spotlightedParticipants,\n onStartLocalSpotlight: hideSpotlightButtons ? undefined : onStartLocalSpotlightWithPrompt,\n onStopLocalSpotlight: hideSpotlightButtons ? undefined : onStopLocalSpotlightWithPrompt,\n onStartRemoteSpotlight: hideSpotlightButtons ? undefined : onStartRemoteSpotlightWithPrompt,\n onStopRemoteSpotlight: hideSpotlightButtons ? undefined : onStopRemoteSpotlightWithPrompt,\n onStopAllSpotlight: hideSpotlightButtons ? undefined : stopAllSpotlightWithPrompt,\n maxParticipantsToSpotlight\n };\n return {};\n }, [\n hideSpotlightButtons,\n maxParticipantsToSpotlight,\n onStartLocalSpotlightWithPrompt,\n onStartRemoteSpotlightWithPrompt,\n onStopLocalSpotlightWithPrompt,\n onStopRemoteSpotlightWithPrompt,\n stopAllSpotlightWithPrompt,\n spotlightedParticipants\n ]);\n\n const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane({\n ...peoplePaneProps,\n ...spotlightPeoplePaneProps,\n ...onMuteParticipantPeoplePaneProps,\n ...pinPeoplePaneProps\n });\n const togglePeoplePane = useCallback(() => {\n if (isPeoplePaneOpen) {\n closePeoplePane();\n } else {\n openPeoplePane();\n }\n }, [closePeoplePane, isPeoplePaneOpen, openPeoplePane]);\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n useEffect(() => {\n if (isInLocalHold) {\n // close side pane on local hold\n updateSidePaneRenderer(undefined);\n }\n }, [updateSidePaneRenderer, isInLocalHold, isPeoplePaneOpen, closePeoplePane]);\n\n const isSidePaneOpen = useIsSidePaneOpen();\n\n const [renderGallery, setRenderGallery] = useState<boolean>(!isSidePaneOpen && props.mobileView);\n\n useEffect(() => {\n if (isSidePaneOpen && props.mobileView) {\n setRenderGallery(false);\n } else {\n setRenderGallery(true);\n }\n }, [props.mobileView, isSidePaneOpen]);\n\n const modalStrings = { dismissModalAriaLabel: locale.strings.call.dismissModalAriaLabel };\n\n const isMobileWithActivePane = props.mobileView && isSidePaneOpen;\n\n const callCompositeContainerCSS = useMemo((): React.CSSProperties => {\n return {\n display: isMobileWithActivePane ? 'none' : 'flex',\n minWidth: props.mobileView ? 'unset' : `${compositeMinWidthRem}rem`,\n width: '100%',\n height: '100%',\n position: 'relative'\n };\n }, [isMobileWithActivePane, props.mobileView]);\n\n const onResolveVideoEffectDependency = adapter.getState().onResolveVideoEffectDependency;\n\n const { openVideoEffectsPane } = useVideoEffectsPane(\n props.updateSidePaneRenderer,\n props.mobileView,\n props.latestErrors as ActiveErrorMessage[],\n props.onDismissError,\n cameraButtonRef\n );\n const [showDrawer, setShowDrawer] = useState(false);\n const onMoreButtonClicked = useCallback(() => {\n setShowDrawer(true);\n }, []);\n const closeDrawer = useCallback(() => {\n setShowDrawer(false);\n }, []);\n const onMoreDrawerPeopleClicked = useCallback(() => {\n setShowDrawer(false);\n togglePeoplePane();\n }, [togglePeoplePane]);\n\n const drawerContainerStylesValue = useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);\n\n let filteredLatestErrorNotifications: ActiveNotification[] = props.showErrorNotifications\n ? (props.latestErrors as ActiveNotification[])\n : [];\n\n const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n // TODO: move this logic to the error bar selector once role is plumbed from the headless SDK\n if (role === 'Consumer' && (props.errorBarProps || props.showErrorNotifications)) {\n filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter(\n (e) => e.type !== 'callCameraAccessDenied' && e.type !== 'callCameraAccessDeniedSafari'\n );\n }\n\n if (props.doNotShowCameraAccessNotifications) {\n filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter(\n (e) => e.type !== 'callCameraAccessDenied' && e.type !== 'callCameraAccessDeniedSafari'\n );\n }\n\n const isVideoPaneOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n\n if ((isVideoPaneOpen || !isCameraOn) && (props.errorBarProps || props.showErrorNotifications)) {\n filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter(\n (e) => e.type !== 'unableToStartVideoEffect'\n );\n }\n\n /* @conditional-compile-remove(acs-close-captions) */\n const isTeamsCaptions = useSelector(getCaptionsKind) === 'TeamsCaptions';\n const isTeamsMeeting = useSelector(getIsTeamsMeeting);\n /* @conditional-compile-remove(acs-close-captions) */\n const isTeamsCall = useSelector(getIsTeamsCall);\n const useTeamsCaptions =\n isTeamsMeeting ||\n /* @conditional-compile-remove(acs-close-captions) */ isTeamsCall ||\n /* @conditional-compile-remove(acs-close-captions) */ isTeamsCaptions;\n const hasJoinedCall = useSelector(getCallStatus) === 'Connected';\n const isCaptionsOn = useSelector(getCaptionsStatus);\n const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);\n const pipStyles = useMemo(() => getPipStyles(theme), [theme]);\n\n if (isTeamsMeeting) {\n filteredLatestErrorNotifications\n .filter((notification) => notification.type === 'teamsMeetingCallNetworkQualityLow')\n .forEach((notification) => {\n notification.onClickPrimaryButton = props.mobileView\n ? toggleMeetingPhoneInfoPane\n : toggleTeamsMeetingConferenceModal;\n });\n }\n\n const verticalControlBar =\n props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;\n\n // Filter out shareScreen capability notifications if on mobile\n const filteredCapabilitesChangedNotifications = props.mobileView\n ? props.capabilitiesChangedNotificationBarProps?.capabilitiesChangedNotifications.filter(\n (notification) => notification.capabilityName !== 'shareScreen'\n )\n : props.capabilitiesChangedNotificationBarProps?.capabilitiesChangedNotifications;\n\n /* @conditional-compile-remove(breakout-rooms) */\n const notificationStackStrings = useCompositeStringsForNotificationStackStrings(locale);\n\n let latestNotifications = props.latestNotifications;\n /* @conditional-compile-remove(breakout-rooms) */\n // Filter out breakout room notification that prompts user to join breakout room when in mobile view. We will\n // replace it with a non-dismissible banner\n latestNotifications = props.mobileView\n ? (latestNotifications ?? []).filter((notification) => notification.type !== 'assignedBreakoutRoomOpenedPromptJoin')\n : latestNotifications;\n\n return (\n <div ref={containerRef} className={mergeStyles(containerDivStyles)} id={props.id}>\n <Stack verticalFill horizontalAlign=\"stretch\" className={containerClassName} data-ui-id={props.dataUiId}>\n <Stack\n reversed\n horizontal={verticalControlBar}\n grow\n styles={callArrangementContainerStyles(verticalControlBar)}\n >\n {props.callControlProps?.options !== false && !isMobileWithActivePane && (\n <Stack\n verticalAlign={'center'}\n className={mergeStyles({\n zIndex: CONTROL_BAR_Z_INDEX,\n padding: verticalControlBar ? '0.25rem' : 'unset'\n })}\n >\n {isLegacyCallControlEnabled(props.callControlProps?.options) ? (\n <CallControls\n {...props.callControlProps}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n isMobile={props.mobileView}\n /* @conditional-compile-remove(one-to-n-calling) */\n peopleButtonChecked={isPeoplePaneOpen}\n /* @conditional-compile-remove(one-to-n-calling) */\n onPeopleButtonClicked={togglePeoplePane}\n displayVertical={verticalControlBar}\n />\n ) : (\n <CommonCallControlBar\n {...props.callControlProps}\n callControls={props.callControlProps.options}\n callAdapter={adapter as CallAdapter}\n mobileView={props.mobileView}\n disableButtonsForLobbyPage={isInLobby}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n peopleButtonChecked={isPeoplePaneOpen}\n onPeopleButtonClicked={togglePeoplePane}\n onMoreButtonClicked={onMoreButtonClicked}\n isCaptionsSupported={\n (useTeamsCaptions && hasJoinedCall) ||\n /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall\n }\n useTeamsCaptions={useTeamsCaptions}\n isCaptionsOn={isCaptionsOn}\n onClickVideoEffects={onResolveVideoEffectDependency ? openVideoEffectsPane : undefined}\n displayVertical={verticalControlBar}\n onUserSetOverflowGalleryPositionChange={props.onUserSetOverflowGalleryPositionChange}\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n userSetGalleryLayout={props.userSetGalleryLayout}\n onSetDialpadPage={props.onSetDialpadPage}\n dtmfDialerPresent={props.dtmfDialerPresent}\n peopleButtonRef={peopleButtonRef}\n cameraButtonRef={cameraButtonRef}\n onStopLocalSpotlight={\n !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined\n }\n /* @conditional-compile-remove(teams-meeting-conference) */\n onToggleTeamsMeetingConferenceModal={toggleTeamsMeetingConferenceModal}\n /* @conditional-compile-remove(teams-meeting-conference) */\n teamsMeetingConferenceModalPresent={showTeamsMeetingConferenceModal}\n />\n )}\n </Stack>\n )}\n {props.callControlProps?.options !== false && showDrawer && (\n <Stack styles={drawerContainerStylesValue}>\n <PreparedMoreDrawer\n callControls={props.callControlProps.options}\n onLightDismiss={closeDrawer}\n onPeopleButtonClicked={onMoreDrawerPeopleClicked}\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n disableButtonsForHoldScreen={isInLocalHold}\n isCaptionsSupported={\n (useTeamsCaptions && hasJoinedCall) ||\n /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall\n }\n useTeamsCaptions={useTeamsCaptions}\n onUserSetGalleryLayout={props.onUserSetGalleryLayoutChange}\n userSetGalleryLayout={props.userSetGalleryLayout}\n onSetDialpadPage={props.onSetDialpadPage}\n dtmfDialerPresent={props.dtmfDialerPresent}\n reactionResources={adapter.getState().reactions}\n /* @conditional-compile-remove(teams-meeting-conference) */\n onClickMeetingPhoneInfo={onMeetingPhoneInfoClicked}\n />\n </Stack>\n )}\n <Stack horizontal grow>\n <Stack.Item style={callCompositeContainerCSS}>\n <Stack.Item styles={callGalleryStyles} grow>\n <Stack verticalFill styles={mediaGalleryContainerStyles}>\n <Stack.Item styles={notificationsContainerStyles}>\n {\n /* @conditional-compile-remove(breakout-rooms) */\n props.mobileView && (\n <BreakoutRoomsBanner\n latestNotifications={latestNotifications}\n locale={locale}\n adapter={adapter}\n />\n )\n }\n {props.showErrorNotifications && (\n <Stack styles={notificationStackStyles} horizontalAlign=\"center\" verticalAlign=\"center\">\n <NotificationStack\n onDismissNotification={props.onDismissError}\n activeNotifications={filteredLatestErrorNotifications}\n />\n </Stack>\n )}\n {latestNotifications && (\n <Stack styles={notificationStackStyles} horizontalAlign=\"center\" verticalAlign=\"center\">\n <NotificationStack\n activeNotifications={latestNotifications}\n onDismissNotification={props.onDismissNotification}\n /* @conditional-compile-remove(breakout-rooms) */\n strings={notificationStackStrings}\n />\n </Stack>\n )}\n {props.capabilitiesChangedNotificationBarProps &&\n props.capabilitiesChangedNotificationBarProps.capabilitiesChangedNotifications.length > 0 && (\n <Stack styles={bannerNotificationStyles}>\n <CapabilitiesChangedNotificationBar\n {...props.capabilitiesChangedNotificationBarProps}\n capabilitiesChangedNotifications={filteredCapabilitesChangedNotifications ?? []}\n />\n </Stack>\n )}\n </Stack.Item>\n {renderGallery && props.onRenderGalleryContent && props.onRenderGalleryContent()}\n {true &&\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (\n <CaptionsBanner\n isMobile={props.mobileView}\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n useTeamsCaptions={useTeamsCaptions}\n />\n )}\n </Stack>\n </Stack.Item>\n </Stack.Item>\n <SidePane\n mobileView={props.mobileView}\n maxWidth={isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined}\n minWidth={isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n onPeopleButtonClicked={\n props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)\n ? undefined\n : togglePeoplePane\n }\n disablePeopleButton={\n typeof props.callControlProps.options !== 'boolean' &&\n isDisabled(props.callControlProps.options?.participantsButton)\n }\n onChatButtonClicked={props.mobileChatTabHeader?.onClick}\n disableChatButton={props.mobileChatTabHeader?.disabled}\n />\n {props.mobileView && (\n <ModalLocalAndRemotePIP\n modalLayerHostId={props.modalLayerHostId}\n hidden={!isSidePaneOpen}\n styles={pipStyles}\n strings={modalStrings}\n minDragPosition={minMaxDragPosition.minDragPosition}\n maxDragPosition={minMaxDragPosition.maxDragPosition}\n onDismissSidePane={() => {\n closePeoplePane();\n if (props.onCloseChatPane) {\n props.onCloseChatPane();\n }\n }}\n />\n )}\n {drawerMenuItems.length > 0 && (\n <Stack styles={drawerContainerStyles()}>\n <_DrawerMenu onLightDismiss={() => setDrawerMenuItems([])} items={drawerMenuItems} />\n </Stack>\n )}\n </Stack>\n </Stack>\n </Stack>\n </div>\n );\n};\n\nconst isLegacyCallControlEnabled = (options?: boolean | CallControlOptions): boolean => {\n return !!options && options !== true && options?.legacyControlBarExperience === true;\n};\n\nconst shouldShowPeopleTabHeaderButton = (callControls?: boolean | CommonCallControlOptions): boolean => {\n if (callControls === undefined || callControls === true) {\n return true;\n }\n if (callControls === false) {\n return false;\n }\n return callControls.participantsButton !== false && callControls.peopleButton !== false;\n};\n"]}
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts
CHANGED
@@ -12,6 +12,7 @@ import { SpotlightedParticipant } from '@azure/communication-calling';
|
|
12
12
|
import { CallAdapterState, CallCompositePage } from '../adapter/CallAdapter';
|
13
13
|
import { VideoBackgroundEffect } from '../adapter/CallAdapter';
|
14
14
|
import { AdapterErrors } from '../../common/adapters';
|
15
|
+
import { AdapterNotifications } from '../../common/adapters';
|
15
16
|
import { RaisedHandState } from "../../../../../calling-stateful-client/src";
|
16
17
|
import { CommunicationIdentifier } from '@azure/communication-common';
|
17
18
|
import { CaptionsKind } from '@azure/communication-calling';
|
@@ -167,4 +168,8 @@ export declare const getBreakoutRoomSettings: (state: CallAdapterState) => Break
|
|
167
168
|
* @private
|
168
169
|
*/
|
169
170
|
export declare const getBreakoutRoomDisplayName: (state: CallAdapterState) => string | undefined;
|
171
|
+
/**
|
172
|
+
* @private
|
173
|
+
*/
|
174
|
+
export declare const getLatestNotifications: (state: CallAdapterState) => AdapterNotifications;
|
170
175
|
//# sourceMappingURL=baseSelectors.d.ts.map
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js
CHANGED
@@ -181,4 +181,9 @@ export const getBreakoutRoomSettings = (state) => { var _a, _b; return (_b = (_a
|
|
181
181
|
* @private
|
182
182
|
*/
|
183
183
|
export const getBreakoutRoomDisplayName = (state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.breakoutRooms) === null || _b === void 0 ? void 0 : _b.breakoutRoomDisplayName; };
|
184
|
+
/* @conditional-compile-remove(breakout-rooms) */
|
185
|
+
/**
|
186
|
+
* @private
|
187
|
+
*/
|
188
|
+
export const getLatestNotifications = (state) => state.latestNotifications;
|
184
189
|
//# sourceMappingURL=baseSelectors.js.map
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"baseSelectors.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/selectors/baseSelectors.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallState as SDKCallStatus, DominantSpeakersInfo } from '@azure/communication-calling';\nimport { ParticipantCapabilities } from '@azure/communication-calling';\nimport { VideoDeviceInfo, AudioDeviceInfo } from '@azure/communication-calling';\n\nimport { CapabilitiesChangeInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\n\nimport { ParticipantRole } from '@azure/communication-calling';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { BreakoutRoom, BreakoutRoomsSettings } from '@azure/communication-calling';\nimport {\n CallState,\n DeviceManagerState,\n DiagnosticsCallFeatureState,\n LocalVideoStreamState,\n RemoteParticipantState\n} from '@internal/calling-stateful-client';\nimport { CaptionsInfo } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { ConferencePhoneInfo } from '@internal/calling-stateful-client';\nimport { SpotlightedParticipant } from '@azure/communication-calling';\nimport { CallAdapterState, CallCompositePage } from '../adapter/CallAdapter';\n\nimport { VideoBackgroundEffect } from '../adapter/CallAdapter';\nimport { _isInCall, _isPreviewOn, _dominantSpeakersWithFlatId } from '@internal/calling-component-bindings';\nimport { AdapterErrors } from '../../common/adapters';\nimport { RaisedHandState } from '@internal/calling-stateful-client';\nimport { CommunicationIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(acs-close-captions) */\nimport { CaptionsKind } from '@azure/communication-calling';\n\n/**\n * @private\n */\nexport const getDisplayName = (state: CallAdapterState): string | undefined => state.displayName;\n\n/**\n * @private\n */\nexport const getCallId = (state: CallAdapterState): string | undefined => state.call?.id;\n\n/**\n * @private\n */\nexport const getEndedCall = (state: CallAdapterState): CallState | undefined => state.endedCall;\n\n/**\n * @private\n */\nexport const getCallStatus = (state: CallAdapterState): SDKCallStatus => state.call?.state ?? 'None';\n\n/**\n * @private\n */\nexport const getDeviceManager = (state: CallAdapterState): DeviceManagerState => state.devices;\n\n/**\n * @private\n */\nexport const getIsScreenShareOn = (state: CallAdapterState): boolean => state.call?.isScreenSharingOn ?? false;\n\n/**\n * @private\n */\nexport const getLocalParticipantRaisedHand = (state: CallAdapterState): RaisedHandState | undefined =>\n state.call?.raiseHand.localParticipantRaisedHand;\n\n/**\n * @private\n */\nexport const getCapabilites = (state: CallAdapterState): ParticipantCapabilities | undefined =>\n state.call?.capabilitiesFeature?.capabilities;\n\n/**\n * @private\n */\nexport const getIsPreviewCameraOn = (state: CallAdapterState): boolean => _isPreviewOn(state.devices);\n\n/**\n * @private\n */\nexport const getMicrophones = (state: CallAdapterState): AudioDeviceInfo[] => state.devices.microphones;\n\n/**\n * @private\n */\nexport const getCameras = (state: CallAdapterState): VideoDeviceInfo[] => state.devices.cameras;\n\n/**\n * @private\n */\nexport const getRole = (state: CallAdapterState): ParticipantRole | undefined => state.call?.role;\n\n/**\n * @private\n */\nexport const getPage = (state: CallAdapterState): CallCompositePage => state.page;\n\n/**\n * @private\n */\nexport const getTransferCall = (state: CallAdapterState): CallState | undefined => state.acceptedTransferCallState;\n\n/**\n * @private\n */\nexport const getLocalMicrophoneEnabled = (state: CallAdapterState): boolean => state.isLocalPreviewMicrophoneEnabled;\n\n/**\n * @private\n */\nexport const getLocalVideoStreams = (state: CallAdapterState): LocalVideoStreamState[] | undefined =>\n state.call?.localVideoStreams;\n\n/**\n * @private\n */\nexport const getIsTranscriptionActive = (state: CallAdapterState): boolean =>\n !!state.call?.transcription.isTranscriptionActive;\n\n/**\n * @private\n */\nexport const getIsRecordingActive = (state: CallAdapterState): boolean => !!state.call?.recording.isRecordingActive;\n\n/**\n * @private\n */\nexport const getUserFacingDiagnostics = (state: CallAdapterState): DiagnosticsCallFeatureState | undefined =>\n state.call?.diagnostics;\n\n/**\n * @private\n */\nexport const getDominantSpeakerInfo = (state: CallAdapterState): undefined | DominantSpeakersInfo =>\n state.call?.dominantSpeakers;\n\n/**\n * @private\n */\nexport const getRemoteParticipants = (\n state: CallAdapterState\n):\n | undefined\n | {\n [keys: string]: RemoteParticipantState;\n } => state.call?.remoteParticipants;\n\n/* @conditional-compile-remove(unsupported-browser) */\n/**\n * @private\n */\nexport const getEnvironmentInfo = (state: CallAdapterState): EnvironmentInfo | undefined => state.environmentInfo;\n\n/**\n * @private\n */\nexport const getSelectedVideoEffect = (state: CallAdapterState): VideoBackgroundEffect | undefined =>\n state.selectedVideoBackgroundEffect;\n\n/* @conditional-compile-remove(acs-close-captions) */\n/** @private */\nexport const getCaptionsKind = (state: CallAdapterState): CaptionsKind | undefined => {\n return state.call?.captionsFeature.captionsKind;\n};\n\n/** @private */\nexport const getCaptions = (state: CallAdapterState): CaptionsInfo[] | undefined => {\n return state.call?.captionsFeature.captions;\n};\n\n/** @private */\nexport const getCaptionsStatus = (state: CallAdapterState): boolean | undefined => {\n return state.call?.captionsFeature.isCaptionsFeatureActive;\n};\n\n/** @private */\nexport const getCurrentCaptionLanguage = (state: CallAdapterState): string | undefined => {\n return state.call?.captionsFeature.currentCaptionLanguage;\n};\n\n/** @private */\nexport const getCurrentSpokenLanguage = (state: CallAdapterState): string | undefined => {\n return state.call?.captionsFeature.currentSpokenLanguage;\n};\n\n/** @private */\nexport const getSupportedCaptionLanguages = (state: CallAdapterState): string[] | undefined => {\n return state.call?.captionsFeature.supportedCaptionLanguages;\n};\n\n/** @private */\nexport const getSupportedSpokenLanguages = (state: CallAdapterState): string[] | undefined => {\n return state.call?.captionsFeature.supportedSpokenLanguages;\n};\n\n/**\n * @private\n */\nexport const getIsTeamsCall = (state: CallAdapterState): boolean => state.isTeamsCall;\n\n/**\n * @private\n */\nexport const getIsTeamsMeeting = (state: CallAdapterState): boolean => state.isTeamsMeeting;\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n/**\n * @private\n */\nexport const getTeamsMeetingCoordinates = (state: CallAdapterState): ConferencePhoneInfo[] | undefined =>\n state.call?.meetingConference?.conferencePhones;\n\n/**\n * @private\n */\nexport const getLatestErrors = (state: CallAdapterState): AdapterErrors => state.latestErrors;\n\n/**\n * @private\n */\nexport const getLatestCapabilitiesChangedInfo = (state: CallAdapterState): CapabilitiesChangeInfo | undefined => {\n return state.call?.capabilitiesFeature?.latestCapabilitiesChangeInfo;\n};\n\n/**\n * @private\n */\nexport const getTargetCallees = (state: CallAdapterState): CommunicationIdentifier[] | undefined => state.targetCallees;\n\n/**\n * @private\n */\nexport const getStartTime = (state: CallAdapterState): Date | undefined => state.call?.startTime;\n\n/**\n * @private\n */\nexport const getSpotlightedParticipants = (state: CallAdapterState): SpotlightedParticipant[] | undefined =>\n state.call?.spotlight?.spotlightedParticipants;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport const getAssignedBreakoutRoom = (state: CallAdapterState): BreakoutRoom | undefined =>\n state.call?.breakoutRooms?.assignedBreakoutRoom;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport const getBreakoutRoomSettings = (state: CallAdapterState): BreakoutRoomsSettings | undefined =>\n state.call?.breakoutRooms?.breakoutRoomSettings;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport const getBreakoutRoomDisplayName = (state: CallAdapterState): string | undefined =>\n state.call?.breakoutRooms?.breakoutRoomDisplayName;\n"]}
|
1
|
+
{"version":3,"file":"baseSelectors.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/selectors/baseSelectors.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallState as SDKCallStatus, DominantSpeakersInfo } from '@azure/communication-calling';\nimport { ParticipantCapabilities } from '@azure/communication-calling';\nimport { VideoDeviceInfo, AudioDeviceInfo } from '@azure/communication-calling';\n\nimport { CapabilitiesChangeInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\n\nimport { ParticipantRole } from '@azure/communication-calling';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { BreakoutRoom, BreakoutRoomsSettings } from '@azure/communication-calling';\nimport {\n CallState,\n DeviceManagerState,\n DiagnosticsCallFeatureState,\n LocalVideoStreamState,\n RemoteParticipantState\n} from '@internal/calling-stateful-client';\nimport { CaptionsInfo } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { ConferencePhoneInfo } from '@internal/calling-stateful-client';\nimport { SpotlightedParticipant } from '@azure/communication-calling';\nimport { CallAdapterState, CallCompositePage } from '../adapter/CallAdapter';\n\nimport { VideoBackgroundEffect } from '../adapter/CallAdapter';\nimport { _isInCall, _isPreviewOn, _dominantSpeakersWithFlatId } from '@internal/calling-component-bindings';\nimport { AdapterErrors } from '../../common/adapters';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { AdapterNotifications } from '../../common/adapters';\nimport { RaisedHandState } from '@internal/calling-stateful-client';\nimport { CommunicationIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(acs-close-captions) */\nimport { CaptionsKind } from '@azure/communication-calling';\n\n/**\n * @private\n */\nexport const getDisplayName = (state: CallAdapterState): string | undefined => state.displayName;\n\n/**\n * @private\n */\nexport const getCallId = (state: CallAdapterState): string | undefined => state.call?.id;\n\n/**\n * @private\n */\nexport const getEndedCall = (state: CallAdapterState): CallState | undefined => state.endedCall;\n\n/**\n * @private\n */\nexport const getCallStatus = (state: CallAdapterState): SDKCallStatus => state.call?.state ?? 'None';\n\n/**\n * @private\n */\nexport const getDeviceManager = (state: CallAdapterState): DeviceManagerState => state.devices;\n\n/**\n * @private\n */\nexport const getIsScreenShareOn = (state: CallAdapterState): boolean => state.call?.isScreenSharingOn ?? false;\n\n/**\n * @private\n */\nexport const getLocalParticipantRaisedHand = (state: CallAdapterState): RaisedHandState | undefined =>\n state.call?.raiseHand.localParticipantRaisedHand;\n\n/**\n * @private\n */\nexport const getCapabilites = (state: CallAdapterState): ParticipantCapabilities | undefined =>\n state.call?.capabilitiesFeature?.capabilities;\n\n/**\n * @private\n */\nexport const getIsPreviewCameraOn = (state: CallAdapterState): boolean => _isPreviewOn(state.devices);\n\n/**\n * @private\n */\nexport const getMicrophones = (state: CallAdapterState): AudioDeviceInfo[] => state.devices.microphones;\n\n/**\n * @private\n */\nexport const getCameras = (state: CallAdapterState): VideoDeviceInfo[] => state.devices.cameras;\n\n/**\n * @private\n */\nexport const getRole = (state: CallAdapterState): ParticipantRole | undefined => state.call?.role;\n\n/**\n * @private\n */\nexport const getPage = (state: CallAdapterState): CallCompositePage => state.page;\n\n/**\n * @private\n */\nexport const getTransferCall = (state: CallAdapterState): CallState | undefined => state.acceptedTransferCallState;\n\n/**\n * @private\n */\nexport const getLocalMicrophoneEnabled = (state: CallAdapterState): boolean => state.isLocalPreviewMicrophoneEnabled;\n\n/**\n * @private\n */\nexport const getLocalVideoStreams = (state: CallAdapterState): LocalVideoStreamState[] | undefined =>\n state.call?.localVideoStreams;\n\n/**\n * @private\n */\nexport const getIsTranscriptionActive = (state: CallAdapterState): boolean =>\n !!state.call?.transcription.isTranscriptionActive;\n\n/**\n * @private\n */\nexport const getIsRecordingActive = (state: CallAdapterState): boolean => !!state.call?.recording.isRecordingActive;\n\n/**\n * @private\n */\nexport const getUserFacingDiagnostics = (state: CallAdapterState): DiagnosticsCallFeatureState | undefined =>\n state.call?.diagnostics;\n\n/**\n * @private\n */\nexport const getDominantSpeakerInfo = (state: CallAdapterState): undefined | DominantSpeakersInfo =>\n state.call?.dominantSpeakers;\n\n/**\n * @private\n */\nexport const getRemoteParticipants = (\n state: CallAdapterState\n):\n | undefined\n | {\n [keys: string]: RemoteParticipantState;\n } => state.call?.remoteParticipants;\n\n/* @conditional-compile-remove(unsupported-browser) */\n/**\n * @private\n */\nexport const getEnvironmentInfo = (state: CallAdapterState): EnvironmentInfo | undefined => state.environmentInfo;\n\n/**\n * @private\n */\nexport const getSelectedVideoEffect = (state: CallAdapterState): VideoBackgroundEffect | undefined =>\n state.selectedVideoBackgroundEffect;\n\n/* @conditional-compile-remove(acs-close-captions) */\n/** @private */\nexport const getCaptionsKind = (state: CallAdapterState): CaptionsKind | undefined => {\n return state.call?.captionsFeature.captionsKind;\n};\n\n/** @private */\nexport const getCaptions = (state: CallAdapterState): CaptionsInfo[] | undefined => {\n return state.call?.captionsFeature.captions;\n};\n\n/** @private */\nexport const getCaptionsStatus = (state: CallAdapterState): boolean | undefined => {\n return state.call?.captionsFeature.isCaptionsFeatureActive;\n};\n\n/** @private */\nexport const getCurrentCaptionLanguage = (state: CallAdapterState): string | undefined => {\n return state.call?.captionsFeature.currentCaptionLanguage;\n};\n\n/** @private */\nexport const getCurrentSpokenLanguage = (state: CallAdapterState): string | undefined => {\n return state.call?.captionsFeature.currentSpokenLanguage;\n};\n\n/** @private */\nexport const getSupportedCaptionLanguages = (state: CallAdapterState): string[] | undefined => {\n return state.call?.captionsFeature.supportedCaptionLanguages;\n};\n\n/** @private */\nexport const getSupportedSpokenLanguages = (state: CallAdapterState): string[] | undefined => {\n return state.call?.captionsFeature.supportedSpokenLanguages;\n};\n\n/**\n * @private\n */\nexport const getIsTeamsCall = (state: CallAdapterState): boolean => state.isTeamsCall;\n\n/**\n * @private\n */\nexport const getIsTeamsMeeting = (state: CallAdapterState): boolean => state.isTeamsMeeting;\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n/**\n * @private\n */\nexport const getTeamsMeetingCoordinates = (state: CallAdapterState): ConferencePhoneInfo[] | undefined =>\n state.call?.meetingConference?.conferencePhones;\n\n/**\n * @private\n */\nexport const getLatestErrors = (state: CallAdapterState): AdapterErrors => state.latestErrors;\n\n/**\n * @private\n */\nexport const getLatestCapabilitiesChangedInfo = (state: CallAdapterState): CapabilitiesChangeInfo | undefined => {\n return state.call?.capabilitiesFeature?.latestCapabilitiesChangeInfo;\n};\n\n/**\n * @private\n */\nexport const getTargetCallees = (state: CallAdapterState): CommunicationIdentifier[] | undefined => state.targetCallees;\n\n/**\n * @private\n */\nexport const getStartTime = (state: CallAdapterState): Date | undefined => state.call?.startTime;\n\n/**\n * @private\n */\nexport const getSpotlightedParticipants = (state: CallAdapterState): SpotlightedParticipant[] | undefined =>\n state.call?.spotlight?.spotlightedParticipants;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport const getAssignedBreakoutRoom = (state: CallAdapterState): BreakoutRoom | undefined =>\n state.call?.breakoutRooms?.assignedBreakoutRoom;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport const getBreakoutRoomSettings = (state: CallAdapterState): BreakoutRoomsSettings | undefined =>\n state.call?.breakoutRooms?.breakoutRoomSettings;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport const getBreakoutRoomDisplayName = (state: CallAdapterState): string | undefined =>\n state.call?.breakoutRooms?.breakoutRoomDisplayName;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport const getLatestNotifications = (state: CallAdapterState): AdapterNotifications => state.latestNotifications;\n"]}
|
@@ -51,7 +51,7 @@ export declare const getEndedCallPageProps: (locale: CompositeLocale, endedCall?
|
|
51
51
|
/**
|
52
52
|
* type definition for conditional-compilation
|
53
53
|
*/
|
54
|
-
type GetCallCompositePageFunction = ((call: CallState | undefined, previousCall: CallState | undefined) => CallCompositePage) & ((call: CallState | undefined, previousCall: CallState | undefined, transferCall?: CallState, unsupportedBrowserInfo?: {
|
54
|
+
type GetCallCompositePageFunction = ((call: CallState | undefined, previousCall: CallState | undefined) => CallCompositePage) & ((call: CallState | undefined, previousCall: CallState | undefined, transferCall?: CallState, originCall?: CallState, unsupportedBrowserInfo?: {
|
55
55
|
environmentInfo?: EnvironmentInfo;
|
56
56
|
unsupportedBrowserVersionOptedIn?: boolean;
|
57
57
|
}) => CallCompositePage);
|
@@ -242,7 +242,8 @@ export const getEndedCallPageProps = (locale, endedCall) => {
|
|
242
242
|
*
|
243
243
|
* @private
|
244
244
|
*/
|
245
|
-
export const getCallCompositePage = (call, previousCall, transferCall, unsupportedBrowserInfo) => {
|
245
|
+
export const getCallCompositePage = (call, previousCall, transferCall, originCall, unsupportedBrowserInfo) => {
|
246
|
+
var _a;
|
246
247
|
/* @conditional-compile-remove(unsupported-browser) */
|
247
248
|
if (isUnsupportedEnvironment(unsupportedBrowserInfo === null || unsupportedBrowserInfo === void 0 ? void 0 : unsupportedBrowserInfo.environmentInfo, unsupportedBrowserInfo === null || unsupportedBrowserInfo === void 0 ? void 0 : unsupportedBrowserInfo.unsupportedBrowserVersionOptedIn)) {
|
248
249
|
return 'unsupportedEnvironment';
|
@@ -279,6 +280,10 @@ export const getCallCompositePage = (call, previousCall, transferCall, unsupport
|
|
279
280
|
return 'configuration';
|
280
281
|
}
|
281
282
|
}
|
283
|
+
// /* @conditional-compile-remove(breakout-rooms) */
|
284
|
+
if (((_a = previousCall === null || previousCall === void 0 ? void 0 : previousCall.breakoutRooms) === null || _a === void 0 ? void 0 : _a.breakoutRoomOriginCallId) && originCall) {
|
285
|
+
return 'call';
|
286
|
+
}
|
282
287
|
if (previousCall) {
|
283
288
|
const reason = getCallEndReason(previousCall);
|
284
289
|
switch (reason) {
|