@azure/communication-react 1.2.3-alpha-202205140015.0 → 1.2.3-alpha-202205200012.0

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 (33) hide show
  1. package/dist/dist-cjs/communication-react/index.js +148 -139
  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/calling-component-bindings/src/handlers/createHandlers.d.ts.map +1 -1
  5. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  7. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.d.ts +9 -0
  8. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.d.ts.map +1 -0
  9. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js +58 -0
  10. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -0
  11. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.d.ts +1 -29
  12. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.d.ts.map +1 -1
  13. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js +2 -116
  14. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.d.ts +27 -0
  16. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.d.ts.map +1 -0
  17. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js +67 -0
  18. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -0
  19. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.d.ts +1 -1
  20. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.d.ts.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.d.ts +30 -0
  22. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.d.ts.map +1 -0
  23. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js +4 -0
  24. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js.map +1 -0
  25. package/dist/dist-esm/react-components/src/components/FileCard.js +6 -5
  26. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  27. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts.map +1 -1
  28. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +22 -18
  29. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  30. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts.map +1 -1
  31. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +1 -1
  32. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
  33. package/package.json +7 -7
@@ -191,7 +191,7 @@ const fromFlatCommunicationIdentifier = (id) => {
191
191
  // Copyright (c) Microsoft Corporation.
192
192
  // Licensed under the MIT license.
193
193
  // GENERATED FILE. DO NOT EDIT MANUALLY.
194
- var telemetryVersion = '1.2.3-alpha-202205140015.0';
194
+ var telemetryVersion = '1.2.3-alpha-202205200012.0';
195
195
 
196
196
  // Copyright (c) Microsoft Corporation.
197
197
  /**
@@ -569,7 +569,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
569
569
  const onStopScreenShare = () => __awaiter$q(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
570
570
  const onToggleScreenShare = () => __awaiter$q(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
571
571
  const onHangUp = () => __awaiter$q(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp()); });
572
- const onCreateLocalStreamView = (options) => __awaiter$q(void 0, void 0, void 0, function* () {
572
+ const onCreateLocalStreamView = (options = { scalingMode: 'Crop', isMirrored: true }) => __awaiter$q(void 0, void 0, void 0, function* () {
573
573
  if (!call || call.localVideoStreams.length === 0) {
574
574
  return;
575
575
  }
@@ -2031,7 +2031,8 @@ const _FileCard = (props) => {
2031
2031
  width: '12rem',
2032
2032
  background: theme.palette.neutralLighter,
2033
2033
  borderRadius: theme.effects.roundedCorner4,
2034
- border: `${_pxToRem(1)} solid ${theme.palette.neutralQuaternary}`
2034
+ border: `${_pxToRem(1)} solid ${theme.palette.neutralQuaternary}`,
2035
+ cursor: 'pointer'
2035
2036
  });
2036
2037
  const fileInfoWrapperClassName = react.mergeStyles({
2037
2038
  padding: _pxToRem(12),
@@ -2063,7 +2064,9 @@ const _FileCard = (props) => {
2063
2064
  height: _pxToRem(progressBarThicknessPx)
2064
2065
  }
2065
2066
  };
2066
- return (React__default['default'].createElement(react.Stack, { className: containerClassName },
2067
+ return (React__default['default'].createElement(react.Stack, { className: containerClassName, onClick: () => {
2068
+ props.actionHandler && props.actionHandler();
2069
+ } },
2067
2070
  React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: fileInfoWrapperClassName },
2068
2071
  React__default['default'].createElement(react.Stack, null,
2069
2072
  React__default['default'].createElement(react.Icon, Object.assign({}, reactFileTypeIcons.getFileTypeIconProps({
@@ -2073,9 +2076,7 @@ const _FileCard = (props) => {
2073
2076
  })))),
2074
2077
  React__default['default'].createElement(react.Stack, { className: fileNameContainerClassName },
2075
2078
  React__default['default'].createElement(react.Text, { className: fileNameTextClassName }, fileName)),
2076
- React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: actionIconClassName, onClick: () => {
2077
- props.actionHandler && props.actionHandler();
2078
- } }, actionIcon && actionIcon)),
2079
+ React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: actionIconClassName }, actionIcon && actionIcon)),
2079
2080
  showProgressIndicator && React__default['default'].createElement(react.ProgressIndicator, { percentComplete: progress, styles: progressIndicatorStyles })));
2080
2081
  };
2081
2082
 
@@ -6808,8 +6809,125 @@ const computeVariant = (callRecordState, callTranscribeState) => {
6808
6809
  }
6809
6810
  };
6810
6811
 
6812
+ // Copyright (c) Microsoft Corporation.
6813
+ /** @private */
6814
+ function BannerMessage(props) {
6815
+ const { variant, strings } = props;
6816
+ switch (variant) {
6817
+ case 'TRANSCRIPTION_STOPPED_STILL_RECORDING':
6818
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
6819
+ React__default['default'].createElement("b", null, strings.complianceBannerTranscriptionStopped),
6820
+ ` ${strings.complianceBannerNowOnlyRecording}`,
6821
+ React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6822
+ case 'RECORDING_STOPPED_STILL_TRANSCRIBING':
6823
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
6824
+ React__default['default'].createElement("b", null, strings.complianceBannerRecordingStopped),
6825
+ ` ${strings.complianceBannerNowOnlyTranscription}`,
6826
+ React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6827
+ case 'RECORDING_AND_TRANSCRIPTION_STOPPED':
6828
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
6829
+ React__default['default'].createElement("b", null, strings.complianceBannerRecordingAndTranscriptionSaved),
6830
+ ` ${strings.complianceBannerRecordingAndTranscriptionStopped}`,
6831
+ React__default['default'].createElement(LearnMore, { linkText: strings.learnMore })));
6832
+ case 'RECORDING_AND_TRANSCRIPTION_STARTED':
6833
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
6834
+ React__default['default'].createElement("b", null, strings.complianceBannerRecordingAndTranscriptionStarted),
6835
+ ` ${strings.complianceBannerTranscriptionConsent}`,
6836
+ React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6837
+ case 'TRANSCRIPTION_STARTED':
6838
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
6839
+ React__default['default'].createElement("b", null, strings.complianceBannerTranscriptionStarted),
6840
+ ` ${strings.complianceBannerTranscriptionConsent}`,
6841
+ React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6842
+ case 'RECORDING_STOPPED':
6843
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
6844
+ React__default['default'].createElement("b", null, strings.complianceBannerRecordingSaving),
6845
+ ` ${strings.complianceBannerRecordingStopped}`,
6846
+ React__default['default'].createElement(LearnMore, { linkText: strings.learnMore })));
6847
+ case 'RECORDING_STARTED':
6848
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
6849
+ React__default['default'].createElement("b", null, strings.complianceBannerRecordingStarted),
6850
+ ` ${strings.complianceBannerTranscriptionConsent}`,
6851
+ React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6852
+ case 'TRANSCRIPTION_STOPPED':
6853
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
6854
+ React__default['default'].createElement("b", null, strings.complianceBannerTranscriptionSaving),
6855
+ ` ${strings.complianceBannerTranscriptionStopped}`,
6856
+ React__default['default'].createElement(LearnMore, { linkText: strings.learnMore })));
6857
+ }
6858
+ return React__default['default'].createElement(React__default['default'].Fragment, null);
6859
+ }
6860
+ function PrivacyPolicy(props) {
6861
+ return (React__default['default'].createElement(react.Link, { href: "https://privacy.microsoft.com/privacystatement#mainnoticetoendusersmodule", target: "_blank", underline: true }, props.linkText));
6862
+ }
6863
+ function LearnMore(props) {
6864
+ return (React__default['default'].createElement(react.Link, { href: "https://support.microsoft.com/office/record-a-meeting-in-teams-34dfbe7f-b07d-4a27-b4c6-de62f1348c24", target: "_blank", underline: true }, props.linkText));
6865
+ }
6866
+
6811
6867
  // Copyright (c) Microsoft Corporation.
6812
6868
  const BANNER_OVERWRITE_DELAY_MS = 3000;
6869
+ /**
6870
+ * Shows a {@link BannerMessage} in a {@link MessageBar} tracking `variant` internally.
6871
+ *
6872
+ * This component delays and combines frequent updates to `variant` such that:
6873
+ * - Updates that happen within {@link BANNER_OVERWRITE_DELAY_MS} are delayed.
6874
+ * - Once {@link BANNER_OVERWRITE_DELAY_MS} has passed since the last update, the _latest_ pending update is shown.
6875
+ *
6876
+ * This ensures that there is enough time for the user to see a banner message before it is overwritten.
6877
+ * In case of multiple delayed messages, the user always sees the final message as it reflects the final state
6878
+ * of recording and transcription.
6879
+ *
6880
+ * @private
6881
+ */
6882
+ function DelayedUpdateBanner(props) {
6883
+ const { variant, lastUpdated: variantLastUpdated } = props.variant;
6884
+ // Tracks the variant that is currently visible in the UI.
6885
+ const [visible, setVisible] = React.useState({
6886
+ variant,
6887
+ lastUpdated: Date.now()
6888
+ });
6889
+ const pendingUpdateHandle = React.useRef(null);
6890
+ if (variant !== visible.variant && variantLastUpdated > visible.lastUpdated) {
6891
+ // Always clear pending updates.
6892
+ // We'll either update now, or schedule an update for later.
6893
+ if (pendingUpdateHandle.current) {
6894
+ clearTimeout(pendingUpdateHandle.current);
6895
+ }
6896
+ const now = Date.now();
6897
+ const timeToNextUpdate = BANNER_OVERWRITE_DELAY_MS - (now - visible.lastUpdated);
6898
+ if (variant === 'NO_STATE' || timeToNextUpdate <= 0) {
6899
+ setVisible({
6900
+ variant,
6901
+ lastUpdated: now
6902
+ });
6903
+ }
6904
+ else {
6905
+ pendingUpdateHandle.current = setTimeout(() => {
6906
+ // Set the actual update time, not the computed time when the update should happen.
6907
+ // The actual update might be later than we planned.
6908
+ setVisible({
6909
+ variant,
6910
+ lastUpdated: Date.now()
6911
+ });
6912
+ }, timeToNextUpdate);
6913
+ }
6914
+ }
6915
+ if (visible.variant === 'NO_STATE') {
6916
+ return React__default['default'].createElement(React__default['default'].Fragment, null);
6917
+ }
6918
+ return (React__default['default'].createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning, onDismiss: () => {
6919
+ // when closing the banner, change variant to nostate and change stopped state to off state.
6920
+ // Reason: on banner close, going back to the default state.
6921
+ setVisible({
6922
+ variant: 'NO_STATE',
6923
+ lastUpdated: Date.now()
6924
+ });
6925
+ props.onDismiss();
6926
+ }, dismissButtonAriaLabel: props.strings.close },
6927
+ React__default['default'].createElement(BannerMessage, { variant: visible.variant, strings: props.strings })));
6928
+ }
6929
+
6930
+ // Copyright (c) Microsoft Corporation.
6813
6931
  /**
6814
6932
  * A component that displays banners to notify the user when call recording and
6815
6933
  * transcription is enabled or disabled in a call.
@@ -6886,119 +7004,6 @@ function determineStates(previous, current) {
6886
7004
  }
6887
7005
  }
6888
7006
  }
6889
- /**
6890
- * Shows a {@link BannerMessage} in a {@link MessageBar} tracking `variant` internally.
6891
- *
6892
- * This component delays and combines frequent updates to `variant` such that:
6893
- * - Updates that happen within {@link BANNER_OVERWRITE_DELAY_MS} are delayed.
6894
- * - Once {@link BANNER_OVERWRITE_DELAY_MS} has passed since the last update, the _latest_ pending update is shown.
6895
- *
6896
- * This ensures that there is enough time for the user to see a banner message before it is overwritten.
6897
- * In case of multiple delayed messages, the user always sees the final message as it reflects the final state
6898
- * of recording and transcription.
6899
- *
6900
- * @private
6901
- */
6902
- function DelayedUpdateBanner(props) {
6903
- const { variant, lastUpdated: variantLastUpdated } = props.variant;
6904
- // Tracks the variant that is currently visible in the UI.
6905
- const [visible, setVisible] = React.useState({
6906
- variant,
6907
- lastUpdated: Date.now()
6908
- });
6909
- const pendingUpdateHandle = React.useRef(null);
6910
- if (variant !== visible.variant && variantLastUpdated > visible.lastUpdated) {
6911
- // Always clear pending updates.
6912
- // We'll either update now, or schedule an update for later.
6913
- if (pendingUpdateHandle.current) {
6914
- clearTimeout(pendingUpdateHandle.current);
6915
- pendingUpdateHandle.current = null;
6916
- }
6917
- const now = Date.now();
6918
- const timeToNextUpdate = BANNER_OVERWRITE_DELAY_MS - (now - visible.lastUpdated);
6919
- if (variant === 'NO_STATE' || timeToNextUpdate <= 0) {
6920
- setVisible({
6921
- variant,
6922
- lastUpdated: now
6923
- });
6924
- }
6925
- else {
6926
- pendingUpdateHandle.current = setTimeout(() => {
6927
- // Set the actual update time, not the computed time when the update should happen.
6928
- // The actual update might be later than we planned.
6929
- setVisible({
6930
- variant,
6931
- lastUpdated: Date.now()
6932
- });
6933
- }, timeToNextUpdate);
6934
- }
6935
- }
6936
- if (visible.variant === 'NO_STATE') {
6937
- return React__default['default'].createElement(React__default['default'].Fragment, null);
6938
- }
6939
- return (React__default['default'].createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning, onDismiss: () => {
6940
- // when closing the banner, change variant to nostate and change stopped state to off state.
6941
- // Reason: on banner close, going back to the default state.
6942
- setVisible({
6943
- variant: 'NO_STATE',
6944
- lastUpdated: Date.now()
6945
- });
6946
- props.onDismiss();
6947
- }, dismissButtonAriaLabel: props.strings.close },
6948
- React__default['default'].createElement(BannerMessage, { variant: visible.variant, strings: props.strings })));
6949
- }
6950
- function BannerMessage(props) {
6951
- const { variant, strings } = props;
6952
- switch (variant) {
6953
- case 'TRANSCRIPTION_STOPPED_STILL_RECORDING':
6954
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
6955
- React__default['default'].createElement("b", null, strings.complianceBannerTranscriptionStopped),
6956
- ` ${strings.complianceBannerNowOnlyRecording}`,
6957
- React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6958
- case 'RECORDING_STOPPED_STILL_TRANSCRIBING':
6959
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
6960
- React__default['default'].createElement("b", null, strings.complianceBannerRecordingStopped),
6961
- ` ${strings.complianceBannerNowOnlyTranscription}`,
6962
- React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6963
- case 'RECORDING_AND_TRANSCRIPTION_STOPPED':
6964
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
6965
- React__default['default'].createElement("b", null, strings.complianceBannerRecordingAndTranscriptionSaved),
6966
- ` ${strings.complianceBannerRecordingAndTranscriptionStopped}`,
6967
- React__default['default'].createElement(LearnMore, { linkText: strings.learnMore })));
6968
- case 'RECORDING_AND_TRANSCRIPTION_STARTED':
6969
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
6970
- React__default['default'].createElement("b", null, strings.complianceBannerRecordingAndTranscriptionStarted),
6971
- ` ${strings.complianceBannerTranscriptionConsent}`,
6972
- React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6973
- case 'TRANSCRIPTION_STARTED':
6974
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
6975
- React__default['default'].createElement("b", null, strings.complianceBannerTranscriptionStarted),
6976
- ` ${strings.complianceBannerTranscriptionConsent}`,
6977
- React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6978
- case 'RECORDING_STOPPED':
6979
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
6980
- React__default['default'].createElement("b", null, strings.complianceBannerRecordingSaving),
6981
- ` ${strings.complianceBannerRecordingStopped}`,
6982
- React__default['default'].createElement(LearnMore, { linkText: strings.learnMore })));
6983
- case 'RECORDING_STARTED':
6984
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
6985
- React__default['default'].createElement("b", null, strings.complianceBannerRecordingStarted),
6986
- ` ${strings.complianceBannerTranscriptionConsent}`,
6987
- React__default['default'].createElement(PrivacyPolicy, { linkText: strings.privacyPolicy })));
6988
- case 'TRANSCRIPTION_STOPPED':
6989
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
6990
- React__default['default'].createElement("b", null, strings.complianceBannerTranscriptionSaving),
6991
- ` ${strings.complianceBannerTranscriptionStopped}`,
6992
- React__default['default'].createElement(LearnMore, { linkText: strings.learnMore })));
6993
- }
6994
- return React__default['default'].createElement(React__default['default'].Fragment, null);
6995
- }
6996
- function PrivacyPolicy(props) {
6997
- return (React__default['default'].createElement(react.Link, { href: "https://privacy.microsoft.com/privacystatement#mainnoticetoendusersmodule", target: "_blank", underline: true }, props.linkText));
6998
- }
6999
- function LearnMore(props) {
7000
- return (React__default['default'].createElement(react.Link, { href: "https://support.microsoft.com/office/record-a-meeting-in-teams-34dfbe7f-b07d-4a27-b4c6-de62f1348c24", target: "_blank", underline: true }, props.linkText));
7001
- }
7002
7007
 
7003
7008
  // Copyright (c) Microsoft Corporation.
7004
7009
  // Licensed under the MIT license.
@@ -15447,7 +15452,7 @@ const CallWithChatControlBar = (props) => {
15447
15452
  isEnabled$1(options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView })),
15448
15453
  props.mobileView && isEnabled$1(options === null || options === void 0 ? void 0 : options.chatButton) && chatButton,
15449
15454
  isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles })),
15450
- props.mobileView && (React__default['default'].createElement(MoreButton, { "data-ui-id": "call-with-chat-composite-more-button", strings: moreButtonStrings, onClick: props.onMoreButtonClicked })),
15455
+ props.mobileView && (React__default['default'].createElement(MoreButton, { "data-ui-id": "call-with-chat-composite-more-button", strings: moreButtonStrings, onClick: props.onMoreButtonClicked, disabled: props.disableButtonsForLobbyPage })),
15451
15456
  React__default['default'].createElement(EndCall, { displayType: "compact", styles: endCallButtonStyles })))))),
15452
15457
  !props.mobileView && (React__default['default'].createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
15453
15458
  isEnabled$1(options === null || options === void 0 ? void 0 : options.peopleButton) && (React__default['default'].createElement(PeopleButton, { checked: props.peopleButtonChecked, showLabel: true, onClick: props.onPeopleButtonClicked, "data-ui-id": "call-with-chat-composite-people-button", disabled: props.disableButtonsForLobbyPage, strings: peopleButtonStrings, styles: commonButtonStyles })),
@@ -16434,10 +16439,20 @@ const CallWithChatScreen = (props) => {
16434
16439
  const closePane = React.useCallback(() => {
16435
16440
  setActivePane('none');
16436
16441
  }, [setActivePane]);
16442
+ const chatProps = React.useMemo(() => {
16443
+ return {
16444
+ adapter: new CallWithChatBackedChatAdapter(callWithChatAdapter)
16445
+ };
16446
+ }, [callWithChatAdapter]);
16447
+ const modalLayerHostId = reactHooks.useId('modalLayerhost');
16448
+ const isInLobbyOrConnecting = currentPage === 'lobby';
16449
+ const hasJoinedCall = !!(currentPage && hasJoinedCallFn(currentPage, currentCallState !== null && currentCallState !== void 0 ? currentCallState : 'None'));
16450
+ const showControlBar = isInLobbyOrConnecting || hasJoinedCall;
16451
+ const isMobileWithActivePane = mobileView && activePane !== 'none';
16437
16452
  /** Constant setting of id for the parent stack of the composite */
16438
16453
  const compositeParentDivId = reactHooks.useId('callWithChatCompositeParentDiv-internal');
16439
16454
  const toggleChat = React.useCallback(() => {
16440
- if (activePane === 'chat') {
16455
+ if (activePane === 'chat' || !hasJoinedCall) {
16441
16456
  setActivePane('none');
16442
16457
  }
16443
16458
  else {
@@ -16456,21 +16471,25 @@ const CallWithChatScreen = (props) => {
16456
16471
  clearInterval(chatFocusTimeout);
16457
16472
  }, 300);
16458
16473
  }
16459
- }, [activePane, setActivePane, compositeParentDivId]);
16474
+ }, [activePane, setActivePane, compositeParentDivId, hasJoinedCall]);
16460
16475
  const togglePeople = React.useCallback(() => {
16461
- if (activePane === 'people') {
16476
+ if (activePane === 'people' || !hasJoinedCall) {
16462
16477
  setActivePane('none');
16463
16478
  }
16464
16479
  else {
16465
16480
  setActivePane('people');
16466
16481
  }
16467
- }, [activePane, setActivePane]);
16482
+ }, [activePane, setActivePane, hasJoinedCall]);
16468
16483
  const selectChat = React.useCallback(() => {
16469
- setActivePane('chat');
16470
- }, [setActivePane]);
16484
+ if (hasJoinedCall) {
16485
+ setActivePane('chat');
16486
+ }
16487
+ }, [setActivePane, hasJoinedCall]);
16471
16488
  const selectPeople = React.useCallback(() => {
16472
- setActivePane('people');
16473
- }, [setActivePane]);
16489
+ if (hasJoinedCall) {
16490
+ setActivePane('people');
16491
+ }
16492
+ }, [setActivePane, hasJoinedCall]);
16474
16493
  const [showDrawer, setShowDrawer] = React.useState(false);
16475
16494
  const onMoreButtonClicked = React.useCallback(() => {
16476
16495
  closePane();
@@ -16483,16 +16502,6 @@ const CallWithChatScreen = (props) => {
16483
16502
  setShowDrawer(false);
16484
16503
  togglePeople();
16485
16504
  }, [togglePeople]);
16486
- const chatProps = React.useMemo(() => {
16487
- return {
16488
- adapter: new CallWithChatBackedChatAdapter(callWithChatAdapter)
16489
- };
16490
- }, [callWithChatAdapter]);
16491
- const modalLayerHostId = reactHooks.useId('modalLayerhost');
16492
- const isInLobbyOrConnecting = currentPage === 'lobby';
16493
- const hasJoinedCall = !!(currentPage && hasJoinedCallFn(currentPage, currentCallState !== null && currentCallState !== void 0 ? currentCallState : 'None'));
16494
- const showControlBar = isInLobbyOrConnecting || hasJoinedCall;
16495
- const isMobileWithActivePane = mobileView && activePane !== 'none';
16496
16505
  return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles) },
16497
16506
  React__default['default'].createElement(react.Stack, { verticalFill: true, grow: true, styles: compositeOuterContainerStyles, id: compositeParentDivId },
16498
16507
  React__default['default'].createElement(react.Stack, { horizontal: true, grow: true },