@azure/communication-react 1.8.1-alpha-202310070012 → 1.8.1-alpha-202310080014

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/dist/dist-cjs/communication-react/index.js +17 -15
  2. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  3. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  5. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +3 -3
  6. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  7. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +1 -1
  8. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  9. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +0 -2
  10. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +1 -3
  11. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  12. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +1 -2
  13. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +3 -3
  14. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  15. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.d.ts +0 -3
  16. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +3 -3
  17. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  18. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.d.ts +2 -0
  19. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +8 -2
  20. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  21. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts +1 -2
  22. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  23. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"CallPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/CallPage.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DiagnosticQuality } from '@azure/communication-calling';\nimport { useId } from '@fluentui/react-hooks';\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport {\n ActiveErrorMessage,\n ErrorBar,\n OnRenderAvatarCallback,\n ParticipantMenuItemsCallback\n} from '@internal/react-components';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { useLocale } from '../../localization';\nimport { CallCompositeOptions } from '../CallComposite';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { MediaGallery } from '../components/MediaGallery';\nimport { NetworkReconnectTile } from '../components/NetworkReconnectTile';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { complianceBannerSelector } from '../selectors/complianceBannerSelector';\nimport { mediaGallerySelector } from '../selectors/mediaGallerySelector';\nimport { mutedNotificationSelector } from '../selectors/mutedNotificationSelector';\nimport { networkReconnectTileSelector } from '../selectors/networkReconnectTileSelector';\nimport { reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n/* @conditional-compile-remove(capabilities) */\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\n\n/**\n * @private\n */\nexport interface CallPageProps {\n mobileView: boolean;\n modalLayerHostId: string;\n callInvitationURL?: string;\n onRenderAvatar?: OnRenderAvatarCallback;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n options?: CallCompositeOptions;\n latestErrors: ActiveErrorMessage[];\n onDismissError: (error: ActiveErrorMessage) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n galleryLayout: VideoGalleryLayout;\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition?: 'Responsive' | 'horizontalTop';\n /* @conditional-compile-remove(gallery-layouts) */\n onSetUserSetOverflowGalleryPosition?: (position: 'Responsive' | 'horizontalTop') => void;\n}\n\n/**\n * @private\n */\nexport const CallPage = (props: CallPageProps): JSX.Element => {\n const {\n callInvitationURL,\n onRenderAvatar,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n options,\n mobileView,\n /* @conditional-compile-remove(gallery-layouts) */\n galleryLayout = 'floatingLocalVideo',\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange,\n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition = 'Responsive',\n /* @conditional-compile-remove(gallery-layouts) */\n onSetUserSetOverflowGalleryPosition\n } = props;\n\n // To use useProps to get these states, we need to create another file wrapping Call,\n // It seems unnecessary in this case, so we get the updated states using this approach.\n const { callStatus } = useSelector(callStatusSelector);\n const mediaGalleryProps = useSelector(mediaGallerySelector);\n const mediaGalleryHandlers = useHandlers(MediaGallery);\n const complianceBannerProps = useSelector(complianceBannerSelector);\n const errorBarProps = usePropsFor(ErrorBar);\n const mutedNotificationProps = useSelector(mutedNotificationSelector);\n const networkReconnectTileProps = useSelector(networkReconnectTileSelector);\n\n const strings = useLocale().strings.call;\n\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = mobileView ? reduceCallControlsForMobile(options?.callControls) : options?.callControls;\n\n const drawerMenuHostId = useId('drawerMenuHost');\n\n return (\n <CallArrangement\n id={drawerMenuHostId}\n complianceBannerProps={{ ...complianceBannerProps, strings }}\n errorBarProps={options?.errorBar !== false && errorBarProps}\n mutedNotificationProps={mutedNotificationProps}\n callControlProps={{\n callInvitationURL: callInvitationURL,\n onFetchParticipantMenuItems: onFetchParticipantMenuItems,\n options: callControlOptions,\n increaseFlyoutItemSize: mobileView\n }}\n /* @conditional-compile-remove(one-to-n-calling) */\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n mobileView={mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() =>\n _isInCall(callStatus) ? (\n isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (\n <MediaGallery\n isMobile={mobileView}\n {...mediaGalleryProps}\n {...mediaGalleryHandlers}\n onRenderAvatar={onRenderAvatar}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n /* @conditional-compile-remove(pinned-participants) */\n remoteVideoTileMenuOptions={options?.remoteVideoTileMenuOptions}\n drawerMenuHostId={drawerMenuHostId}\n /* @conditional-compile-remove(click-to-call) */\n localVideoTileOptions={options?.localVideoTile}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition={userSetOverflowGalleryPosition}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout={galleryLayout}\n />\n ) : (\n <NetworkReconnectTile {...networkReconnectTileProps} />\n )\n ) : (\n <></>\n )\n }\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n dataUiId={'call-page'}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetOverflowGalleryPositionChange={onSetUserSetOverflowGalleryPosition}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange={onUserSetGalleryLayoutChange}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout={galleryLayout}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n />\n );\n};\n\n/**\n * @private\n */\nexport const isNetworkHealthy = (value: DiagnosticQuality | boolean | undefined): boolean => {\n // We know that the value is actually of type DiagnosticQuality for this diagnostic.\n // We ignore any boolen values, considering the network to still be healthy.\n // Thus, only DiagnosticQuality.Poor or .Bad indicate network problems.\n return value === true || value === false || value === undefined || value === DiagnosticQuality.Good;\n};\n\"../../../../../calling-component-bindings/src\"\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"CallPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/CallPage.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DiagnosticQuality } from '@azure/communication-calling';\nimport { useId } from '@fluentui/react-hooks';\nimport { _isInCall } from '@internal/calling-component-bindings';\nimport { ActiveErrorMessage, ErrorBar, ParticipantMenuItemsCallback } from '@internal/react-components';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport React from 'react';\nimport { AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { useLocale } from '../../localization';\nimport { CallCompositeOptions } from '../CallComposite';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { MediaGallery } from '../components/MediaGallery';\nimport { NetworkReconnectTile } from '../components/NetworkReconnectTile';\nimport { useHandlers } from '../hooks/useHandlers';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { callStatusSelector } from '../selectors/callStatusSelector';\nimport { complianceBannerSelector } from '../selectors/complianceBannerSelector';\nimport { mediaGallerySelector } from '../selectors/mediaGallerySelector';\nimport { mutedNotificationSelector } from '../selectors/mutedNotificationSelector';\nimport { networkReconnectTileSelector } from '../selectors/networkReconnectTileSelector';\nimport { reduceCallControlsForMobile } from '../utils';\nimport { MobileChatSidePaneTabHeaderProps } from '../../common/TabHeader';\nimport { SidePaneRenderer } from '../components/SidePane/SidePaneProvider';\n/* @conditional-compile-remove(capabilities) */\nimport { CapabilitiesChangeNotificationBarProps } from '../components/CapabilitiesChangedNotificationBar';\n\n/**\n * @private\n */\nexport interface CallPageProps {\n mobileView: boolean;\n modalLayerHostId: string;\n callInvitationURL?: string;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n updateSidePaneRenderer: (renderer: SidePaneRenderer | undefined) => void;\n mobileChatTabHeader?: MobileChatSidePaneTabHeaderProps;\n options?: CallCompositeOptions;\n latestErrors: ActiveErrorMessage[];\n onDismissError: (error: ActiveErrorMessage) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n galleryLayout: VideoGalleryLayout;\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps?: CapabilitiesChangeNotificationBarProps;\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange?: (layout: VideoGalleryLayout) => void;\n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition?: 'Responsive' | 'horizontalTop';\n /* @conditional-compile-remove(gallery-layouts) */\n onSetUserSetOverflowGalleryPosition?: (position: 'Responsive' | 'horizontalTop') => void;\n}\n\n/**\n * @private\n */\nexport const CallPage = (props: CallPageProps): JSX.Element => {\n const {\n callInvitationURL,\n onFetchAvatarPersonaData,\n onFetchParticipantMenuItems,\n options,\n mobileView,\n /* @conditional-compile-remove(gallery-layouts) */\n galleryLayout = 'floatingLocalVideo',\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange,\n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition = 'Responsive',\n /* @conditional-compile-remove(gallery-layouts) */\n onSetUserSetOverflowGalleryPosition\n } = props;\n\n // To use useProps to get these states, we need to create another file wrapping Call,\n // It seems unnecessary in this case, so we get the updated states using this approach.\n const { callStatus } = useSelector(callStatusSelector);\n const mediaGalleryProps = useSelector(mediaGallerySelector);\n const mediaGalleryHandlers = useHandlers(MediaGallery);\n const complianceBannerProps = useSelector(complianceBannerSelector);\n const errorBarProps = usePropsFor(ErrorBar);\n const mutedNotificationProps = useSelector(mutedNotificationSelector);\n const networkReconnectTileProps = useSelector(networkReconnectTileSelector);\n\n const strings = useLocale().strings.call;\n\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = mobileView ? reduceCallControlsForMobile(options?.callControls) : options?.callControls;\n\n const drawerMenuHostId = useId('drawerMenuHost');\n\n return (\n <CallArrangement\n id={drawerMenuHostId}\n complianceBannerProps={{ ...complianceBannerProps, strings }}\n errorBarProps={options?.errorBar !== false && errorBarProps}\n mutedNotificationProps={mutedNotificationProps}\n callControlProps={{\n callInvitationURL: callInvitationURL,\n onFetchParticipantMenuItems: onFetchParticipantMenuItems,\n options: callControlOptions,\n increaseFlyoutItemSize: mobileView\n }}\n /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(close-captions) */\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n mobileView={mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() =>\n _isInCall(callStatus) ? (\n isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (\n <MediaGallery\n isMobile={mobileView}\n {...mediaGalleryProps}\n {...mediaGalleryHandlers}\n onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n /* @conditional-compile-remove(pinned-participants) */\n remoteVideoTileMenuOptions={options?.remoteVideoTileMenuOptions}\n drawerMenuHostId={drawerMenuHostId}\n /* @conditional-compile-remove(click-to-call) */\n localVideoTileOptions={options?.localVideoTile}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetOverflowGalleryPosition={userSetOverflowGalleryPosition}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout={galleryLayout}\n />\n ) : (\n <NetworkReconnectTile {...networkReconnectTileProps} />\n )\n ) : (\n <></>\n )\n }\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n dataUiId={'call-page'}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetOverflowGalleryPositionChange={onSetUserSetOverflowGalleryPosition}\n /* @conditional-compile-remove(gallery-layouts) */\n onUserSetGalleryLayoutChange={onUserSetGalleryLayoutChange}\n /* @conditional-compile-remove(gallery-layouts) */\n userSetGalleryLayout={galleryLayout}\n /* @conditional-compile-remove(capabilities) */\n capabilitiesChangedNotificationBarProps={props.capabilitiesChangedNotificationBarProps}\n />\n );\n};\n\n/**\n * @private\n */\nexport const isNetworkHealthy = (value: DiagnosticQuality | boolean | undefined): boolean => {\n // We know that the value is actually of type DiagnosticQuality for this diagnostic.\n // We ignore any boolen values, considering the network to still be healthy.\n // Thus, only DiagnosticQuality.Poor or .Bad indicate network problems.\n return value === true || value === false || value === undefined || value === DiagnosticQuality.Good;\n};\n\"../../../../../calling-component-bindings/src\"\"../../../../../react-components/src\""]}
@@ -1,13 +1,10 @@
1
1
  /// <reference types="react" />
2
- import { OnRenderAvatarCallback } from "../../../../../react-components/src";
3
2
  import { AvatarPersonaDataCallback } from '../../common/AvatarPersona';
4
3
  import { LobbyPageProps } from './LobbyPage';
5
4
  /**
6
5
  * @private
7
6
  */
8
7
  export declare const TransferPage: (props: LobbyPageProps & {
9
- /** Render component function to replace the default Persona Icon representing the transferor or transfer target. */
10
- onRenderAvatar?: OnRenderAvatarCallback;
11
8
  /** Callback function that can be used to provide custom data to Persona Icon rendered */
12
9
  onFetchAvatarPersonaData?: AvatarPersonaDataCallback;
13
10
  }) => JSX.Element;
@@ -72,10 +72,10 @@ export const TransferPage = (props) => {
72
72
  /* @conditional-compile-remove(call-transfer) */
73
73
  statusText: pageSubject === 'transferTarget'
74
74
  ? strings.transferPageTransferTargetText
75
- : strings.transferPageTransferorText, onRenderAvatar: props.onRenderAvatar, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData })), dataUiId: 'transfer-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError })));
75
+ : strings.transferPageTransferorText, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData })), dataUiId: 'transfer-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError })));
76
76
  };
77
77
  const TransferTile = (props) => {
78
- const { displayName, initialsName, userId, onRenderAvatar, onFetchAvatarPersonaData, statusText } = props;
78
+ const { displayName, initialsName, userId, onFetchAvatarPersonaData, statusText } = props;
79
79
  const [personaSize, setPersonaSize] = useState();
80
80
  const tileRef = useRef(null);
81
81
  const observer = useRef(new ResizeObserver((entries) => {
@@ -104,7 +104,7 @@ const TransferTile = (props) => {
104
104
  return (React.createElement("div", { ref: tileRef, className: mergeStyles(tileContainerStyles), "data-is-focusable": true },
105
105
  React.createElement(Stack, { className: mergeStyles(tileContentStyles), tokens: { childrenGap: '1rem' } },
106
106
  React.createElement(Stack, { horizontalAlign: "center", tokens: { childrenGap: '0.5rem' } },
107
- onRenderAvatar ? onRenderAvatar(userId !== null && userId !== void 0 ? userId : '', placeholderOptions, defaultOnRenderAvatar) : defaultAvatar,
107
+ defaultAvatar,
108
108
  React.createElement(Text, { className: mergeStyles(displayNameStyles) }, displayName)),
109
109
  React.createElement(Stack, { horizontal: true, horizontalAlign: "center", verticalAlign: "center", tokens: { childrenGap: '0.5rem' } },
110
110
  React.createElement(Spinner, { size: SpinnerSize.large, className: mergeStyles(spinnerStyles) }),
@@ -1 +1 @@
1
- {"version":3,"file":"TransferPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/TransferPage.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Spinner, SpinnerSize, Stack, Text, mergeStyles } from '@fluentui/react';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { ErrorBar, OnRenderAvatarCallback } from '@internal/react-components';\n/* @conditional-compile-remove(call-transfer) */\nimport { Announcer } from '@internal/react-components';\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n/* @conditional-compile-remove(call-transfer) */\nimport { useEffect } from 'react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { useLocale } from '../../localization';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { getRemoteParticipants } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(call-transfer) */\nimport { getTransferCall } from '../selectors/baseSelectors';\nimport {\n avatarStyles,\n defaultPersonaStyles,\n displayNameStyles,\n pageContainer,\n spinnerStyles,\n statusTextStyles,\n tileContainerStyles,\n tileContentStyles\n} from '../styles/TransferPage.styles';\nimport { reduceCallControlsForMobile } from '../utils';\nimport { LobbyPageProps } from './LobbyPage';\n\n/* @conditional-compile-remove(call-transfer) */\n// Which should be participant shown in the transfer page\ntype TransferPageSubject = 'transferor' | 'transferTarget';\n\n/**\n * @private\n */\nexport const TransferPage = (\n props: LobbyPageProps & {\n /** Render component function to replace the default Persona Icon representing the transferor or transfer target. */\n onRenderAvatar?: OnRenderAvatarCallback;\n /** Callback function that can be used to provide custom data to Persona Icon rendered */\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n }\n): JSX.Element => {\n const errorBarProps = usePropsFor(ErrorBar);\n const strings = useLocale().strings.call;\n const remoteParticipants = useSelector(getRemoteParticipants);\n /* @conditional-compile-remove(call-transfer) */\n const transferCall = useSelector(getTransferCall);\n\n /* @conditional-compile-remove(call-transfer) */\n const [announcerString, setAnnouncerString] = useState<string | undefined>(undefined);\n\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = props.mobileView\n ? reduceCallControlsForMobile(props.options?.callControls)\n : props.options?.callControls;\n\n const transferor = useMemo(\n () => (remoteParticipants ? Object.values(remoteParticipants)?.[0] : undefined),\n [remoteParticipants]\n );\n /* @conditional-compile-remove(call-transfer) */\n const transferTarget = useMemo(\n () => (transferCall?.remoteParticipants ? Object.values(transferCall.remoteParticipants)?.[0] : undefined),\n [transferCall]\n );\n\n /* @conditional-compile-remove(call-transfer) */\n const pageSubject: TransferPageSubject = useMemo(() => {\n if (transferCall && transferTarget?.displayName) {\n return 'transferTarget';\n }\n return 'transferor';\n }, [transferCall, transferTarget?.displayName]);\n\n /* @conditional-compile-remove(call-transfer) */\n useEffect(() => {\n setAnnouncerString(strings.transferPageNoticeString);\n }, [strings.transferPageNoticeString]);\n\n let transferTileParticipant = transferor;\n /* @conditional-compile-remove(call-transfer) */\n if (pageSubject === 'transferTarget') {\n transferTileParticipant = transferTarget;\n }\n\n let transferParticipantDisplayName =\n transferor?.displayName ??\n /* @conditional-compile-remove(call-transfer) */ strings.transferPageUnknownTransferorDisplayName;\n /* @conditional-compile-remove(call-transfer) */\n if (pageSubject === 'transferTarget') {\n transferParticipantDisplayName =\n transferTarget?.displayName ?? strings.transferPageUnknownTransferTargetDisplayName;\n }\n\n return (\n <Stack className={mergeStyles(pageContainer)}>\n {\n /* @conditional-compile-remove(call-transfer) */\n <Announcer announcementString={announcerString} ariaLive=\"polite\" />\n }\n <CallArrangement\n complianceBannerProps={{ strings }}\n // Ignore errors from before current call. This avoids old errors from showing up when a user re-joins a call.\n errorBarProps={props.options?.errorBar !== false && errorBarProps}\n callControlProps={{\n options: callControlOptions,\n increaseFlyoutItemSize: props.mobileView\n }}\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() => (\n <TransferTile\n userId={\n transferTileParticipant ? toFlatCommunicationIdentifier(transferTileParticipant?.identifier) : undefined\n }\n displayName={transferParticipantDisplayName}\n initialsName={transferParticipantDisplayName}\n /* @conditional-compile-remove(call-transfer) */\n statusText={\n pageSubject === 'transferTarget'\n ? strings.transferPageTransferTargetText\n : strings.transferPageTransferorText\n }\n onRenderAvatar={props.onRenderAvatar}\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n />\n )}\n dataUiId={'transfer-page'}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n />\n </Stack>\n );\n};\n\ninterface TransferTileProps {\n /** React Child components. Child Components will show as overlay component in the VideoTile. */\n children?: React.ReactNode;\n /** User id for `onFetchAvatarPersonaData` callback to provide custom data to avatars rendered */\n userId?: string;\n /** Render component function to replace the default Persona Icon representing the transferor or transfer target. */\n onRenderAvatar?: OnRenderAvatarCallback;\n /** Callback function that can be used to provide custom data to Persona Icon rendered */\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n /**\n * Display name of the transferor or transfer target to be shown in the label.\n * @remarks `displayName` is used to generate avatar initials if `initialsName` is not provided.\n */\n displayName?: string;\n /**\n * Name of the transferor or transfer target used to generate initials for the avatar. For example, a name\n * `John Doe` will display `JD` as initials.\n * @remarks `displayName` is used if this property is not specified.\n */\n initialsName?: string;\n /** Optional property to set the status of the transfer process */\n statusText?: string;\n}\n\nconst TransferTile = (props: TransferTileProps): JSX.Element => {\n const { displayName, initialsName, userId, onRenderAvatar, onFetchAvatarPersonaData, statusText } = props;\n\n const [personaSize, setPersonaSize] = useState<number>();\n const tileRef = useRef<HTMLDivElement>(null);\n\n const observer = useRef(\n new ResizeObserver((entries): void => {\n const { width, height } = entries[0].contentRect;\n const personaSize = Math.min(width, height) / 2;\n setPersonaSize(Math.max(Math.min(personaSize, 150), 32));\n })\n );\n\n useLayoutEffect(() => {\n if (tileRef.current) {\n observer.current.observe(tileRef.current);\n }\n const currentObserver = observer.current;\n return () => currentObserver.disconnect();\n }, [observer, tileRef]);\n\n const placeholderOptions = useMemo(\n () => ({\n userId,\n text: initialsName ?? displayName,\n coinSize: personaSize,\n styles: defaultPersonaStyles,\n hidePersonaDetails: true\n }),\n [userId, initialsName, displayName, personaSize]\n );\n\n const defaultOnRenderAvatar = useCallback(() => {\n return personaSize ? (\n <AvatarPersona\n {...placeholderOptions}\n dataProvider={onFetchAvatarPersonaData}\n className={mergeStyles(avatarStyles)}\n />\n ) : (\n <></>\n );\n }, [placeholderOptions, onFetchAvatarPersonaData, personaSize]);\n\n const defaultAvatar = useMemo(() => defaultOnRenderAvatar(), [defaultOnRenderAvatar]);\n\n return (\n <div ref={tileRef} className={mergeStyles(tileContainerStyles)} data-is-focusable={true}>\n <Stack className={mergeStyles(tileContentStyles)} tokens={{ childrenGap: '1rem' }}>\n <Stack horizontalAlign=\"center\" tokens={{ childrenGap: '0.5rem' }}>\n {onRenderAvatar ? onRenderAvatar(userId ?? '', placeholderOptions, defaultOnRenderAvatar) : defaultAvatar}\n <Text className={mergeStyles(displayNameStyles)}>{displayName}</Text>\n </Stack>\n <Stack horizontal horizontalAlign=\"center\" verticalAlign=\"center\" tokens={{ childrenGap: '0.5rem' }}>\n <Spinner size={SpinnerSize.large} className={mergeStyles(spinnerStyles)} />\n <Text className={mergeStyles(statusTextStyles)}>{statusText}</Text>\n </Stack>\n </Stack>\n </div>\n );\n};\n\"../../../../../acs-ui-common/src\"\"../../../../../react-components/src\""]}
1
+ {"version":3,"file":"TransferPage.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/CallComposite/pages/TransferPage.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Spinner, SpinnerSize, Stack, Text, mergeStyles } from '@fluentui/react';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { ErrorBar } from '@internal/react-components';\n/* @conditional-compile-remove(call-transfer) */\nimport { Announcer } from '@internal/react-components';\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n/* @conditional-compile-remove(call-transfer) */\nimport { useEffect } from 'react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from '../../common/AvatarPersona';\nimport { useLocale } from '../../localization';\nimport { CallArrangement } from '../components/CallArrangement';\nimport { usePropsFor } from '../hooks/usePropsFor';\nimport { useSelector } from '../hooks/useSelector';\nimport { getRemoteParticipants } from '../selectors/baseSelectors';\n/* @conditional-compile-remove(call-transfer) */\nimport { getTransferCall } from '../selectors/baseSelectors';\nimport {\n avatarStyles,\n defaultPersonaStyles,\n displayNameStyles,\n pageContainer,\n spinnerStyles,\n statusTextStyles,\n tileContainerStyles,\n tileContentStyles\n} from '../styles/TransferPage.styles';\nimport { reduceCallControlsForMobile } from '../utils';\nimport { LobbyPageProps } from './LobbyPage';\n\n/* @conditional-compile-remove(call-transfer) */\n// Which should be participant shown in the transfer page\ntype TransferPageSubject = 'transferor' | 'transferTarget';\n\n/**\n * @private\n */\nexport const TransferPage = (\n props: LobbyPageProps & {\n /** Callback function that can be used to provide custom data to Persona Icon rendered */\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n }\n): JSX.Element => {\n const errorBarProps = usePropsFor(ErrorBar);\n const strings = useLocale().strings.call;\n const remoteParticipants = useSelector(getRemoteParticipants);\n /* @conditional-compile-remove(call-transfer) */\n const transferCall = useSelector(getTransferCall);\n\n /* @conditional-compile-remove(call-transfer) */\n const [announcerString, setAnnouncerString] = useState<string | undefined>(undefined);\n\n // Reduce the controls shown when mobile view is enabled.\n const callControlOptions = props.mobileView\n ? reduceCallControlsForMobile(props.options?.callControls)\n : props.options?.callControls;\n\n const transferor = useMemo(\n () => (remoteParticipants ? Object.values(remoteParticipants)?.[0] : undefined),\n [remoteParticipants]\n );\n /* @conditional-compile-remove(call-transfer) */\n const transferTarget = useMemo(\n () => (transferCall?.remoteParticipants ? Object.values(transferCall.remoteParticipants)?.[0] : undefined),\n [transferCall]\n );\n\n /* @conditional-compile-remove(call-transfer) */\n const pageSubject: TransferPageSubject = useMemo(() => {\n if (transferCall && transferTarget?.displayName) {\n return 'transferTarget';\n }\n return 'transferor';\n }, [transferCall, transferTarget?.displayName]);\n\n /* @conditional-compile-remove(call-transfer) */\n useEffect(() => {\n setAnnouncerString(strings.transferPageNoticeString);\n }, [strings.transferPageNoticeString]);\n\n let transferTileParticipant = transferor;\n /* @conditional-compile-remove(call-transfer) */\n if (pageSubject === 'transferTarget') {\n transferTileParticipant = transferTarget;\n }\n\n let transferParticipantDisplayName =\n transferor?.displayName ??\n /* @conditional-compile-remove(call-transfer) */ strings.transferPageUnknownTransferorDisplayName;\n /* @conditional-compile-remove(call-transfer) */\n if (pageSubject === 'transferTarget') {\n transferParticipantDisplayName =\n transferTarget?.displayName ?? strings.transferPageUnknownTransferTargetDisplayName;\n }\n\n return (\n <Stack className={mergeStyles(pageContainer)}>\n {\n /* @conditional-compile-remove(call-transfer) */\n <Announcer announcementString={announcerString} ariaLive=\"polite\" />\n }\n <CallArrangement\n complianceBannerProps={{ strings }}\n // Ignore errors from before current call. This avoids old errors from showing up when a user re-joins a call.\n errorBarProps={props.options?.errorBar !== false && errorBarProps}\n callControlProps={{\n options: callControlOptions,\n increaseFlyoutItemSize: props.mobileView\n }}\n mobileView={props.mobileView}\n modalLayerHostId={props.modalLayerHostId}\n onRenderGalleryContent={() => (\n <TransferTile\n userId={\n transferTileParticipant ? toFlatCommunicationIdentifier(transferTileParticipant?.identifier) : undefined\n }\n displayName={transferParticipantDisplayName}\n initialsName={transferParticipantDisplayName}\n /* @conditional-compile-remove(call-transfer) */\n statusText={\n pageSubject === 'transferTarget'\n ? strings.transferPageTransferTargetText\n : strings.transferPageTransferorText\n }\n onFetchAvatarPersonaData={props.onFetchAvatarPersonaData}\n />\n )}\n dataUiId={'transfer-page'}\n updateSidePaneRenderer={props.updateSidePaneRenderer}\n mobileChatTabHeader={props.mobileChatTabHeader}\n latestErrors={props.latestErrors}\n onDismissError={props.onDismissError}\n />\n </Stack>\n );\n};\n\ninterface TransferTileProps {\n /** React Child components. Child Components will show as overlay component in the VideoTile. */\n children?: React.ReactNode;\n /** User id for `onFetchAvatarPersonaData` callback to provide custom data to avatars rendered */\n userId?: string;\n /** Callback function that can be used to provide custom data to Persona Icon rendered */\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n /**\n * Display name of the transferor or transfer target to be shown in the label.\n * @remarks `displayName` is used to generate avatar initials if `initialsName` is not provided.\n */\n displayName?: string;\n /**\n * Name of the transferor or transfer target used to generate initials for the avatar. For example, a name\n * `John Doe` will display `JD` as initials.\n * @remarks `displayName` is used if this property is not specified.\n */\n initialsName?: string;\n /** Optional property to set the status of the transfer process */\n statusText?: string;\n}\n\nconst TransferTile = (props: TransferTileProps): JSX.Element => {\n const { displayName, initialsName, userId, onFetchAvatarPersonaData, statusText } = props;\n\n const [personaSize, setPersonaSize] = useState<number>();\n const tileRef = useRef<HTMLDivElement>(null);\n\n const observer = useRef(\n new ResizeObserver((entries): void => {\n const { width, height } = entries[0].contentRect;\n const personaSize = Math.min(width, height) / 2;\n setPersonaSize(Math.max(Math.min(personaSize, 150), 32));\n })\n );\n\n useLayoutEffect(() => {\n if (tileRef.current) {\n observer.current.observe(tileRef.current);\n }\n const currentObserver = observer.current;\n return () => currentObserver.disconnect();\n }, [observer, tileRef]);\n\n const placeholderOptions = useMemo(\n () => ({\n userId,\n text: initialsName ?? displayName,\n coinSize: personaSize,\n styles: defaultPersonaStyles,\n hidePersonaDetails: true\n }),\n [userId, initialsName, displayName, personaSize]\n );\n\n const defaultOnRenderAvatar = useCallback(() => {\n return personaSize ? (\n <AvatarPersona\n {...placeholderOptions}\n dataProvider={onFetchAvatarPersonaData}\n className={mergeStyles(avatarStyles)}\n />\n ) : (\n <></>\n );\n }, [placeholderOptions, onFetchAvatarPersonaData, personaSize]);\n\n const defaultAvatar = useMemo(() => defaultOnRenderAvatar(), [defaultOnRenderAvatar]);\n\n return (\n <div ref={tileRef} className={mergeStyles(tileContainerStyles)} data-is-focusable={true}>\n <Stack className={mergeStyles(tileContentStyles)} tokens={{ childrenGap: '1rem' }}>\n <Stack horizontalAlign=\"center\" tokens={{ childrenGap: '0.5rem' }}>\n {defaultAvatar}\n <Text className={mergeStyles(displayNameStyles)}>{displayName}</Text>\n </Stack>\n <Stack horizontal horizontalAlign=\"center\" verticalAlign=\"center\" tokens={{ childrenGap: '0.5rem' }}>\n <Spinner size={SpinnerSize.large} className={mergeStyles(spinnerStyles)} />\n <Text className={mergeStyles(statusTextStyles)}>{statusText}</Text>\n </Stack>\n </Stack>\n </div>\n );\n};\n\"../../../../../acs-ui-common/src\"\"../../../../../react-components/src\""]}
@@ -1,6 +1,8 @@
1
1
  /// <reference types="react" />
2
+ import { AvatarPersonaDataCallback } from './AvatarPersona';
2
3
  /** @private */
3
4
  export declare const CaptionsBanner: (props: {
4
5
  isMobile: boolean;
6
+ onFetchAvatarPersonaData?: AvatarPersonaDataCallback;
5
7
  }) => JSX.Element;
6
8
  //# sourceMappingURL=CaptionsBanner.d.ts.map
@@ -2,7 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
  import React from 'react';
4
4
  /* @conditional-compile-remove(close-captions) */
5
- import { useState, useEffect } from 'react';
5
+ import { useState, useEffect, useCallback } from 'react';
6
6
  /* @conditional-compile-remove(close-captions) */
7
7
  import { _CaptionsBanner } from "../../../../react-components/src";
8
8
  /* @conditional-compile-remove(close-captions) */
@@ -20,6 +20,8 @@ import { _captionsBannerSelector } from "../../../../calling-component-bindings/
20
20
  /* @conditional-compile-remove(close-captions) */
21
21
  import { useLocale } from '../localization';
22
22
  /* @conditional-compile-remove(close-captions) */
23
+ import { AvatarPersona } from './AvatarPersona';
24
+ /* @conditional-compile-remove(close-captions) */
23
25
  const mobileViewBannerWidth = '90%';
24
26
  /** @private */
25
27
  export const CaptionsBanner = (props) => {
@@ -54,6 +56,10 @@ export const CaptionsBanner = (props) => {
54
56
  captionsBannerSpinnerText: strings.captionsBannerSpinnerText
55
57
  };
56
58
  /* @conditional-compile-remove(close-captions) */
59
+ const onRenderAvatar = useCallback((userId, options) => {
60
+ return React.createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData }));
61
+ }, [props.onFetchAvatarPersonaData]);
62
+ /* @conditional-compile-remove(close-captions) */
57
63
  const { innerWidth: width } = window;
58
64
  /* @conditional-compile-remove(close-captions) */
59
65
  const [windowWidth, setWindowWidth] = useState(width);
@@ -72,7 +78,7 @@ export const CaptionsBanner = (props) => {
72
78
  /* @conditional-compile-remove(close-captions) */ React.createElement("div", { className: containerClassName },
73
79
  React.createElement(Stack, { horizontalAlign: "center" },
74
80
  React.createElement(Stack.Item, { style: { width: props.isMobile ? mobileViewBannerWidth : desktopViewBannerWidth } },
75
- React.createElement(_CaptionsBanner, Object.assign({}, captionsBannerProps, handlers, { formFactor: props.isMobile ? 'compact' : 'default', strings: captionsBannerStrings })))),
81
+ React.createElement(_CaptionsBanner, Object.assign({}, captionsBannerProps, handlers, { onRenderAvatar: onRenderAvatar, formFactor: props.isMobile ? 'compact' : 'default', strings: captionsBannerStrings })))),
76
82
  !props.isMobile && captionsBannerProps.isCaptionsOn && (React.createElement("div", { className: floatingChildClassName },
77
83
  React.createElement(CaptionsBannerMoreButton, { onCaptionsSettingsClick: onClickCaptionsSettings }))))));
78
84
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CaptionsBanner.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/CaptionsBanner.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { useState, useEffect } from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { _CaptionsBanner, _CaptionsBannerStrings } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _DrawerMenu, _DrawerMenuItemProps, _DrawerSurface } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { mergeStyles, Stack } from '@fluentui/react';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsSettingsModal } from './CaptionsSettingsModal';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsBannerMoreButton } from './CaptionsBannerMoreButton';\n/* @conditional-compile-remove(close-captions) */\nimport { useAdaptedSelector } from '../CallComposite/hooks/useAdaptedSelector';\n/* @conditional-compile-remove(close-captions) */\nimport { useHandlers } from '../CallComposite/hooks/useHandlers';\n/* @conditional-compile-remove(close-captions) */\nimport { _captionsBannerSelector } from '@internal/calling-component-bindings';\n\n/* @conditional-compile-remove(close-captions) */\nimport { useLocale } from '../localization';\n\n/* @conditional-compile-remove(close-captions) */\nconst mobileViewBannerWidth = '90%';\n\n/** @private */\nexport const CaptionsBanner = (props: { isMobile: boolean }): JSX.Element => {\n /* @conditional-compile-remove(close-captions) */\n const captionsBannerProps = useAdaptedSelector(_captionsBannerSelector);\n /* @conditional-compile-remove(close-captions) */\n const handlers = useHandlers(_CaptionsBanner);\n /* @conditional-compile-remove(close-captions) */\n const [isCaptionsSettingsOpen, setIsCaptionsSettingsOpen] = useState<boolean>(false);\n /* @conditional-compile-remove(close-captions) */\n const onClickCaptionsSettings = (): void => {\n setIsCaptionsSettingsOpen(true);\n };\n /* @conditional-compile-remove(close-captions) */\n const onDismissCaptionsSettings = (): void => {\n setIsCaptionsSettingsOpen(false);\n };\n /* @conditional-compile-remove(close-captions) */\n const containerClassName = mergeStyles({\n position: 'relative'\n });\n /* @conditional-compile-remove(close-captions) */\n const floatingChildClassName = mergeStyles({\n position: 'absolute',\n right: 0,\n top: 0\n });\n\n /* @conditional-compile-remove(close-captions) */\n const strings = useLocale().strings.call;\n\n /* @conditional-compile-remove(close-captions) */\n const captionsBannerStrings: _CaptionsBannerStrings = {\n captionsBannerSpinnerText: strings.captionsBannerSpinnerText\n };\n /* @conditional-compile-remove(close-captions) */\n const { innerWidth: width } = window;\n /* @conditional-compile-remove(close-captions) */\n const [windowWidth, setWindowWidth] = useState(width);\n /* @conditional-compile-remove(close-captions) */\n useEffect(() => {\n function handleResize(): void {\n setWindowWidth(window.innerWidth);\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n /* @conditional-compile-remove(close-captions) */\n const desktopViewBannerWidth = windowWidth > 620 ? '35rem' : '80%';\n\n return (\n <>\n {\n /* @conditional-compile-remove(close-captions) */ isCaptionsSettingsOpen && (\n <CaptionsSettingsModal\n showCaptionsSettingsModal={isCaptionsSettingsOpen}\n onDismissCaptionsSettings={onDismissCaptionsSettings}\n changeCaptionLanguage\n />\n )\n }\n {\n /* @conditional-compile-remove(close-captions) */ <div className={containerClassName}>\n <Stack horizontalAlign=\"center\">\n <Stack.Item style={{ width: props.isMobile ? mobileViewBannerWidth : desktopViewBannerWidth }}>\n <_CaptionsBanner\n {...captionsBannerProps}\n {...handlers}\n formFactor={props.isMobile ? 'compact' : 'default'}\n strings={captionsBannerStrings}\n />\n </Stack.Item>\n </Stack>\n {!props.isMobile && captionsBannerProps.isCaptionsOn && (\n <div className={floatingChildClassName}>\n <CaptionsBannerMoreButton onCaptionsSettingsClick={onClickCaptionsSettings} />\n </div>\n )}\n </div>\n }\n </>\n );\n};\n\"../../../../react-components/src\"\"../../../../calling-component-bindings/src\""]}
1
+ {"version":3,"file":"CaptionsBanner.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/CaptionsBanner.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { useState, useEffect, useCallback } from 'react';\n/* @conditional-compile-remove(close-captions) */\nimport { _CaptionsBanner, _CaptionsBannerStrings, CustomAvatarOptions } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { _DrawerMenu, _DrawerMenuItemProps, _DrawerSurface } from '@internal/react-components';\n/* @conditional-compile-remove(close-captions) */\nimport { mergeStyles, Stack } from '@fluentui/react';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsSettingsModal } from './CaptionsSettingsModal';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsBannerMoreButton } from './CaptionsBannerMoreButton';\n/* @conditional-compile-remove(close-captions) */\nimport { useAdaptedSelector } from '../CallComposite/hooks/useAdaptedSelector';\n/* @conditional-compile-remove(close-captions) */\nimport { useHandlers } from '../CallComposite/hooks/useHandlers';\n/* @conditional-compile-remove(close-captions) */\nimport { _captionsBannerSelector } from '@internal/calling-component-bindings';\n\n/* @conditional-compile-remove(close-captions) */\nimport { useLocale } from '../localization';\n/* @conditional-compile-remove(close-captions) */\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\n\n/* @conditional-compile-remove(close-captions) */\nconst mobileViewBannerWidth = '90%';\n\n/** @private */\nexport const CaptionsBanner = (props: {\n isMobile: boolean;\n /* @conditional-compile-remove(close-captions) */ onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n}): JSX.Element => {\n /* @conditional-compile-remove(close-captions) */\n const captionsBannerProps = useAdaptedSelector(_captionsBannerSelector);\n /* @conditional-compile-remove(close-captions) */\n const handlers = useHandlers(_CaptionsBanner);\n /* @conditional-compile-remove(close-captions) */\n const [isCaptionsSettingsOpen, setIsCaptionsSettingsOpen] = useState<boolean>(false);\n /* @conditional-compile-remove(close-captions) */\n const onClickCaptionsSettings = (): void => {\n setIsCaptionsSettingsOpen(true);\n };\n /* @conditional-compile-remove(close-captions) */\n const onDismissCaptionsSettings = (): void => {\n setIsCaptionsSettingsOpen(false);\n };\n /* @conditional-compile-remove(close-captions) */\n const containerClassName = mergeStyles({\n position: 'relative'\n });\n /* @conditional-compile-remove(close-captions) */\n const floatingChildClassName = mergeStyles({\n position: 'absolute',\n right: 0,\n top: 0\n });\n\n /* @conditional-compile-remove(close-captions) */\n const strings = useLocale().strings.call;\n\n /* @conditional-compile-remove(close-captions) */\n const captionsBannerStrings: _CaptionsBannerStrings = {\n captionsBannerSpinnerText: strings.captionsBannerSpinnerText\n };\n /* @conditional-compile-remove(close-captions) */\n const onRenderAvatar = useCallback(\n (userId?: string, options?: CustomAvatarOptions) => {\n return <AvatarPersona userId={userId} {...options} dataProvider={props.onFetchAvatarPersonaData} />;\n },\n [props.onFetchAvatarPersonaData]\n );\n /* @conditional-compile-remove(close-captions) */\n const { innerWidth: width } = window;\n /* @conditional-compile-remove(close-captions) */\n const [windowWidth, setWindowWidth] = useState(width);\n /* @conditional-compile-remove(close-captions) */\n useEffect(() => {\n function handleResize(): void {\n setWindowWidth(window.innerWidth);\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n /* @conditional-compile-remove(close-captions) */\n const desktopViewBannerWidth = windowWidth > 620 ? '35rem' : '80%';\n\n return (\n <>\n {\n /* @conditional-compile-remove(close-captions) */ isCaptionsSettingsOpen && (\n <CaptionsSettingsModal\n showCaptionsSettingsModal={isCaptionsSettingsOpen}\n onDismissCaptionsSettings={onDismissCaptionsSettings}\n changeCaptionLanguage\n />\n )\n }\n {\n /* @conditional-compile-remove(close-captions) */ <div className={containerClassName}>\n <Stack horizontalAlign=\"center\">\n <Stack.Item style={{ width: props.isMobile ? mobileViewBannerWidth : desktopViewBannerWidth }}>\n <_CaptionsBanner\n {...captionsBannerProps}\n {...handlers}\n onRenderAvatar={onRenderAvatar}\n formFactor={props.isMobile ? 'compact' : 'default'}\n strings={captionsBannerStrings}\n />\n </Stack.Item>\n </Stack>\n {!props.isMobile && captionsBannerProps.isCaptionsOn && (\n <div className={floatingChildClassName}>\n <CaptionsBannerMoreButton onCaptionsSettingsClick={onClickCaptionsSettings} />\n </div>\n )}\n </div>\n }\n </>\n );\n};\n\"../../../../react-components/src\"\"../../../../calling-component-bindings/src\""]}
@@ -1,8 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { OnRenderAvatarCallback, ParticipantListProps, ParticipantMenuItemsCallback } from "../../../../react-components/src";
2
+ import { ParticipantListProps, ParticipantMenuItemsCallback } from "../../../../react-components/src";
3
3
  import { AvatarPersonaDataCallback } from './AvatarPersona';
4
4
  declare type ParticipantContainerProps = {
5
- onRenderAvatar?: OnRenderAvatarCallback;
6
5
  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;
7
6
  onFetchAvatarPersonaData?: AvatarPersonaDataCallback;
8
7
  participantListProps: ParticipantListProps;
@@ -1 +1 @@
1
- {"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/ParticipantContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport {\n participantListContainerStyle,\n participantListMobileStyle,\n participantListStack,\n participantListStyle,\n participantListWrapper,\n displayNameStyles\n} from './styles/ParticipantContainer.styles';\nimport {\n OnRenderAvatarCallback,\n ParticipantList,\n ParticipantListProps,\n ParticipantMenuItemsCallback\n} from '@internal/react-components';\nimport { FocusZone, Stack, Text, useTheme } from '@fluentui/react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from '@internal/acs-ui-common';\n\ntype ParticipantContainerProps = {\n onRenderAvatar?: OnRenderAvatarCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n};\n\n/**\n * @private\n */\nexport const ParticipantContainer = (props: ParticipantContainerProps): JSX.Element => {\n const theme = useTheme();\n const participantListWrapperClassName = useMemo(() => participantListWrapper(theme), [theme]);\n return (\n <Stack className={participantListWrapperClassName}>\n <ParticipantListWithHeading {...props} />\n </Stack>\n );\n};\n\n/**\n * @private\n */\nexport const ParticipantListWithHeading = (props: {\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n}): JSX.Element => {\n const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n /* @conditional-compile-remove(total-participant-count) */\n const totalParticipantCount = participantListProps.totalParticipantCount;\n const subheadingStyleThemed = useMemo(\n () => ({\n root: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize\n }\n }),\n [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]\n );\n\n return (\n <Stack className={participantListStack}>\n <Stack.Item styles={subheadingStyleThemed} aria-label={title} id={subheadingUniqueId}>\n {paneTitleTrampoline(\n title ?? '',\n /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount\n )}\n </Stack.Item>\n <FocusZone className={participantListContainerStyle} shouldFocusOnMount={true}>\n <ParticipantList\n {...participantListProps}\n styles={props.isMobile ? participantListMobileStyle : participantListStyle}\n onRenderAvatar={(userId, options) => (\n <>\n <AvatarPersona\n data-ui-id=\"chat-composite-participant-custom-avatar\"\n userId={userId}\n {...options}\n {...{ hidePersonaDetails: !!options?.text }}\n dataProvider={onFetchAvatarPersonaData}\n />\n {options?.text && (\n <Text nowrap={true} styles={displayNameStyles}>\n {options?.text}\n </Text>\n )}\n </>\n )}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n showParticipantOverflowTooltip={!props.isMobile}\n participantAriaLabelledBy={subheadingUniqueId}\n />\n </FocusZone>\n </Stack>\n );\n};\n\nconst paneTitleTrampoline = (paneTitle: string, totalParticipantCount?: number): string => {\n const participantCountString = totalParticipantCount\n ? { numberOfPeople: `(${totalParticipantCount})` }\n : { numberOfPeople: ' ' };\n return _formatString(paneTitle, participantCountString);\n};\n\"../../../../react-components/src\"\"../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"ParticipantContainer.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/ParticipantContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React, { useMemo } from 'react';\nimport {\n participantListContainerStyle,\n participantListMobileStyle,\n participantListStack,\n participantListStyle,\n participantListWrapper,\n displayNameStyles\n} from './styles/ParticipantContainer.styles';\nimport { ParticipantList, ParticipantListProps, ParticipantMenuItemsCallback } from '@internal/react-components';\nimport { FocusZone, Stack, Text, useTheme } from '@fluentui/react';\nimport { AvatarPersona, AvatarPersonaDataCallback } from './AvatarPersona';\nimport { useId } from '@fluentui/react-hooks';\nimport { _formatString } from '@internal/acs-ui-common';\n\ntype ParticipantContainerProps = {\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n};\n\n/**\n * @private\n */\nexport const ParticipantContainer = (props: ParticipantContainerProps): JSX.Element => {\n const theme = useTheme();\n const participantListWrapperClassName = useMemo(() => participantListWrapper(theme), [theme]);\n return (\n <Stack className={participantListWrapperClassName}>\n <ParticipantListWithHeading {...props} />\n </Stack>\n );\n};\n\n/**\n * @private\n */\nexport const ParticipantListWithHeading = (props: {\n participantListProps: ParticipantListProps;\n title?: string;\n isMobile?: boolean;\n onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n}): JSX.Element => {\n const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps } = props;\n const subheadingUniqueId = useId();\n const theme = useTheme();\n /* @conditional-compile-remove(total-participant-count) */\n const totalParticipantCount = participantListProps.totalParticipantCount;\n const subheadingStyleThemed = useMemo(\n () => ({\n root: {\n color: theme.palette.neutralSecondary,\n margin: props.isMobile ? '0.5rem 1rem' : '0.5rem',\n fontSize: theme.fonts.smallPlus.fontSize\n }\n }),\n [theme.palette.neutralSecondary, theme.fonts.smallPlus.fontSize, props.isMobile]\n );\n\n return (\n <Stack className={participantListStack}>\n <Stack.Item styles={subheadingStyleThemed} aria-label={title} id={subheadingUniqueId}>\n {paneTitleTrampoline(\n title ?? '',\n /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount\n )}\n </Stack.Item>\n <FocusZone className={participantListContainerStyle} shouldFocusOnMount={true}>\n <ParticipantList\n {...participantListProps}\n styles={props.isMobile ? participantListMobileStyle : participantListStyle}\n onRenderAvatar={(userId, options) => (\n <>\n <AvatarPersona\n data-ui-id=\"chat-composite-participant-custom-avatar\"\n userId={userId}\n {...options}\n {...{ hidePersonaDetails: !!options?.text }}\n dataProvider={onFetchAvatarPersonaData}\n />\n {options?.text && (\n <Text nowrap={true} styles={displayNameStyles}>\n {options?.text}\n </Text>\n )}\n </>\n )}\n onFetchParticipantMenuItems={onFetchParticipantMenuItems}\n showParticipantOverflowTooltip={!props.isMobile}\n participantAriaLabelledBy={subheadingUniqueId}\n />\n </FocusZone>\n </Stack>\n );\n};\n\nconst paneTitleTrampoline = (paneTitle: string, totalParticipantCount?: number): string => {\n const participantCountString = totalParticipantCount\n ? { numberOfPeople: `(${totalParticipantCount})` }\n : { numberOfPeople: ' ' };\n return _formatString(paneTitle, participantCountString);\n};\n\"../../../../react-components/src\"\"../../../../acs-ui-common/src\""]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure/communication-react",
3
- "version": "1.8.1-alpha-202310070012",
3
+ "version": "1.8.1-alpha-202310080014",
4
4
  "sideEffects": false,
5
5
  "description": "React library for building modern communication user experiences utilizing Azure Communication Services",
6
6
  "keywords": [
@@ -98,13 +98,13 @@
98
98
  "@azure/core-auth": "^1.4.0",
99
99
  "@babel/cli": "^7.16.0",
100
100
  "@babel/core": "^7.16.0",
101
- "@internal/calling-component-bindings": "1.8.1-alpha-202310070012",
102
- "@internal/calling-stateful-client": "1.8.1-alpha-202310070012",
103
- "@internal/chat-component-bindings": "1.8.1-alpha-202310070012",
104
- "@internal/chat-stateful-client": "1.8.1-alpha-202310070012",
105
- "@internal/fake-backends": "1.8.1-alpha-202310070012",
106
- "@internal/react-components": "1.8.1-alpha-202310070012",
107
- "@internal/react-composites": "1.8.1-alpha-202310070012",
101
+ "@internal/calling-component-bindings": "1.8.1-alpha-202310080014",
102
+ "@internal/calling-stateful-client": "1.8.1-alpha-202310080014",
103
+ "@internal/chat-component-bindings": "1.8.1-alpha-202310080014",
104
+ "@internal/chat-stateful-client": "1.8.1-alpha-202310080014",
105
+ "@internal/fake-backends": "1.8.1-alpha-202310080014",
106
+ "@internal/react-components": "1.8.1-alpha-202310080014",
107
+ "@internal/react-composites": "1.8.1-alpha-202310080014",
108
108
  "@microsoft/api-documenter": "~7.12.11",
109
109
  "@microsoft/api-extractor": "~7.18.0",
110
110
  "@rollup/plugin-json": "^4.1.0",