@azure/communication-react 1.28.0-alpha-202506110019 → 1.28.0-alpha-202506120019
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/README.md +2 -2
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-0CJ2pkhy.js → ChatMessageComponentAsRichTextEditBox-ngP-K5bA.js} +2 -2
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-0CJ2pkhy.js.map → ChatMessageComponentAsRichTextEditBox-ngP-K5bA.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-8-rNMb_Z.js → RichTextSendBoxWrapper-CsGkX3is.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-8-rNMb_Z.js.map → RichTextSendBoxWrapper-CsGkX3is.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-NXI7aNBc.js → index-rf3tf-XH.js} +114 -61
- package/dist/dist-cjs/communication-react/{index-NXI7aNBc.js.map → index-rf3tf-XH.js.map} +1 -1
- 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/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +4 -2
- 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/ExpandedLocalVideoTile.js +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +6 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +13 -13
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +6 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +6 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +6 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +6 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +9 -5
- package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +31 -17
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +8 -4
- package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
- package/package.json +4 -4
@@ -18,9 +18,9 @@ export const ExpandedLocalVideoTile = (props) => {
|
|
18
18
|
const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;
|
19
19
|
const renderElement = videoStream === null || videoStream === void 0 ? void 0 : videoStream.renderElement;
|
20
20
|
useEffect(() => {
|
21
|
+
var _a;
|
21
22
|
if (videoStream && isVideoReady) {
|
22
|
-
props.onCreateLocalStreamView
|
23
|
-
props.onCreateLocalStreamView(localVideoViewOptions).catch((err) => console.log('Can not render video', err));
|
23
|
+
(_a = props.onCreateLocalStreamView) === null || _a === void 0 ? void 0 : _a.call(props, localVideoViewOptions).catch((err) => console.log('Can not render video', err));
|
24
24
|
}
|
25
25
|
}, [isVideoReady, videoStream, props, renderElement]);
|
26
26
|
return (React.createElement(Stack, { horizontalAlign: "center", verticalAlign: "center", styles: containerStyles, grow: true },
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ExpandedLocalVideoTile.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,WAAW,EAEX,SAAS,EAGV,4CAAmC;AACpC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EAChB,MAAM,yCAAyC,CAAC;AAEjD,MAAM,wBAAwB,GAAG,GAAgB,EAAE,CAAC,yCAAK,CAAC;AAE1D,MAAM,qBAAqB,GAAG;IAC5B,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,IAAI;CACK,CAAC;AAWxB;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAkC,EAAe,EAAE;;IACxF,MAAM,WAAW,GAAG,KAAK,CAAC,2BAA2B,CAAC;IACtD,MAAM,YAAY,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,mCAAI,KAAK,CAAC;IACvD,MAAM,aAAa,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,aAAa,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE
|
1
|
+
{"version":3,"file":"ExpandedLocalVideoTile.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,WAAW,EAEX,SAAS,EAGV,4CAAmC;AACpC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EAChB,MAAM,yCAAyC,CAAC;AAEjD,MAAM,wBAAwB,GAAG,GAAgB,EAAE,CAAC,yCAAK,CAAC;AAE1D,MAAM,qBAAqB,GAAG;IAC5B,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,IAAI;CACK,CAAC;AAWxB;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAkC,EAAe,EAAE;;IACxF,MAAM,WAAW,GAAG,KAAK,CAAC,2BAA2B,CAAC;IACtD,MAAM,YAAY,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,mCAAI,KAAK,CAAC;IACvD,MAAM,aAAa,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,aAAa,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;;QACb,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YAChC,MAAA,KAAK,CAAC,uBAAuB,sDAAG,qBAAqB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC,CAAC;QAClH,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IACtD,OAAO,CACL,oBAAC,KAAK,IAAC,eAAe,EAAC,QAAQ,EAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAE,eAAe,EAAE,IAAI;QAClF,oBAAC,SAAS,IACR,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,oBAAC,WAAW,IAAC,kBAAkB,EAAE,aAAa,GAAI,CAAC,CAAC,CAAC,SAAS,EAC7F,mBAAmB,EAAE,wBAAwB,IAE5C,KAAK,CAAC,cAAc,IAAI,CACvB;YACE,oBAAC,KAAK,IAAC,SAAS,EAAE,WAAW,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,GAAI;YACxE,oBAAC,KAAK,IAAC,eAAe,EAAC,QAAQ,EAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,WAAW,CAAC,oBAAoB,CAAC,IAChG,KAAK,CAAC,cAAc,CACf,CACP,CACJ,CACS,CACN,CACT,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useEffect } from 'react';\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport {\n StreamMedia,\n VideoGalleryStream,\n VideoTile,\n VideoStreamOptions,\n CreateVideoStreamViewResult\n} from '@internal/react-components';\nimport {\n containerStyles,\n overlayBackgroundStyles,\n overlayContentStyles,\n videoTileStyles\n} from '../styles/ExpandedLocalVideoTile.styles';\n\nconst onRenderEmptyPlaceholder = (): JSX.Element => <></>;\n\nconst localVideoViewOptions = {\n scalingMode: 'Crop',\n isMirrored: true\n} as VideoStreamOptions;\n\n/**\n * @private\n */\nexport interface ExpandedLocalVideoTileProps {\n localParticipantVideoStream: VideoGalleryStream;\n onCreateLocalStreamView?: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;\n overlayContent?: JSX.Element;\n}\n\n/**\n * @private\n */\nexport const ExpandedLocalVideoTile = (props: ExpandedLocalVideoTileProps): JSX.Element => {\n const videoStream = props.localParticipantVideoStream;\n const isVideoReady = videoStream?.isAvailable ?? false;\n const renderElement = videoStream?.renderElement;\n\n useEffect(() => {\n if (videoStream && isVideoReady) {\n props.onCreateLocalStreamView?.(localVideoViewOptions).catch((err) => console.log('Can not render video', err));\n }\n }, [isVideoReady, videoStream, props, renderElement]);\n return (\n <Stack horizontalAlign=\"center\" verticalAlign=\"center\" styles={containerStyles} grow>\n <VideoTile\n styles={videoTileStyles}\n renderElement={renderElement ? <StreamMedia videoStreamElement={renderElement} /> : undefined}\n onRenderPlaceholder={onRenderEmptyPlaceholder}\n >\n {props.overlayContent && (\n <>\n <Stack className={mergeStyles(overlayBackgroundStyles(isVideoReady))} />\n <Stack horizontalAlign=\"center\" verticalAlign=\"center\" className={mergeStyles(overlayContentStyles)}>\n {props.overlayContent}\n </Stack>\n </>\n )}\n </VideoTile>\n </Stack>\n );\n};\n"]}
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js
CHANGED
@@ -35,7 +35,12 @@ export const LocalPreview = (props) => {
|
|
35
35
|
const isLocalMicrophoneEnabled = useSelector(getLocalMicrophoneEnabled);
|
36
36
|
const adapter = useAdapter();
|
37
37
|
const onToggleMic = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
38
|
-
|
38
|
+
if (isLocalMicrophoneEnabled) {
|
39
|
+
adapter.mute();
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
adapter.unmute();
|
43
|
+
}
|
39
44
|
}), [adapter, isLocalMicrophoneEnabled]);
|
40
45
|
const hasNoSpeakers = !devicesButtonProps.speakers.length;
|
41
46
|
const hasNoDevices = devicesButtonProps.cameras.length === 0 &&
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LocalPreview.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/LocalPreview.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { mergeStyles, Stack, Text } from '@fluentui/react';\nimport {\n CameraButton,\n ControlBar,\n MicrophoneButton,\n DevicesButton,\n StreamMedia,\n useTheme,\n VideoTile,\n VideoStreamOptions\n} from '@internal/react-components';\nimport React, { useCallback } from 'react';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { useLocale } from '../../localization';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { getLocalMicrophoneEnabled } from '../selectors/baseSelectors';\nimport { devicePermissionSelector } from '../selectors/devicePermissionSelector';\nimport { localPreviewSelector } from '../selectors/localPreviewSelector';\nimport { buttonFlyoutIncreasedSizeStyles } from '../styles/Buttons.styles';\nimport {\n cameraOffLabelStyle,\n localPreviewButtonStyle,\n localPreviewContainerStyleDesktop,\n localPreviewContainerStyleMobile,\n localPreviewTileStyle\n} from '../styles/LocalPreview.styles';\n\n/**\n * @private\n */\nexport interface LocalPreviewProps {\n mobileView: boolean;\n showDevicesButton: boolean;\n onToggleCamera: (options?: VideoStreamOptions | undefined) => Promise<void>;\n cameraLoading?: boolean;\n}\n\n/**\n * @private\n */\nexport const LocalPreview = (props: LocalPreviewProps): JSX.Element => {\n const locale = useLocale();\n const cameraButtonProps = usePropsFor(CameraButton);\n const localPreviewProps = useSelector(localPreviewSelector);\n const devicesButtonProps = usePropsFor(DevicesButton);\n const { audio: microphonePermissionGranted, video: cameraPermissionGranted } = useSelector(devicePermissionSelector);\n\n const isLocalMicrophoneEnabled = useSelector(getLocalMicrophoneEnabled);\n const adapter = useAdapter();\n\n const onToggleMic = useCallback(async () => {\n isLocalMicrophoneEnabled ? adapter.mute() : adapter.unmute();\n }, [adapter, isLocalMicrophoneEnabled]);\n\n const hasNoSpeakers = !devicesButtonProps.speakers.length;\n const hasNoDevices =\n devicesButtonProps.cameras.length === 0 &&\n devicesButtonProps.microphones.length === 0 &&\n devicesButtonProps.speakers.length === 0;\n\n const hasCameras = devicesButtonProps.cameras.length > 0;\n const hasMicrophones = devicesButtonProps.microphones.length > 0;\n\n const cameraLoadingString =\n locale.strings.call.configurationPageCameraIsLoadingLabel ?? locale.strings.call.cameraTurnedOff;\n const previewCameraString = props.cameraLoading ? cameraLoadingString : locale.strings.call.cameraTurnedOff;\n\n const theme = useTheme();\n const onRenderPlaceholder = useCallback((): JSX.Element => {\n return (\n <Stack\n className={mergeStyles({\n width: '100%',\n height: '100%',\n // The text should be centered in the local preview with the camera icon\n // appearing above the text. To compensate for the camera icon's height,\n // we add a negative margin to the top of the container.\n marginTop: '-0.8rem'\n })}\n verticalAlign=\"center\"\n >\n <Stack.Item align=\"center\">\n <CallCompositeIcon\n iconName=\"LocalPreviewPlaceholder\"\n className={mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralTertiary })}\n />\n </Stack.Item>\n <Stack.Item align=\"center\">\n <Text className={mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralSecondary })}>\n {previewCameraString}\n </Text>\n </Stack.Item>\n </Stack>\n );\n }, [theme, previewCameraString]);\n\n const devicesButtonStyles = props.mobileView\n ? {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles\n }\n }\n : undefined;\n\n return (\n <Stack\n data-ui-id=\"call-composite-local-preview\"\n className={props.mobileView ? localPreviewContainerStyleMobile(theme) : localPreviewContainerStyleDesktop(theme)}\n >\n <VideoTile\n styles={localPreviewTileStyle}\n renderElement={\n localPreviewProps?.videoStreamElement ? (\n <StreamMedia videoStreamElement={localPreviewProps.videoStreamElement} />\n ) : undefined\n }\n onRenderPlaceholder={onRenderPlaceholder}\n >\n <ControlBar layout=\"floatingBottom\">\n <MicrophoneButton\n data-ui-id=\"call-composite-local-device-settings-microphone-button\"\n checked={isLocalMicrophoneEnabled}\n onToggleMicrophone={onToggleMic}\n disabled={!microphonePermissionGranted || !hasMicrophones}\n showLabel={true}\n // disable tooltip as it obscures list of devices on mobile\n strings={\n props.mobileView ? { tooltipOnContent: '', tooltipOffContent: '', tooltipDisabledContent: '' } : {}\n }\n styles={localPreviewButtonStyle(props.mobileView)}\n />\n <CameraButton\n data-ui-id=\"call-composite-local-device-settings-camera-button\"\n {...cameraButtonProps}\n onToggleCamera={props.onToggleCamera}\n showLabel={true}\n disabled={!cameraPermissionGranted || !hasCameras || props.cameraLoading}\n // disable tooltip as it obscures list of devices on mobile\n strings={\n props.mobileView\n ? {\n tooltipOnContent: '',\n tooltipOffContent: '',\n tooltipDisabledContent: '',\n tooltipVideoLoadingContent: ''\n }\n : {}\n }\n styles={localPreviewButtonStyle(props.mobileView)}\n />\n {props.showDevicesButton && (\n <DevicesButton\n data-ui-id=\"call-composite-local-device-settings-options-button\"\n {...devicesButtonProps}\n // disable button whilst all other buttons are disabled\n disabled={(!microphonePermissionGranted && !cameraPermissionGranted && hasNoSpeakers) || hasNoDevices}\n showLabel={true}\n // disable tooltip as it obscures list of devices on mobile\n strings={props.mobileView ? { tooltipContent: '' } : {}}\n styles={devicesButtonStyles}\n />\n )}\n </ControlBar>\n </VideoTile>\n </Stack>\n );\n};\n"]}
|
1
|
+
{"version":3,"file":"LocalPreview.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/components/LocalPreview.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { mergeStyles, Stack, Text } from '@fluentui/react';\nimport {\n CameraButton,\n ControlBar,\n MicrophoneButton,\n DevicesButton,\n StreamMedia,\n useTheme,\n VideoTile,\n VideoStreamOptions\n} from '@internal/react-components';\nimport React, { useCallback } from 'react';\nimport { CallCompositeIcon } from '../../common/icons';\nimport { useLocale } from '../../localization';\nimport { useAdapter } from '../adapter/CallAdapterProvider';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { getLocalMicrophoneEnabled } from '../selectors/baseSelectors';\nimport { devicePermissionSelector } from '../selectors/devicePermissionSelector';\nimport { localPreviewSelector } from '../selectors/localPreviewSelector';\nimport { buttonFlyoutIncreasedSizeStyles } from '../styles/Buttons.styles';\nimport {\n cameraOffLabelStyle,\n localPreviewButtonStyle,\n localPreviewContainerStyleDesktop,\n localPreviewContainerStyleMobile,\n localPreviewTileStyle\n} from '../styles/LocalPreview.styles';\n\n/**\n * @private\n */\nexport interface LocalPreviewProps {\n mobileView: boolean;\n showDevicesButton: boolean;\n onToggleCamera: (options?: VideoStreamOptions | undefined) => Promise<void>;\n cameraLoading?: boolean;\n}\n\n/**\n * @private\n */\nexport const LocalPreview = (props: LocalPreviewProps): JSX.Element => {\n const locale = useLocale();\n const cameraButtonProps = usePropsFor(CameraButton);\n const localPreviewProps = useSelector(localPreviewSelector);\n const devicesButtonProps = usePropsFor(DevicesButton);\n const { audio: microphonePermissionGranted, video: cameraPermissionGranted } = useSelector(devicePermissionSelector);\n\n const isLocalMicrophoneEnabled = useSelector(getLocalMicrophoneEnabled);\n const adapter = useAdapter();\n\n const onToggleMic = useCallback(async () => {\n if (isLocalMicrophoneEnabled) {\n adapter.mute();\n } else {\n adapter.unmute();\n }\n }, [adapter, isLocalMicrophoneEnabled]);\n\n const hasNoSpeakers = !devicesButtonProps.speakers.length;\n const hasNoDevices =\n devicesButtonProps.cameras.length === 0 &&\n devicesButtonProps.microphones.length === 0 &&\n devicesButtonProps.speakers.length === 0;\n\n const hasCameras = devicesButtonProps.cameras.length > 0;\n const hasMicrophones = devicesButtonProps.microphones.length > 0;\n\n const cameraLoadingString =\n locale.strings.call.configurationPageCameraIsLoadingLabel ?? locale.strings.call.cameraTurnedOff;\n const previewCameraString = props.cameraLoading ? cameraLoadingString : locale.strings.call.cameraTurnedOff;\n\n const theme = useTheme();\n const onRenderPlaceholder = useCallback((): JSX.Element => {\n return (\n <Stack\n className={mergeStyles({\n width: '100%',\n height: '100%',\n // The text should be centered in the local preview with the camera icon\n // appearing above the text. To compensate for the camera icon's height,\n // we add a negative margin to the top of the container.\n marginTop: '-0.8rem'\n })}\n verticalAlign=\"center\"\n >\n <Stack.Item align=\"center\">\n <CallCompositeIcon\n iconName=\"LocalPreviewPlaceholder\"\n className={mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralTertiary })}\n />\n </Stack.Item>\n <Stack.Item align=\"center\">\n <Text className={mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralSecondary })}>\n {previewCameraString}\n </Text>\n </Stack.Item>\n </Stack>\n );\n }, [theme, previewCameraString]);\n\n const devicesButtonStyles = props.mobileView\n ? {\n menuStyles: {\n menuItemStyles: buttonFlyoutIncreasedSizeStyles\n }\n }\n : undefined;\n\n return (\n <Stack\n data-ui-id=\"call-composite-local-preview\"\n className={props.mobileView ? localPreviewContainerStyleMobile(theme) : localPreviewContainerStyleDesktop(theme)}\n >\n <VideoTile\n styles={localPreviewTileStyle}\n renderElement={\n localPreviewProps?.videoStreamElement ? (\n <StreamMedia videoStreamElement={localPreviewProps.videoStreamElement} />\n ) : undefined\n }\n onRenderPlaceholder={onRenderPlaceholder}\n >\n <ControlBar layout=\"floatingBottom\">\n <MicrophoneButton\n data-ui-id=\"call-composite-local-device-settings-microphone-button\"\n checked={isLocalMicrophoneEnabled}\n onToggleMicrophone={onToggleMic}\n disabled={!microphonePermissionGranted || !hasMicrophones}\n showLabel={true}\n // disable tooltip as it obscures list of devices on mobile\n strings={\n props.mobileView ? { tooltipOnContent: '', tooltipOffContent: '', tooltipDisabledContent: '' } : {}\n }\n styles={localPreviewButtonStyle(props.mobileView)}\n />\n <CameraButton\n data-ui-id=\"call-composite-local-device-settings-camera-button\"\n {...cameraButtonProps}\n onToggleCamera={props.onToggleCamera}\n showLabel={true}\n disabled={!cameraPermissionGranted || !hasCameras || props.cameraLoading}\n // disable tooltip as it obscures list of devices on mobile\n strings={\n props.mobileView\n ? {\n tooltipOnContent: '',\n tooltipOffContent: '',\n tooltipDisabledContent: '',\n tooltipVideoLoadingContent: ''\n }\n : {}\n }\n styles={localPreviewButtonStyle(props.mobileView)}\n />\n {props.showDevicesButton && (\n <DevicesButton\n data-ui-id=\"call-composite-local-device-settings-options-button\"\n {...devicesButtonProps}\n // disable button whilst all other buttons are disabled\n disabled={(!microphonePermissionGranted && !cameraPermissionGranted && hasNoSpeakers) || hasNoDevices}\n showLabel={true}\n // disable tooltip as it obscures list of devices on mobile\n strings={props.mobileView ? { tooltipContent: '' } : {}}\n styles={devicesButtonStyles}\n />\n )}\n </ControlBar>\n </VideoTile>\n </Stack>\n );\n};\n"]}
|
@@ -32,7 +32,7 @@ export const usePeoplePane = (props) => {
|
|
32
32
|
localeStrings.muteAllCancelButtonLabel
|
33
33
|
]);
|
34
34
|
const onMuteAllPromptConfirm = useCallback(() => {
|
35
|
-
onMuteAllRemoteParticipants
|
35
|
+
onMuteAllRemoteParticipants === null || onMuteAllRemoteParticipants === void 0 ? void 0 : onMuteAllRemoteParticipants();
|
36
36
|
setShowMuteAllPrompt(false);
|
37
37
|
}, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
|
38
38
|
const [showForbidOthersAudioPrompt, setShowForbidOthersAudioPrompt] = useState(false);
|
@@ -40,19 +40,19 @@ export const usePeoplePane = (props) => {
|
|
40
40
|
const [showForbidOthersVideoPrompt, setShowForbidOthersVideoPrompt] = useState(false);
|
41
41
|
const [showPermitOthersVideoPrompt, setShowPermitOthersVideoPrompt] = useState(false);
|
42
42
|
const onForbidAllAttendeesPromptConfirm = useCallback(() => {
|
43
|
-
onForbidOthersAudio
|
43
|
+
onForbidOthersAudio === null || onForbidOthersAudio === void 0 ? void 0 : onForbidOthersAudio();
|
44
44
|
setShowForbidOthersAudioPrompt(false);
|
45
45
|
}, [onForbidOthersAudio, setShowForbidOthersAudioPrompt]);
|
46
46
|
const onPermitAllAttendeesPromptConfirm = useCallback(() => {
|
47
|
-
onPermitOthersAudio
|
47
|
+
onPermitOthersAudio === null || onPermitOthersAudio === void 0 ? void 0 : onPermitOthersAudio();
|
48
48
|
setShowPermitOthersAudioPrompt(false);
|
49
49
|
}, [onPermitOthersAudio, setShowPermitOthersAudioPrompt]);
|
50
50
|
const onForbidOthersVideoPromptConfirm = useCallback(() => {
|
51
|
-
onForbidOthersVideo
|
51
|
+
onForbidOthersVideo === null || onForbidOthersVideo === void 0 ? void 0 : onForbidOthersVideo();
|
52
52
|
setShowForbidOthersVideoPrompt(false);
|
53
53
|
}, [onForbidOthersVideo, setShowForbidOthersVideoPrompt]);
|
54
54
|
const onPermitOthersVideoPromptConfirm = useCallback(() => {
|
55
|
-
onPermitOthersVideo
|
55
|
+
onPermitOthersVideo === null || onPermitOthersVideo === void 0 ? void 0 : onPermitOthersVideo();
|
56
56
|
setShowPermitOthersVideoPrompt(false);
|
57
57
|
}, [onPermitOthersVideo, setShowPermitOthersVideoPrompt]);
|
58
58
|
const sidePaneHeaderMenuProps = useMemo(() => {
|
@@ -94,8 +94,7 @@ export const usePeoplePane = (props) => {
|
|
94
94
|
const isMeetingAudioPermitted = meetingMediaAccess ? meetingMediaAccess.isAudioPermitted : true;
|
95
95
|
const isMeetingVideoPermitted = meetingMediaAccess ? meetingMediaAccess.isVideoPermitted : true;
|
96
96
|
if (onForbidOthersAudio && remoteParticipants) {
|
97
|
-
hasAttendee &&
|
98
|
-
isMeetingAudioPermitted &&
|
97
|
+
if (hasAttendee && isMeetingAudioPermitted) {
|
99
98
|
menuItems.push({
|
100
99
|
['data-ui-id']: 'people-pane-forbid-all-attendees-audio',
|
101
100
|
key: 'forbidOthersAudio',
|
@@ -110,10 +109,10 @@ export const usePeoplePane = (props) => {
|
|
110
109
|
ariaLabel: localeStrings.forbidOthersAudioMenuLabel,
|
111
110
|
disabled: !hasAttendee
|
112
111
|
});
|
112
|
+
}
|
113
113
|
}
|
114
114
|
if (onPermitOthersAudio && remoteParticipants) {
|
115
|
-
hasAttendee &&
|
116
|
-
!isMeetingAudioPermitted &&
|
115
|
+
if (hasAttendee && !isMeetingAudioPermitted) {
|
117
116
|
menuItems.push({
|
118
117
|
['data-ui-id']: 'people-pane-permit-all-attendees-audio',
|
119
118
|
key: 'permitOthersAudio',
|
@@ -128,10 +127,10 @@ export const usePeoplePane = (props) => {
|
|
128
127
|
ariaLabel: localeStrings.permitOthersAudioMenuLabel,
|
129
128
|
disabled: !hasAttendee
|
130
129
|
});
|
130
|
+
}
|
131
131
|
}
|
132
132
|
if (onForbidOthersVideo && remoteParticipants) {
|
133
|
-
hasAttendee &&
|
134
|
-
isMeetingVideoPermitted &&
|
133
|
+
if (hasAttendee && isMeetingVideoPermitted) {
|
135
134
|
menuItems.push({
|
136
135
|
['data-ui-id']: 'people-pane-forbid-all-attendees-video',
|
137
136
|
key: 'forbidOthersVideo',
|
@@ -146,10 +145,10 @@ export const usePeoplePane = (props) => {
|
|
146
145
|
ariaLabel: localeStrings.forbidOthersVideoMenuLabel,
|
147
146
|
disabled: !hasAttendee
|
148
147
|
});
|
148
|
+
}
|
149
149
|
}
|
150
150
|
if (onPermitOthersVideo && remoteParticipants) {
|
151
|
-
hasAttendee &&
|
152
|
-
!isMeetingVideoPermitted &&
|
151
|
+
if (hasAttendee && !isMeetingVideoPermitted) {
|
153
152
|
menuItems.push({
|
154
153
|
['data-ui-id']: 'people-pane-permit-all-attendees-video',
|
155
154
|
key: 'permitOthersVideo',
|
@@ -164,6 +163,7 @@ export const usePeoplePane = (props) => {
|
|
164
163
|
ariaLabel: localeStrings.permitOthersVideoMenuLabel,
|
165
164
|
disabled: !hasAttendee
|
166
165
|
});
|
166
|
+
}
|
167
167
|
}
|
168
168
|
if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {
|
169
169
|
menuItems.push({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"usePeoplePane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { RefObject, useCallback, useEffect, useMemo, useState } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\nimport { PeoplePaneContent } from '../../../common/PeoplePaneContent';\nimport { useLocale } from '../../../localization';\nimport { ParticipantMenuItemsCallback, _DrawerMenuItemProps, MediaAccess } from '@internal/react-components';\nimport { AvatarPersonaDataCallback } from '../../../common/AvatarPersona';\nimport { IButton, IContextualMenuProps, IContextualMenuItem } from '@fluentui/react';\nimport { useSelector } from '../../hooks/useSelector';\nimport { getAlternateCallerId, getRemoteParticipants, getRole } from '../../selectors/baseSelectors';\nimport { Prompt } from '../Prompt';\n\nconst PEOPLE_SIDE_PANE_ID = 'people';\n\n/** @private */\nexport const usePeoplePane = (props: {\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n setDrawerMenuItems: (items: _DrawerMenuItemProps[]) => void;\n inviteLink?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n mobileView?: boolean;\n peopleButtonRef?: RefObject<IButton>;\n setParticipantActioned?: (userId: string) => void;\n spotlightedParticipantUserIds?: string[];\n onStartLocalSpotlight?: () => Promise<void>;\n onStopLocalSpotlight?: () => Promise<void>;\n onStartRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n onStopRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n onStopAllSpotlight?: () => Promise<void>;\n maxParticipantsToSpotlight?: number;\n onMuteParticipant?: (userId: string) => Promise<void>;\n onMuteAllRemoteParticipants?: () => Promise<void>;\n pinnedParticipants?: string[];\n onPinParticipant?: (userId: string) => void;\n onUnpinParticipant?: (userId: string) => void;\n disablePinMenuItem?: boolean;\n onForbidAudio?: (userIds: string[]) => Promise<void>;\n onPermitAudio?: (userIds: string[]) => Promise<void>;\n onForbidOthersAudio?: () => Promise<void>;\n onPermitOthersAudio?: () => Promise<void>;\n onForbidVideo?: (userIds: string[]) => Promise<void>;\n onPermitVideo?: (userIds: string[]) => Promise<void>;\n onForbidOthersVideo?: () => Promise<void>;\n onPermitOthersVideo?: () => Promise<void>;\n meetingMediaAccess?: MediaAccess;\n sidePaneDismissButtonRef?: RefObject<IButton>;\n chatButtonPresent?: boolean;\n}): {\n openPeoplePane: () => void;\n closePeoplePane: () => void;\n isPeoplePaneOpen: boolean;\n} => {\n const {\n updateSidePaneRenderer,\n inviteLink,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n setDrawerMenuItems,\n mobileView,\n peopleButtonRef,\n setParticipantActioned,\n spotlightedParticipantUserIds,\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n onStopAllSpotlight,\n maxParticipantsToSpotlight,\n onMuteParticipant,\n pinnedParticipants,\n onPinParticipant,\n onUnpinParticipant,\n disablePinMenuItem,\n onMuteAllRemoteParticipants,\n onForbidAudio,\n onPermitAudio,\n onForbidOthersAudio,\n onPermitOthersAudio,\n onForbidVideo,\n onPermitVideo,\n onForbidOthersVideo,\n onPermitOthersVideo,\n meetingMediaAccess,\n sidePaneDismissButtonRef,\n chatButtonPresent\n } = props;\n\n const closePane = useCallback(() => {\n updateSidePaneRenderer(undefined);\n peopleButtonRef?.current?.focus();\n }, [peopleButtonRef, updateSidePaneRenderer]);\n\n const localeStrings = useLocale().strings.call;\n const remoteParticipants = useSelector(getRemoteParticipants);\n const [showMuteAllPrompt, setShowMuteAllPrompt] = useState(false);\n const muteAllPromptLabels = useMemo(\n () => ({\n confirmButtonLabel: localeStrings.muteAllConfirmButtonLabel,\n heading: localeStrings.muteAllDialogTitle,\n text: localeStrings.muteAllDialogContent,\n cancelButtonLabel: localeStrings.muteAllCancelButtonLabel\n }),\n [\n localeStrings.muteAllConfirmButtonLabel,\n localeStrings.muteAllDialogTitle,\n localeStrings.muteAllDialogContent,\n localeStrings.muteAllCancelButtonLabel\n ]\n );\n\n const onMuteAllPromptConfirm = useCallback(() => {\n onMuteAllRemoteParticipants && onMuteAllRemoteParticipants();\n setShowMuteAllPrompt(false);\n }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);\n\n const [showForbidOthersAudioPrompt, setShowForbidOthersAudioPrompt] = useState(false);\n const [showPermitOthersAudioPrompt, setShowPermitOthersAudioPrompt] = useState(false);\n const [showForbidOthersVideoPrompt, setShowForbidOthersVideoPrompt] = useState(false);\n const [showPermitOthersVideoPrompt, setShowPermitOthersVideoPrompt] = useState(false);\n\n const onForbidAllAttendeesPromptConfirm = useCallback(() => {\n onForbidOthersAudio && onForbidOthersAudio();\n setShowForbidOthersAudioPrompt(false);\n }, [onForbidOthersAudio, setShowForbidOthersAudioPrompt]);\n\n const onPermitAllAttendeesPromptConfirm = useCallback(() => {\n onPermitOthersAudio && onPermitOthersAudio();\n setShowPermitOthersAudioPrompt(false);\n }, [onPermitOthersAudio, setShowPermitOthersAudioPrompt]);\n\n const onForbidOthersVideoPromptConfirm = useCallback(() => {\n onForbidOthersVideo && onForbidOthersVideo();\n setShowForbidOthersVideoPrompt(false);\n }, [onForbidOthersVideo, setShowForbidOthersVideoPrompt]);\n\n const onPermitOthersVideoPromptConfirm = useCallback(() => {\n onPermitOthersVideo && onPermitOthersVideo();\n setShowPermitOthersVideoPrompt(false);\n }, [onPermitOthersVideo, setShowPermitOthersVideoPrompt]);\n\n const sidePaneHeaderMenuProps: IContextualMenuProps = useMemo(() => {\n const menuItems: IContextualMenuItem[] = [];\n if (onMuteAllRemoteParticipants && remoteParticipants) {\n let isAllMuted = true;\n if (remoteParticipants) {\n for (const participant of Object.values(remoteParticipants)) {\n if (!participant.isMuted) {\n isAllMuted = false;\n break;\n }\n }\n }\n menuItems.push({\n ['data-ui-id']: 'people-pane-mute-all-remote-participants',\n key: 'muteAllRemoteParticipants',\n text: localeStrings.muteAllMenuLabel,\n iconProps: {\n iconName: 'ContextualMenuMicMutedIcon',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowMuteAllPrompt(true);\n },\n ariaLabel: localeStrings.muteAllMenuLabel,\n disabled: isAllMuted\n });\n }\n\n let hasAttendee = false;\n if (remoteParticipants) {\n for (const participant of Object.values(remoteParticipants)) {\n if (participant.role && participant.role === 'Attendee') {\n hasAttendee = true;\n break;\n }\n }\n }\n\n const isMeetingAudioPermitted = meetingMediaAccess ? meetingMediaAccess.isAudioPermitted : true;\n const isMeetingVideoPermitted = meetingMediaAccess ? meetingMediaAccess.isVideoPermitted : true;\n if (onForbidOthersAudio && remoteParticipants) {\n hasAttendee &&\n isMeetingAudioPermitted &&\n menuItems.push({\n ['data-ui-id']: 'people-pane-forbid-all-attendees-audio',\n key: 'forbidOthersAudio',\n text: localeStrings.forbidOthersAudioMenuLabel,\n iconProps: {\n iconName: 'ControlButtonMicProhibited',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowForbidOthersAudioPrompt(true);\n },\n ariaLabel: localeStrings.forbidOthersAudioMenuLabel,\n disabled: !hasAttendee\n });\n }\n\n if (onPermitOthersAudio && remoteParticipants) {\n hasAttendee &&\n !isMeetingAudioPermitted &&\n menuItems.push({\n ['data-ui-id']: 'people-pane-permit-all-attendees-audio',\n key: 'permitOthersAudio',\n text: localeStrings.permitOthersAudioMenuLabel,\n iconProps: {\n iconName: 'ControlButtonMicOn',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowPermitOthersAudioPrompt(true);\n },\n ariaLabel: localeStrings.permitOthersAudioMenuLabel,\n disabled: !hasAttendee\n });\n }\n\n if (onForbidOthersVideo && remoteParticipants) {\n hasAttendee &&\n isMeetingVideoPermitted &&\n menuItems.push({\n ['data-ui-id']: 'people-pane-forbid-all-attendees-video',\n key: 'forbidOthersVideo',\n text: localeStrings.forbidOthersVideoMenuLabel,\n iconProps: {\n iconName: 'ControlButtonCameraProhibitedSmall',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowForbidOthersVideoPrompt(true);\n },\n ariaLabel: localeStrings.forbidOthersVideoMenuLabel,\n disabled: !hasAttendee\n });\n }\n\n if (onPermitOthersVideo && remoteParticipants) {\n hasAttendee &&\n !isMeetingVideoPermitted &&\n menuItems.push({\n ['data-ui-id']: 'people-pane-permit-all-attendees-video',\n key: 'permitOthersVideo',\n text: localeStrings.permitOthersVideoMenuLabel,\n iconProps: {\n iconName: 'ControlButtonCameraOn',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowPermitOthersVideoPrompt(true);\n },\n ariaLabel: localeStrings.permitOthersVideoMenuLabel,\n disabled: !hasAttendee\n });\n }\n\n if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {\n menuItems.push({\n key: 'stopAllSpotlightKey',\n text: localeStrings.stopAllSpotlightMenuLabel,\n iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },\n onClick: () => {\n onStopAllSpotlight();\n },\n ariaLabel: localeStrings.stopAllSpotlightMenuLabel\n });\n }\n return {\n items: menuItems\n };\n }, [\n onMuteAllRemoteParticipants,\n remoteParticipants,\n meetingMediaAccess,\n onForbidOthersAudio,\n onPermitOthersAudio,\n onForbidOthersVideo,\n onPermitOthersVideo,\n onStopAllSpotlight,\n spotlightedParticipantUserIds,\n localeStrings.muteAllMenuLabel,\n localeStrings.forbidOthersAudioMenuLabel,\n localeStrings.permitOthersAudioMenuLabel,\n localeStrings.forbidOthersVideoMenuLabel,\n localeStrings.permitOthersVideoMenuLabel,\n localeStrings.stopAllSpotlightMenuLabel\n ]);\n\n const onRenderHeader = useCallback(\n () => (\n <SidePaneHeader\n onClose={closePane}\n paneOpenerButton={peopleButtonRef}\n headingText={localeStrings.peoplePaneTitle}\n dismissSidePaneButtonAriaLabel={localeStrings.dismissSidePaneButtonLabel}\n mobileView={mobileView ?? false}\n dismissButtonComponentRef={sidePaneDismissButtonRef}\n chatButtonPresent={chatButtonPresent}\n />\n ),\n [\n closePane,\n peopleButtonRef,\n localeStrings.peoplePaneTitle,\n localeStrings.dismissSidePaneButtonLabel,\n mobileView,\n sidePaneDismissButtonRef,\n chatButtonPresent\n ]\n );\n\n const onFetchParticipantMenuItemsForCallComposite = useCallback(\n (participantId: string, myUserId?: string, defaultMenuItems?: IContextualMenuItem[]): IContextualMenuItem[] => {\n let isPinned = pinnedParticipants?.includes(participantId);\n const _defaultMenuItems: IContextualMenuItem[] = [];\n const isSpotlighted = spotlightedParticipantUserIds?.includes(participantId);\n const isMe = myUserId === participantId;\n isPinned = isSpotlighted ? false : isPinned;\n if (onMuteParticipant && !isMe && remoteParticipants && remoteParticipants[participantId]) {\n const participant = remoteParticipants[participantId];\n const isMuted = !!participant?.isMuted;\n _defaultMenuItems.push({\n key: 'mute',\n text: 'Mute',\n role: 'menuitem',\n iconProps: {\n iconName: 'ContextualMenuMicMutedIcon',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n onMuteParticipant(participantId);\n },\n 'data-ui-id': 'participant-item-mute-participant',\n ariaLabel: 'Mute',\n disabled: isMuted\n });\n }\n\n const remoteParticipant = remoteParticipants?.[participantId];\n\n if (\n remoteParticipant?.mediaAccess &&\n !remoteParticipant.mediaAccess.isAudioPermitted &&\n remoteParticipant?.role === 'Attendee' &&\n onPermitAudio\n ) {\n _defaultMenuItems.push({\n key: 'permit-audio',\n text: localeStrings.permitAudioMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'ControlButtonMicOn',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onPermitAudio([participantId]);\n },\n 'data-ui-id': 'participant-item-permit-microphone-button',\n ariaLabel: localeStrings.permitAudioMenuLabel\n });\n }\n\n if (remoteParticipant?.mediaAccess?.isAudioPermitted && remoteParticipant?.role === 'Attendee' && onForbidAudio) {\n _defaultMenuItems.push({\n key: 'forbid-audio',\n text: localeStrings.forbidAudioMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'ControlButtonMicProhibited',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onForbidAudio([participantId]);\n },\n 'data-ui-id': 'participant-item-forbid-microphone-button',\n ariaLabel: localeStrings.forbidAudioMenuLabel\n });\n }\n\n if (\n remoteParticipant?.mediaAccess &&\n !remoteParticipant.mediaAccess.isVideoPermitted &&\n remoteParticipant?.role === 'Attendee' &&\n onPermitVideo\n ) {\n _defaultMenuItems.push({\n key: 'permit-video',\n text: localeStrings.permitVideoMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'ControlButtonCameraOn',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onPermitVideo([participantId]);\n },\n 'data-ui-id': 'participant-item-permit-camera-button',\n ariaLabel: localeStrings.permitVideoMenuLabel\n });\n }\n\n if (remoteParticipant?.mediaAccess?.isVideoPermitted && remoteParticipant?.role === 'Attendee' && onForbidVideo) {\n _defaultMenuItems.push({\n key: 'forbid-video',\n text: localeStrings.forbidVideoMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'ControlButtonCameraProhibitedSmall',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onForbidVideo([participantId]);\n },\n 'data-ui-id': 'participant-item-forbid-camera-button',\n ariaLabel: localeStrings.forbidVideoMenuLabel\n });\n }\n\n if (isSpotlighted) {\n const stopSpotlightMenuText = isMe\n ? localeStrings.stopSpotlightOnSelfMenuLabel\n : localeStrings.stopSpotlightMenuLabel;\n const onStopSpotlight = isMe\n ? onStopLocalSpotlight\n : onStopRemoteSpotlight\n ? () => {\n onStopRemoteSpotlight([participantId]);\n }\n : undefined;\n if (onStopSpotlight && stopSpotlightMenuText) {\n _defaultMenuItems.push({\n key: 'stop-spotlight',\n text: stopSpotlightMenuText,\n role: 'menuitem',\n onClick: onStopSpotlight,\n iconProps: {\n iconName: 'StopSpotlightContextualMenuItem',\n styles: { root: { lineHeight: 0 } }\n },\n ariaLabel: stopSpotlightMenuText\n });\n }\n } else {\n const startSpotlightMenuText =\n spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0\n ? localeStrings.addSpotlightMenuLabel\n : localeStrings.startSpotlightMenuLabel;\n const maxSpotlightedParticipantsReached = maxParticipantsToSpotlight\n ? spotlightedParticipantUserIds\n ? spotlightedParticipantUserIds.length >= maxParticipantsToSpotlight\n : false\n : false;\n const onStartSpotlight = isMe\n ? onStartLocalSpotlight\n : onStartRemoteSpotlight\n ? () => {\n onStartRemoteSpotlight([participantId]);\n }\n : undefined;\n if (onStartSpotlight && startSpotlightMenuText) {\n _defaultMenuItems.push({\n key: 'start-spotlight',\n text: startSpotlightMenuText,\n role: 'menuitem',\n onClick: onStartSpotlight,\n iconProps: {\n iconName: 'StartSpotlightContextualMenuItem',\n styles: { root: { lineHeight: 0 } }\n },\n ariaLabel: startSpotlightMenuText,\n disabled: maxSpotlightedParticipantsReached,\n title: maxSpotlightedParticipantsReached ? localeStrings.spotlightLimitReachedMenuTitle : undefined\n });\n }\n }\n if (!isMe && isPinned !== undefined) {\n if (isPinned && onUnpinParticipant && localeStrings?.unpinParticipantMenuLabel) {\n _defaultMenuItems.push({\n key: 'unpin',\n text: localeStrings?.unpinParticipantMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'UnpinParticipant',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onUnpinParticipant?.(participantId);\n },\n 'data-ui-id': 'participant-item-unpin-participant-button',\n ariaLabel: localeStrings.unpinParticipantMenuItemAriaLabel\n });\n }\n if (!isPinned && onPinParticipant && localeStrings?.pinParticipantMenuLabel) {\n _defaultMenuItems.push({\n key: 'pin',\n text: disablePinMenuItem\n ? localeStrings.pinParticipantLimitReachedMenuLabel\n : localeStrings.pinParticipantMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'PinParticipant',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onPinParticipant(participantId);\n },\n 'data-ui-id': 'participant-item-pin-participant-button',\n disabled: disablePinMenuItem || isSpotlighted,\n ariaLabel: localeStrings.pinParticipantMenuItemAriaLabel\n });\n }\n }\n if (defaultMenuItems) {\n _defaultMenuItems.push(...defaultMenuItems);\n }\n return onFetchParticipantMenuItems\n ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)\n : _defaultMenuItems;\n },\n [\n pinnedParticipants,\n spotlightedParticipantUserIds,\n onMuteParticipant,\n remoteParticipants,\n onPermitAudio,\n onForbidAudio,\n onPermitVideo,\n onForbidVideo,\n onFetchParticipantMenuItems,\n localeStrings.permitAudioMenuLabel,\n localeStrings.forbidAudioMenuLabel,\n localeStrings.permitVideoMenuLabel,\n localeStrings.forbidVideoMenuLabel,\n localeStrings.stopSpotlightOnSelfMenuLabel,\n localeStrings.stopSpotlightMenuLabel,\n localeStrings.addSpotlightMenuLabel,\n localeStrings.startSpotlightMenuLabel,\n localeStrings.spotlightLimitReachedMenuTitle,\n localeStrings?.unpinParticipantMenuLabel,\n localeStrings.pinParticipantMenuLabel,\n localeStrings.unpinParticipantMenuItemAriaLabel,\n localeStrings.pinParticipantLimitReachedMenuLabel,\n localeStrings.pinParticipantMenuItemAriaLabel,\n onStopLocalSpotlight,\n onStopRemoteSpotlight,\n maxParticipantsToSpotlight,\n onStartLocalSpotlight,\n onStartRemoteSpotlight,\n onUnpinParticipant,\n onPinParticipant,\n disablePinMenuItem\n ]\n );\n\n const role = useSelector(getRole);\n const alternateCallerId = useSelector(getAlternateCallerId);\n\n const onRenderContent = useCallback((): JSX.Element => {\n return (\n <>\n {\n <Prompt\n {...muteAllPromptLabels}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onMuteAllPromptConfirm()}\n isOpen={showMuteAllPrompt}\n onCancel={() => setShowMuteAllPrompt(false)}\n />\n }\n {\n <Prompt\n heading={localeStrings.forbidOthersAudioDialogTitle}\n text={localeStrings.forbidOthersAudioDialogContent}\n confirmButtonLabel={localeStrings.forbidOthersAudioConfirmButtonLabel}\n cancelButtonLabel={localeStrings.forbidOthersAudioCancelButtonLabel}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onForbidAllAttendeesPromptConfirm()}\n isOpen={showForbidOthersAudioPrompt}\n onCancel={() => setShowForbidOthersAudioPrompt(false)}\n />\n }\n {\n <Prompt\n heading={localeStrings.permitOthersAudioDialogTitle}\n text={localeStrings.permitOthersAudioDialogContent}\n confirmButtonLabel={localeStrings.permitOthersAudioConfirmButtonLabel}\n cancelButtonLabel={localeStrings.permitOthersAudioCancelButtonLabel}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onPermitAllAttendeesPromptConfirm()}\n isOpen={showPermitOthersAudioPrompt}\n onCancel={() => setShowForbidOthersAudioPrompt(false)}\n />\n }\n {\n <Prompt\n heading={localeStrings.forbidOthersVideoDialogTitle}\n text={localeStrings.forbidOthersVideoDialogContent}\n confirmButtonLabel={localeStrings.forbidOthersVideoConfirmButtonLabel}\n cancelButtonLabel={localeStrings.forbidOthersVideoCancelButtonLabel}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onForbidOthersVideoPromptConfirm()}\n isOpen={showForbidOthersVideoPrompt}\n onCancel={() => setShowForbidOthersVideoPrompt(false)}\n />\n }\n {\n <Prompt\n heading={localeStrings.permitOthersVideoDialogTitle}\n text={localeStrings.permitOthersVideoDialogContent}\n confirmButtonLabel={localeStrings.permitOthersVideoConfirmButtonLabel}\n cancelButtonLabel={localeStrings.permitOthersVideoCancelButtonLabel}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onPermitOthersVideoPromptConfirm()}\n isOpen={showPermitOthersVideoPrompt}\n onCancel={() => setShowForbidOthersVideoPrompt(false)}\n />\n }\n\n <PeoplePaneContent\n inviteLink={inviteLink}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={onFetchParticipantMenuItemsForCallComposite}\n setDrawerMenuItems={setDrawerMenuItems}\n mobileView={mobileView}\n setParticipantActioned={setParticipantActioned}\n participantListHeadingMoreButtonProps={sidePaneHeaderMenuProps}\n pinnedParticipants={pinnedParticipants}\n role={role}\n alternateCallerId={alternateCallerId}\n />\n </>\n );\n }, [\n muteAllPromptLabels,\n showMuteAllPrompt,\n localeStrings.forbidOthersAudioDialogTitle,\n localeStrings.forbidOthersAudioDialogContent,\n localeStrings.forbidOthersAudioConfirmButtonLabel,\n localeStrings.forbidOthersAudioCancelButtonLabel,\n localeStrings.permitOthersAudioDialogTitle,\n localeStrings.permitOthersAudioDialogContent,\n localeStrings.permitOthersAudioConfirmButtonLabel,\n localeStrings.permitOthersAudioCancelButtonLabel,\n localeStrings.forbidOthersVideoDialogTitle,\n localeStrings.forbidOthersVideoDialogContent,\n localeStrings.forbidOthersVideoConfirmButtonLabel,\n localeStrings.forbidOthersVideoCancelButtonLabel,\n localeStrings.permitOthersVideoDialogTitle,\n localeStrings.permitOthersVideoDialogContent,\n localeStrings.permitOthersVideoConfirmButtonLabel,\n localeStrings.permitOthersVideoCancelButtonLabel,\n showForbidOthersAudioPrompt,\n showPermitOthersAudioPrompt,\n showForbidOthersVideoPrompt,\n showPermitOthersVideoPrompt,\n inviteLink,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItemsForCallComposite,\n setDrawerMenuItems,\n mobileView,\n setParticipantActioned,\n sidePaneHeaderMenuProps,\n pinnedParticipants,\n role,\n alternateCallerId,\n onMuteAllPromptConfirm,\n onForbidAllAttendeesPromptConfirm,\n onPermitAllAttendeesPromptConfirm,\n onForbidOthersVideoPromptConfirm,\n onPermitOthersVideoPromptConfirm\n ]);\n\n const sidePaneRenderer: SidePaneRenderer = useMemo(\n () => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: PEOPLE_SIDE_PANE_ID\n }),\n [onRenderContent, onRenderHeader]\n );\n\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n }, [sidePaneRenderer, updateSidePaneRenderer]);\n\n const isOpen = useIsParticularSidePaneOpen(PEOPLE_SIDE_PANE_ID);\n\n // Update pane renderer if it is open and the openPane dep changes\n useEffect(() => {\n if (isOpen) {\n openPane();\n }\n }, [isOpen, openPane]);\n\n return { openPeoplePane: openPane, closePeoplePane: closePane, isPeoplePaneOpen: isOpen };\n};\n"]}
|
1
|
+
{"version":3,"file":"usePeoplePane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { RefObject, useCallback, useEffect, useMemo, useState } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\nimport { PeoplePaneContent } from '../../../common/PeoplePaneContent';\nimport { useLocale } from '../../../localization';\nimport { ParticipantMenuItemsCallback, _DrawerMenuItemProps, MediaAccess } from '@internal/react-components';\nimport { AvatarPersonaDataCallback } from '../../../common/AvatarPersona';\nimport { IButton, IContextualMenuProps, IContextualMenuItem } from '@fluentui/react';\nimport { useSelector } from '../../hooks/useSelector';\nimport { getAlternateCallerId, getRemoteParticipants, getRole } from '../../selectors/baseSelectors';\nimport { Prompt } from '../Prompt';\n\nconst PEOPLE_SIDE_PANE_ID = 'people';\n\n/** @private */\nexport const usePeoplePane = (props: {\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n setDrawerMenuItems: (items: _DrawerMenuItemProps[]) => void;\n inviteLink?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n mobileView?: boolean;\n peopleButtonRef?: RefObject<IButton>;\n setParticipantActioned?: (userId: string) => void;\n spotlightedParticipantUserIds?: string[];\n onStartLocalSpotlight?: () => Promise<void>;\n onStopLocalSpotlight?: () => Promise<void>;\n onStartRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n onStopRemoteSpotlight?: (userIds: string[]) => Promise<void>;\n onStopAllSpotlight?: () => Promise<void>;\n maxParticipantsToSpotlight?: number;\n onMuteParticipant?: (userId: string) => Promise<void>;\n onMuteAllRemoteParticipants?: () => Promise<void>;\n pinnedParticipants?: string[];\n onPinParticipant?: (userId: string) => void;\n onUnpinParticipant?: (userId: string) => void;\n disablePinMenuItem?: boolean;\n onForbidAudio?: (userIds: string[]) => Promise<void>;\n onPermitAudio?: (userIds: string[]) => Promise<void>;\n onForbidOthersAudio?: () => Promise<void>;\n onPermitOthersAudio?: () => Promise<void>;\n onForbidVideo?: (userIds: string[]) => Promise<void>;\n onPermitVideo?: (userIds: string[]) => Promise<void>;\n onForbidOthersVideo?: () => Promise<void>;\n onPermitOthersVideo?: () => Promise<void>;\n meetingMediaAccess?: MediaAccess;\n sidePaneDismissButtonRef?: RefObject<IButton>;\n chatButtonPresent?: boolean;\n}): {\n openPeoplePane: () => void;\n closePeoplePane: () => void;\n isPeoplePaneOpen: boolean;\n} => {\n const {\n updateSidePaneRenderer,\n inviteLink,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n setDrawerMenuItems,\n mobileView,\n peopleButtonRef,\n setParticipantActioned,\n spotlightedParticipantUserIds,\n onStartLocalSpotlight,\n onStopLocalSpotlight,\n onStartRemoteSpotlight,\n onStopRemoteSpotlight,\n onStopAllSpotlight,\n maxParticipantsToSpotlight,\n onMuteParticipant,\n pinnedParticipants,\n onPinParticipant,\n onUnpinParticipant,\n disablePinMenuItem,\n onMuteAllRemoteParticipants,\n onForbidAudio,\n onPermitAudio,\n onForbidOthersAudio,\n onPermitOthersAudio,\n onForbidVideo,\n onPermitVideo,\n onForbidOthersVideo,\n onPermitOthersVideo,\n meetingMediaAccess,\n sidePaneDismissButtonRef,\n chatButtonPresent\n } = props;\n\n const closePane = useCallback(() => {\n updateSidePaneRenderer(undefined);\n peopleButtonRef?.current?.focus();\n }, [peopleButtonRef, updateSidePaneRenderer]);\n\n const localeStrings = useLocale().strings.call;\n const remoteParticipants = useSelector(getRemoteParticipants);\n const [showMuteAllPrompt, setShowMuteAllPrompt] = useState(false);\n const muteAllPromptLabels = useMemo(\n () => ({\n confirmButtonLabel: localeStrings.muteAllConfirmButtonLabel,\n heading: localeStrings.muteAllDialogTitle,\n text: localeStrings.muteAllDialogContent,\n cancelButtonLabel: localeStrings.muteAllCancelButtonLabel\n }),\n [\n localeStrings.muteAllConfirmButtonLabel,\n localeStrings.muteAllDialogTitle,\n localeStrings.muteAllDialogContent,\n localeStrings.muteAllCancelButtonLabel\n ]\n );\n\n const onMuteAllPromptConfirm = useCallback(() => {\n onMuteAllRemoteParticipants?.();\n setShowMuteAllPrompt(false);\n }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);\n\n const [showForbidOthersAudioPrompt, setShowForbidOthersAudioPrompt] = useState(false);\n const [showPermitOthersAudioPrompt, setShowPermitOthersAudioPrompt] = useState(false);\n const [showForbidOthersVideoPrompt, setShowForbidOthersVideoPrompt] = useState(false);\n const [showPermitOthersVideoPrompt, setShowPermitOthersVideoPrompt] = useState(false);\n\n const onForbidAllAttendeesPromptConfirm = useCallback(() => {\n onForbidOthersAudio?.();\n setShowForbidOthersAudioPrompt(false);\n }, [onForbidOthersAudio, setShowForbidOthersAudioPrompt]);\n\n const onPermitAllAttendeesPromptConfirm = useCallback(() => {\n onPermitOthersAudio?.();\n setShowPermitOthersAudioPrompt(false);\n }, [onPermitOthersAudio, setShowPermitOthersAudioPrompt]);\n\n const onForbidOthersVideoPromptConfirm = useCallback(() => {\n onForbidOthersVideo?.();\n setShowForbidOthersVideoPrompt(false);\n }, [onForbidOthersVideo, setShowForbidOthersVideoPrompt]);\n\n const onPermitOthersVideoPromptConfirm = useCallback(() => {\n onPermitOthersVideo?.();\n setShowPermitOthersVideoPrompt(false);\n }, [onPermitOthersVideo, setShowPermitOthersVideoPrompt]);\n\n const sidePaneHeaderMenuProps: IContextualMenuProps = useMemo(() => {\n const menuItems: IContextualMenuItem[] = [];\n if (onMuteAllRemoteParticipants && remoteParticipants) {\n let isAllMuted = true;\n if (remoteParticipants) {\n for (const participant of Object.values(remoteParticipants)) {\n if (!participant.isMuted) {\n isAllMuted = false;\n break;\n }\n }\n }\n menuItems.push({\n ['data-ui-id']: 'people-pane-mute-all-remote-participants',\n key: 'muteAllRemoteParticipants',\n text: localeStrings.muteAllMenuLabel,\n iconProps: {\n iconName: 'ContextualMenuMicMutedIcon',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowMuteAllPrompt(true);\n },\n ariaLabel: localeStrings.muteAllMenuLabel,\n disabled: isAllMuted\n });\n }\n\n let hasAttendee = false;\n if (remoteParticipants) {\n for (const participant of Object.values(remoteParticipants)) {\n if (participant.role && participant.role === 'Attendee') {\n hasAttendee = true;\n break;\n }\n }\n }\n\n const isMeetingAudioPermitted = meetingMediaAccess ? meetingMediaAccess.isAudioPermitted : true;\n const isMeetingVideoPermitted = meetingMediaAccess ? meetingMediaAccess.isVideoPermitted : true;\n if (onForbidOthersAudio && remoteParticipants) {\n if (hasAttendee && isMeetingAudioPermitted) {\n menuItems.push({\n ['data-ui-id']: 'people-pane-forbid-all-attendees-audio',\n key: 'forbidOthersAudio',\n text: localeStrings.forbidOthersAudioMenuLabel,\n iconProps: {\n iconName: 'ControlButtonMicProhibited',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowForbidOthersAudioPrompt(true);\n },\n ariaLabel: localeStrings.forbidOthersAudioMenuLabel,\n disabled: !hasAttendee\n });\n }\n }\n\n if (onPermitOthersAudio && remoteParticipants) {\n if (hasAttendee && !isMeetingAudioPermitted) {\n menuItems.push({\n ['data-ui-id']: 'people-pane-permit-all-attendees-audio',\n key: 'permitOthersAudio',\n text: localeStrings.permitOthersAudioMenuLabel,\n iconProps: {\n iconName: 'ControlButtonMicOn',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowPermitOthersAudioPrompt(true);\n },\n ariaLabel: localeStrings.permitOthersAudioMenuLabel,\n disabled: !hasAttendee\n });\n }\n }\n\n if (onForbidOthersVideo && remoteParticipants) {\n if (hasAttendee && isMeetingVideoPermitted) {\n menuItems.push({\n ['data-ui-id']: 'people-pane-forbid-all-attendees-video',\n key: 'forbidOthersVideo',\n text: localeStrings.forbidOthersVideoMenuLabel,\n iconProps: {\n iconName: 'ControlButtonCameraProhibitedSmall',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowForbidOthersVideoPrompt(true);\n },\n ariaLabel: localeStrings.forbidOthersVideoMenuLabel,\n disabled: !hasAttendee\n });\n }\n }\n\n if (onPermitOthersVideo && remoteParticipants) {\n if (hasAttendee && !isMeetingVideoPermitted) {\n menuItems.push({\n ['data-ui-id']: 'people-pane-permit-all-attendees-video',\n key: 'permitOthersVideo',\n text: localeStrings.permitOthersVideoMenuLabel,\n iconProps: {\n iconName: 'ControlButtonCameraOn',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n setShowPermitOthersVideoPrompt(true);\n },\n ariaLabel: localeStrings.permitOthersVideoMenuLabel,\n disabled: !hasAttendee\n });\n }\n }\n\n if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {\n menuItems.push({\n key: 'stopAllSpotlightKey',\n text: localeStrings.stopAllSpotlightMenuLabel,\n iconProps: { iconName: 'StopAllSpotlightMenuButton', styles: { root: { lineHeight: 0 } } },\n onClick: () => {\n onStopAllSpotlight();\n },\n ariaLabel: localeStrings.stopAllSpotlightMenuLabel\n });\n }\n return {\n items: menuItems\n };\n }, [\n onMuteAllRemoteParticipants,\n remoteParticipants,\n meetingMediaAccess,\n onForbidOthersAudio,\n onPermitOthersAudio,\n onForbidOthersVideo,\n onPermitOthersVideo,\n onStopAllSpotlight,\n spotlightedParticipantUserIds,\n localeStrings.muteAllMenuLabel,\n localeStrings.forbidOthersAudioMenuLabel,\n localeStrings.permitOthersAudioMenuLabel,\n localeStrings.forbidOthersVideoMenuLabel,\n localeStrings.permitOthersVideoMenuLabel,\n localeStrings.stopAllSpotlightMenuLabel\n ]);\n\n const onRenderHeader = useCallback(\n () => (\n <SidePaneHeader\n onClose={closePane}\n paneOpenerButton={peopleButtonRef}\n headingText={localeStrings.peoplePaneTitle}\n dismissSidePaneButtonAriaLabel={localeStrings.dismissSidePaneButtonLabel}\n mobileView={mobileView ?? false}\n dismissButtonComponentRef={sidePaneDismissButtonRef}\n chatButtonPresent={chatButtonPresent}\n />\n ),\n [\n closePane,\n peopleButtonRef,\n localeStrings.peoplePaneTitle,\n localeStrings.dismissSidePaneButtonLabel,\n mobileView,\n sidePaneDismissButtonRef,\n chatButtonPresent\n ]\n );\n\n const onFetchParticipantMenuItemsForCallComposite = useCallback(\n (participantId: string, myUserId?: string, defaultMenuItems?: IContextualMenuItem[]): IContextualMenuItem[] => {\n let isPinned = pinnedParticipants?.includes(participantId);\n const _defaultMenuItems: IContextualMenuItem[] = [];\n const isSpotlighted = spotlightedParticipantUserIds?.includes(participantId);\n const isMe = myUserId === participantId;\n isPinned = isSpotlighted ? false : isPinned;\n if (onMuteParticipant && !isMe && remoteParticipants && remoteParticipants[participantId]) {\n const participant = remoteParticipants[participantId];\n const isMuted = !!participant?.isMuted;\n _defaultMenuItems.push({\n key: 'mute',\n text: 'Mute',\n role: 'menuitem',\n iconProps: {\n iconName: 'ContextualMenuMicMutedIcon',\n styles: { root: { lineHeight: 0 } }\n },\n onClick: () => {\n onMuteParticipant(participantId);\n },\n 'data-ui-id': 'participant-item-mute-participant',\n ariaLabel: 'Mute',\n disabled: isMuted\n });\n }\n\n const remoteParticipant = remoteParticipants?.[participantId];\n\n if (\n remoteParticipant?.mediaAccess &&\n !remoteParticipant.mediaAccess.isAudioPermitted &&\n remoteParticipant?.role === 'Attendee' &&\n onPermitAudio\n ) {\n _defaultMenuItems.push({\n key: 'permit-audio',\n text: localeStrings.permitAudioMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'ControlButtonMicOn',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onPermitAudio([participantId]);\n },\n 'data-ui-id': 'participant-item-permit-microphone-button',\n ariaLabel: localeStrings.permitAudioMenuLabel\n });\n }\n\n if (remoteParticipant?.mediaAccess?.isAudioPermitted && remoteParticipant?.role === 'Attendee' && onForbidAudio) {\n _defaultMenuItems.push({\n key: 'forbid-audio',\n text: localeStrings.forbidAudioMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'ControlButtonMicProhibited',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onForbidAudio([participantId]);\n },\n 'data-ui-id': 'participant-item-forbid-microphone-button',\n ariaLabel: localeStrings.forbidAudioMenuLabel\n });\n }\n\n if (\n remoteParticipant?.mediaAccess &&\n !remoteParticipant.mediaAccess.isVideoPermitted &&\n remoteParticipant?.role === 'Attendee' &&\n onPermitVideo\n ) {\n _defaultMenuItems.push({\n key: 'permit-video',\n text: localeStrings.permitVideoMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'ControlButtonCameraOn',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onPermitVideo([participantId]);\n },\n 'data-ui-id': 'participant-item-permit-camera-button',\n ariaLabel: localeStrings.permitVideoMenuLabel\n });\n }\n\n if (remoteParticipant?.mediaAccess?.isVideoPermitted && remoteParticipant?.role === 'Attendee' && onForbidVideo) {\n _defaultMenuItems.push({\n key: 'forbid-video',\n text: localeStrings.forbidVideoMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'ControlButtonCameraProhibitedSmall',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onForbidVideo([participantId]);\n },\n 'data-ui-id': 'participant-item-forbid-camera-button',\n ariaLabel: localeStrings.forbidVideoMenuLabel\n });\n }\n\n if (isSpotlighted) {\n const stopSpotlightMenuText = isMe\n ? localeStrings.stopSpotlightOnSelfMenuLabel\n : localeStrings.stopSpotlightMenuLabel;\n const onStopSpotlight = isMe\n ? onStopLocalSpotlight\n : onStopRemoteSpotlight\n ? () => {\n onStopRemoteSpotlight([participantId]);\n }\n : undefined;\n if (onStopSpotlight && stopSpotlightMenuText) {\n _defaultMenuItems.push({\n key: 'stop-spotlight',\n text: stopSpotlightMenuText,\n role: 'menuitem',\n onClick: onStopSpotlight,\n iconProps: {\n iconName: 'StopSpotlightContextualMenuItem',\n styles: { root: { lineHeight: 0 } }\n },\n ariaLabel: stopSpotlightMenuText\n });\n }\n } else {\n const startSpotlightMenuText =\n spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0\n ? localeStrings.addSpotlightMenuLabel\n : localeStrings.startSpotlightMenuLabel;\n const maxSpotlightedParticipantsReached = maxParticipantsToSpotlight\n ? spotlightedParticipantUserIds\n ? spotlightedParticipantUserIds.length >= maxParticipantsToSpotlight\n : false\n : false;\n const onStartSpotlight = isMe\n ? onStartLocalSpotlight\n : onStartRemoteSpotlight\n ? () => {\n onStartRemoteSpotlight([participantId]);\n }\n : undefined;\n if (onStartSpotlight && startSpotlightMenuText) {\n _defaultMenuItems.push({\n key: 'start-spotlight',\n text: startSpotlightMenuText,\n role: 'menuitem',\n onClick: onStartSpotlight,\n iconProps: {\n iconName: 'StartSpotlightContextualMenuItem',\n styles: { root: { lineHeight: 0 } }\n },\n ariaLabel: startSpotlightMenuText,\n disabled: maxSpotlightedParticipantsReached,\n title: maxSpotlightedParticipantsReached ? localeStrings.spotlightLimitReachedMenuTitle : undefined\n });\n }\n }\n if (!isMe && isPinned !== undefined) {\n if (isPinned && onUnpinParticipant && localeStrings?.unpinParticipantMenuLabel) {\n _defaultMenuItems.push({\n key: 'unpin',\n text: localeStrings?.unpinParticipantMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'UnpinParticipant',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onUnpinParticipant?.(participantId);\n },\n 'data-ui-id': 'participant-item-unpin-participant-button',\n ariaLabel: localeStrings.unpinParticipantMenuItemAriaLabel\n });\n }\n if (!isPinned && onPinParticipant && localeStrings?.pinParticipantMenuLabel) {\n _defaultMenuItems.push({\n key: 'pin',\n text: disablePinMenuItem\n ? localeStrings.pinParticipantLimitReachedMenuLabel\n : localeStrings.pinParticipantMenuLabel,\n role: 'menuitem',\n iconProps: {\n iconName: 'PinParticipant',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onPinParticipant(participantId);\n },\n 'data-ui-id': 'participant-item-pin-participant-button',\n disabled: disablePinMenuItem || isSpotlighted,\n ariaLabel: localeStrings.pinParticipantMenuItemAriaLabel\n });\n }\n }\n if (defaultMenuItems) {\n _defaultMenuItems.push(...defaultMenuItems);\n }\n return onFetchParticipantMenuItems\n ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)\n : _defaultMenuItems;\n },\n [\n pinnedParticipants,\n spotlightedParticipantUserIds,\n onMuteParticipant,\n remoteParticipants,\n onPermitAudio,\n onForbidAudio,\n onPermitVideo,\n onForbidVideo,\n onFetchParticipantMenuItems,\n localeStrings.permitAudioMenuLabel,\n localeStrings.forbidAudioMenuLabel,\n localeStrings.permitVideoMenuLabel,\n localeStrings.forbidVideoMenuLabel,\n localeStrings.stopSpotlightOnSelfMenuLabel,\n localeStrings.stopSpotlightMenuLabel,\n localeStrings.addSpotlightMenuLabel,\n localeStrings.startSpotlightMenuLabel,\n localeStrings.spotlightLimitReachedMenuTitle,\n localeStrings?.unpinParticipantMenuLabel,\n localeStrings.pinParticipantMenuLabel,\n localeStrings.unpinParticipantMenuItemAriaLabel,\n localeStrings.pinParticipantLimitReachedMenuLabel,\n localeStrings.pinParticipantMenuItemAriaLabel,\n onStopLocalSpotlight,\n onStopRemoteSpotlight,\n maxParticipantsToSpotlight,\n onStartLocalSpotlight,\n onStartRemoteSpotlight,\n onUnpinParticipant,\n onPinParticipant,\n disablePinMenuItem\n ]\n );\n\n const role = useSelector(getRole);\n const alternateCallerId = useSelector(getAlternateCallerId);\n\n const onRenderContent = useCallback((): JSX.Element => {\n return (\n <>\n {\n <Prompt\n {...muteAllPromptLabels}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onMuteAllPromptConfirm()}\n isOpen={showMuteAllPrompt}\n onCancel={() => setShowMuteAllPrompt(false)}\n />\n }\n {\n <Prompt\n heading={localeStrings.forbidOthersAudioDialogTitle}\n text={localeStrings.forbidOthersAudioDialogContent}\n confirmButtonLabel={localeStrings.forbidOthersAudioConfirmButtonLabel}\n cancelButtonLabel={localeStrings.forbidOthersAudioCancelButtonLabel}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onForbidAllAttendeesPromptConfirm()}\n isOpen={showForbidOthersAudioPrompt}\n onCancel={() => setShowForbidOthersAudioPrompt(false)}\n />\n }\n {\n <Prompt\n heading={localeStrings.permitOthersAudioDialogTitle}\n text={localeStrings.permitOthersAudioDialogContent}\n confirmButtonLabel={localeStrings.permitOthersAudioConfirmButtonLabel}\n cancelButtonLabel={localeStrings.permitOthersAudioCancelButtonLabel}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onPermitAllAttendeesPromptConfirm()}\n isOpen={showPermitOthersAudioPrompt}\n onCancel={() => setShowForbidOthersAudioPrompt(false)}\n />\n }\n {\n <Prompt\n heading={localeStrings.forbidOthersVideoDialogTitle}\n text={localeStrings.forbidOthersVideoDialogContent}\n confirmButtonLabel={localeStrings.forbidOthersVideoConfirmButtonLabel}\n cancelButtonLabel={localeStrings.forbidOthersVideoCancelButtonLabel}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onForbidOthersVideoPromptConfirm()}\n isOpen={showForbidOthersVideoPrompt}\n onCancel={() => setShowForbidOthersVideoPrompt(false)}\n />\n }\n {\n <Prompt\n heading={localeStrings.permitOthersVideoDialogTitle}\n text={localeStrings.permitOthersVideoDialogContent}\n confirmButtonLabel={localeStrings.permitOthersVideoConfirmButtonLabel}\n cancelButtonLabel={localeStrings.permitOthersVideoCancelButtonLabel}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n onConfirm={() => onPermitOthersVideoPromptConfirm()}\n isOpen={showPermitOthersVideoPrompt}\n onCancel={() => setShowForbidOthersVideoPrompt(false)}\n />\n }\n\n <PeoplePaneContent\n inviteLink={inviteLink}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n onFetchParticipantMenuItems={onFetchParticipantMenuItemsForCallComposite}\n setDrawerMenuItems={setDrawerMenuItems}\n mobileView={mobileView}\n setParticipantActioned={setParticipantActioned}\n participantListHeadingMoreButtonProps={sidePaneHeaderMenuProps}\n pinnedParticipants={pinnedParticipants}\n role={role}\n alternateCallerId={alternateCallerId}\n />\n </>\n );\n }, [\n muteAllPromptLabels,\n showMuteAllPrompt,\n localeStrings.forbidOthersAudioDialogTitle,\n localeStrings.forbidOthersAudioDialogContent,\n localeStrings.forbidOthersAudioConfirmButtonLabel,\n localeStrings.forbidOthersAudioCancelButtonLabel,\n localeStrings.permitOthersAudioDialogTitle,\n localeStrings.permitOthersAudioDialogContent,\n localeStrings.permitOthersAudioConfirmButtonLabel,\n localeStrings.permitOthersAudioCancelButtonLabel,\n localeStrings.forbidOthersVideoDialogTitle,\n localeStrings.forbidOthersVideoDialogContent,\n localeStrings.forbidOthersVideoConfirmButtonLabel,\n localeStrings.forbidOthersVideoCancelButtonLabel,\n localeStrings.permitOthersVideoDialogTitle,\n localeStrings.permitOthersVideoDialogContent,\n localeStrings.permitOthersVideoConfirmButtonLabel,\n localeStrings.permitOthersVideoCancelButtonLabel,\n showForbidOthersAudioPrompt,\n showPermitOthersAudioPrompt,\n showForbidOthersVideoPrompt,\n showPermitOthersVideoPrompt,\n inviteLink,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItemsForCallComposite,\n setDrawerMenuItems,\n mobileView,\n setParticipantActioned,\n sidePaneHeaderMenuProps,\n pinnedParticipants,\n role,\n alternateCallerId,\n onMuteAllPromptConfirm,\n onForbidAllAttendeesPromptConfirm,\n onPermitAllAttendeesPromptConfirm,\n onForbidOthersVideoPromptConfirm,\n onPermitOthersVideoPromptConfirm\n ]);\n\n const sidePaneRenderer: SidePaneRenderer = useMemo(\n () => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: PEOPLE_SIDE_PANE_ID\n }),\n [onRenderContent, onRenderHeader]\n );\n\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n }, [sidePaneRenderer, updateSidePaneRenderer]);\n\n const isOpen = useIsParticularSidePaneOpen(PEOPLE_SIDE_PANE_ID);\n\n // Update pane renderer if it is open and the openPane dep changes\n useEffect(() => {\n if (isOpen) {\n openPane();\n }\n }, [isOpen, openPane]);\n\n return { openPeoplePane: openPane, closePeoplePane: closePane, isPeoplePaneOpen: isOpen };\n};\n"]}
|
@@ -29,7 +29,9 @@ export const useVideoEffectsPane = (updateSidePaneRenderer, mobileView, latestEr
|
|
29
29
|
const onRenderContent = useCallback(() => {
|
30
30
|
return (React.createElement(VideoEffectsPaneContent, { onDismissError: onDismissError, activeVideoEffectError: latestVideoEffectError, activeVideoEffectChange: () => {
|
31
31
|
// Clear any existing video effects error when the user clicks on a new video effect
|
32
|
-
|
32
|
+
if (latestVideoEffectError) {
|
33
|
+
onDismissError === null || onDismissError === void 0 ? void 0 : onDismissError(latestVideoEffectError);
|
34
|
+
}
|
33
35
|
}, updateFocusHandle: updateFocusHandle, backgroundImages: backgroundImages }));
|
34
36
|
}, [latestVideoEffectError, onDismissError, updateFocusHandle, backgroundImages]);
|
35
37
|
const sidePaneRenderer = useMemo(() => ({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useVideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAoB,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,eAAe;AACf,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC;AAEzD,eAAe;AACf,MAAM,CAAC,MAAM,iCAAiC,GAAG,IAAI,CAAC;AAEtD,eAAe;AACf,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,sBAAwE,EACxE,UAAmB,EACnB,YAAkC,EAClC,cAAmD,EACnD,eAA0C,EAM1C,EAAE;IACF,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;;QACjC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAClC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,KAAK,EAAE,CAAC;IACpC,CAAC,EAAE,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;;QACtC,OAAO,CACL,oBAAC,cAAc,IACb,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EACtD,8BAA8B,EAC5B,MAAA,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,mCAC9C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,mCACtD,OAAO,EAET,UAAU,EAAE,UAAU,GACtB,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAE5C,MAAM,sBAAsB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,0BAA0B,CAAC,CAAC;IACvG,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,EAAyB,EAAE,EAAE,CAAC,CAAC;IAEhF,MAAM,gBAAgB,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAE/D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAgB,EAAE;QACpD,OAAO,CACL,oBAAC,uBAAuB,IACtB,cAAc,EAAE,cAAc,EAC9B,sBAAsB,EAAE,sBAAsB,EAC9C,uBAAuB,EAAE,GAAG,EAAE;gBAC5B,oFAAoF;
|
1
|
+
{"version":3,"file":"useVideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { createRef, useCallback, useEffect, useMemo } from 'react';\nimport { SidePaneRenderer, useIsParticularSidePaneOpen } from './SidePaneProvider';\nimport { SidePaneHeader } from '../../../common/SidePaneHeader';\n\nimport { useLocale } from '../../../localization';\nimport { VideoEffectsPaneContent } from '../../../common/VideoEffectsPane';\nimport { ActiveErrorMessage } from '@internal/react-components';\nimport { IButton } from '@fluentui/react';\nimport { useSelector } from '../../hooks/useSelector';\nimport { getVideoBackgroundImages } from '../../selectors/baseSelectors';\n\n/** @private */\nexport const VIDEO_EFFECTS_SIDE_PANE_ID = 'videoeffects';\n\n/** @private */\nexport const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM = 17.5;\n\n/** @private */\nexport const useVideoEffectsPane = (\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void,\n mobileView: boolean,\n latestErrors: ActiveErrorMessage[],\n onDismissError: (error: ActiveErrorMessage) => void,\n cameraButtonRef?: React.RefObject<IButton>\n): {\n openVideoEffectsPane: () => void;\n closeVideoEffectsPane: () => void;\n toggleVideoEffectsPane: () => void;\n isVideoEffectsPaneOpen: boolean;\n} => {\n const closePane = useCallback(() => {\n updateSidePaneRenderer(undefined);\n cameraButtonRef?.current?.focus();\n }, [cameraButtonRef, updateSidePaneRenderer]);\n\n const locale = useLocale();\n\n const onRenderHeader = useCallback(() => {\n return (\n <SidePaneHeader\n onClose={closePane}\n headingText={locale.strings.call.videoEffectsPaneTitle}\n dismissSidePaneButtonAriaLabel={\n locale.strings.call.dismissSidePaneButtonLabel ??\n locale.strings.callWithChat.dismissSidePaneButtonLabel ??\n 'Close'\n }\n mobileView={mobileView}\n />\n );\n }, [closePane, locale.strings, mobileView]);\n\n const latestVideoEffectError = latestErrors.find((error) => error.type === 'unableToStartVideoEffect');\n const updateFocusHandle = useMemo(() => createRef<{ focus: () => void }>(), []);\n\n const backgroundImages = useSelector(getVideoBackgroundImages);\n\n const onRenderContent = useCallback((): JSX.Element => {\n return (\n <VideoEffectsPaneContent\n onDismissError={onDismissError}\n activeVideoEffectError={latestVideoEffectError}\n activeVideoEffectChange={() => {\n // Clear any existing video effects error when the user clicks on a new video effect\n if (latestVideoEffectError) {\n onDismissError?.(latestVideoEffectError);\n }\n }}\n updateFocusHandle={updateFocusHandle}\n backgroundImages={backgroundImages}\n />\n );\n }, [latestVideoEffectError, onDismissError, updateFocusHandle, backgroundImages]);\n\n const sidePaneRenderer: SidePaneRenderer = useMemo(\n () => ({\n headerRenderer: onRenderHeader,\n contentRenderer: onRenderContent,\n id: VIDEO_EFFECTS_SIDE_PANE_ID\n }),\n [onRenderContent, onRenderHeader]\n );\n\n const openPane = useCallback(() => {\n updateSidePaneRenderer(sidePaneRenderer);\n\n // Run in a setTimeout as it must be called only once the imperative handle is available\n setTimeout(() => updateFocusHandle.current?.focus(), 0);\n }, [sidePaneRenderer, updateSidePaneRenderer, updateFocusHandle]);\n\n const isOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);\n\n // Update pane renderer if it is open and the openPane dep changes\n useEffect(() => {\n if (isOpen) {\n openPane();\n }\n }, [isOpen, openPane]);\n\n const togglePane = useCallback(() => {\n if (isOpen) {\n closePane();\n } else {\n openPane();\n }\n }, [closePane, isOpen, openPane]);\n\n return {\n openVideoEffectsPane: openPane,\n closeVideoEffectsPane: closePane,\n toggleVideoEffectsPane: togglePane,\n isVideoEffectsPaneOpen: isOpen\n };\n};\n\n/**\n * Active video effect with timestamp.\n *\n * @private\n */\nexport interface ActiveVideoEffect {\n /**\n * Type of video effect that is active.\n */\n type: 'blur' | 'replacement';\n /**\n * The latest timestamp when this effect was activated.\n *\n */\n timestamp: Date;\n}\n"]}
|
package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js
CHANGED
@@ -52,7 +52,7 @@ export const EndCall = (props) => {
|
|
52
52
|
setShowHangUpConfirm(!showHangUpConfirm);
|
53
53
|
}, [showHangUpConfirm]);
|
54
54
|
const onHangUpConfirm = useCallback((hangUpForEveryone) => {
|
55
|
-
onHangUp
|
55
|
+
onHangUp === null || onHangUp === void 0 ? void 0 : onHangUp(hangUpForEveryone);
|
56
56
|
toggleConfirm();
|
57
57
|
}, [onHangUp, toggleConfirm]);
|
58
58
|
const hangUpOverride = useCallback((forEveryone) => __awaiter(void 0, void 0, void 0, function* () {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"EndCall.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/buttons/EndCall.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAElC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAA0B,aAAa,EAAE,+CAAmC;AACnF,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,eAAe;AACf,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAOvB,EAAe,EAAE;;IAChB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC;IACpD,MAAM,iBAAiB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC;IAE1C,MAAM,oBAAoB,GAAG,OAAO,CAClC,GAAG,EAAE,CAAC,CAAC;QACL,kBAAkB,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAChE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB;QACrD,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAClD,gBAAgB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;KAC3C,CAAC,EACF;QACE,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAC5C,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAC5C,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAC5C,aAAa,CAAC,IAAI,CAAC,KAAK;KACzB,CACF,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,kBAAkB,EAAE,aAAa,CAAC,IAAI,CAAC,uBAAuB;QAC9D,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,uBAAuB;QACnD,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAClD,gBAAgB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;KAC3C,CAAC,EACF;QACE,aAAa,CAAC,IAAI,CAAC,uBAAuB;QAC1C,aAAa,CAAC,IAAI,CAAC,yBAAyB;QAC5C,aAAa,CAAC,IAAI,CAAC,uBAAuB;QAC1C,aAAa,CAAC,IAAI,CAAC,KAAK;KACzB,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAErE,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC;IAEvC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,iBAA2B,EAAE,EAAE;QAC9B,QAAQ,
|
1
|
+
{"version":3,"file":"EndCall.js","sourceRoot":"","sources":["../../../../../../../../../react-composites/src/composites/CallComposite/components/buttons/EndCall.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { concatStyleSets, Stack } from '@fluentui/react';\nimport { IContextualMenuProps } from '@fluentui/react';\nimport { ControlBarButtonStyles, EndCallButton } from '@internal/react-components';\nimport React, { useMemo } from 'react';\nimport { useState, useCallback } from 'react';\nimport { CallControlDisplayType } from '../../../common/types/CommonCallControlOptions';\nimport { usePropsFor } from '../../hooks/usePropsFor';\nimport { groupCallLeaveButtonCompressedStyle, groupCallLeaveButtonStyle } from '../../styles/Buttons.styles';\nimport { Prompt } from '../Prompt';\nimport { useLocale } from '../../../localization';\n\n/** @private */\nexport const EndCall = (props: {\n displayType?: CallControlDisplayType;\n styles?: ControlBarButtonStyles;\n mobileView?: boolean;\n enableEndCallMenu?: boolean;\n disableEndCallModal?: boolean;\n returnFromBreakoutRoom?: () => Promise<void>;\n}): JSX.Element => {\n const compactMode = props.displayType === 'compact';\n const hangUpButtonProps = usePropsFor(EndCallButton);\n const localeStrings = useLocale().strings;\n\n const endCallDiaglogLabels = useMemo(\n () => ({\n confirmButtonLabel: localeStrings.call.endCallConfirmButtonLabel,\n heading: localeStrings.call.endCallConfirmDialogTitle,\n text: localeStrings.call.leaveConfirmDialogContent,\n closeButtonLabel: localeStrings.call.close\n }),\n [\n localeStrings.call.endCallConfirmButtonLabel,\n localeStrings.call.endCallConfirmDialogTitle,\n localeStrings.call.leaveConfirmDialogContent,\n localeStrings.call.close\n ]\n );\n\n const leaveDiaglogLabels = useMemo(\n () => ({\n confirmButtonLabel: localeStrings.call.leaveConfirmButtonLabel,\n heading: localeStrings.call.leaveConfirmDialogTitle,\n text: localeStrings.call.leaveConfirmDialogContent,\n closeButtonLabel: localeStrings.call.close\n }),\n [\n localeStrings.call.leaveConfirmButtonLabel,\n localeStrings.call.leaveConfirmDialogContent,\n localeStrings.call.leaveConfirmDialogTitle,\n localeStrings.call.close\n ]\n );\n\n const [dialogLabels, setDialogLabels] = useState(leaveDiaglogLabels);\n\n const { onHangUp } = hangUpButtonProps;\n\n const [showHangUpConfirm, setShowHangUpConfirm] = React.useState(false);\n\n const toggleConfirm = useCallback(() => {\n setShowHangUpConfirm(!showHangUpConfirm);\n }, [showHangUpConfirm]);\n\n const onHangUpConfirm = useCallback(\n (hangUpForEveryone?: boolean) => {\n onHangUp?.(hangUpForEveryone);\n toggleConfirm();\n },\n [onHangUp, toggleConfirm]\n );\n\n const hangUpOverride = useCallback(\n async (forEveryone?: boolean) => {\n if (\n props.mobileView ||\n forEveryone === false /* value being false(not undefined) because it comes from endCall option */\n ) {\n onHangUp();\n return;\n }\n setDialogLabels(forEveryone ? endCallDiaglogLabels : leaveDiaglogLabels);\n toggleConfirm();\n },\n [endCallDiaglogLabels, leaveDiaglogLabels, onHangUp, props.mobileView, toggleConfirm]\n );\n\n const styles = useMemo(\n () =>\n concatStyleSets(\n compactMode ? groupCallLeaveButtonCompressedStyle : groupCallLeaveButtonStyle,\n props.styles ?? {}\n ),\n [compactMode, props.styles]\n );\n\n const enableBreakoutRoomMenu = !!props.returnFromBreakoutRoom;\n const breakoutRoomMenuProps: IContextualMenuProps = {\n items: [\n {\n key: 'returnToMainMeeting',\n text: localeStrings.call.returnFromBreakoutRoomButtonLabel,\n title: localeStrings.call.returnFromBreakoutRoomButtonLabel,\n onClick: () => {\n props.returnFromBreakoutRoom?.();\n }\n },\n {\n key: 'leaveRoomAndMainMeeting',\n text: localeStrings.call.leaveBreakoutRoomAndMeetingButtonLabel,\n title: localeStrings.call.leaveBreakoutRoomAndMeetingButtonLabel,\n onClick: () => onHangUp()\n }\n ],\n styles: props.styles\n };\n\n return (\n <Stack>\n <EndCallButton\n data-ui-id=\"call-composite-hangup-button\"\n {...hangUpButtonProps}\n onHangUp={props.disableEndCallModal ? onHangUp : hangUpOverride}\n styles={styles}\n showLabel={!compactMode}\n enableEndCallMenu={props.enableEndCallMenu ?? false}\n menuProps={enableBreakoutRoomMenu ? breakoutRoomMenuProps : undefined}\n />\n {\n <Prompt\n {...dialogLabels}\n styles={{ main: { minWidth: '22.5rem', padding: '1.5rem' } }}\n cancelButtonLabel={localeStrings.call.hangUpCancelButtonLabel}\n onConfirm={() => onHangUpConfirm(props.enableEndCallMenu)} // if enableEndCallMenu is true, that means the dialog is triggered by hangUpForEveryone button\n isOpen={showHangUpConfirm}\n onCancel={toggleConfirm}\n />\n }\n </Stack>\n );\n};\n"]}
|
@@ -100,7 +100,12 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
|
|
100
100
|
yield adapter.stopScreenShare();
|
101
101
|
}),
|
102
102
|
onToggleCamera: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
103
|
-
isCameraOn(adapter.getState())
|
103
|
+
if (isCameraOn(adapter.getState())) {
|
104
|
+
yield adapter.stopCamera();
|
105
|
+
}
|
106
|
+
else {
|
107
|
+
yield adapter.startCamera(options);
|
108
|
+
}
|
104
109
|
}),
|
105
110
|
onToggleMicrophone: () => __awaiter(void 0, void 0, void 0, function* () {
|
106
111
|
var _l;
|