@azure/communication-react 1.2.3-alpha-202205120015.0 → 1.2.3-alpha-202205170014.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.
- package/dist/communication-react.d.ts +16 -5
- package/dist/dist-cjs/communication-react/index.js +271 -183
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +4 -1
- package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts.map +1 -1
- package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +4 -2
- package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +2 -2
- package/dist/dist-esm/communication-react/src/index.d.ts.map +1 -1
- package/dist/dist-esm/communication-react/src/index.js +1 -1
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +4 -2
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +2 -2
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts +4 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +24 -13
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.d.ts +41 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.d.ts.map +1 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js +196 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.d.ts +20 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.d.ts.map +1 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js +42 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.d.ts +3 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.d.ts.map +1 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.js +4 -0
- package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +10 -4
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.d.ts +3 -1
- package/dist/dist-esm/react-components/src/components/index.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.js +1 -0
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +2 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +2 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +0 -19
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +0 -39
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +3 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +4 -2
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +4 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/index.d.ts +7 -0
- package/dist/dist-esm/react-composites/src/composites/localization/index.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/index.js +8 -0
- package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/index-public.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/index-public.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/index-public.js +8 -0
- package/dist/dist-esm/react-composites/src/index-public.js.map +1 -0
- package/package.json +7 -7
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ComplianceBanner.d.ts +0 -13
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ComplianceBanner.d.ts.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ComplianceBanner.js +0 -127
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ComplianceBanner.js.map +0 -1
- package/dist/dist-esm/react-composites/src/index.d.ts +0 -2
- package/dist/dist-esm/react-composites/src/index.d.ts.map +0 -1
- package/dist/dist-esm/react-composites/src/index.js +0 -4
- package/dist/dist-esm/react-composites/src/index.js.map +0 -1
@@ -2303,7 +2303,9 @@ export declare interface ChatAdapterThreadManagement {
|
|
2303
2303
|
/**
|
2304
2304
|
* Update a message content.
|
2305
2305
|
*/
|
2306
|
-
updateMessage(messageId: string, content: string, metadata?: Record<string, string
|
2306
|
+
updateMessage(messageId: string, content: string, metadata?: Record<string, string>, options?: {
|
2307
|
+
attachedFilesMetadata?: FileMetadata[];
|
2308
|
+
}): Promise<void>;
|
2307
2309
|
/**
|
2308
2310
|
* Delete a message in the thread.
|
2309
2311
|
*/
|
@@ -2584,7 +2586,9 @@ export declare type ChatHandlers = {
|
|
2584
2586
|
onRemoveParticipant: (userId: string) => Promise<void>;
|
2585
2587
|
updateThreadTopicName: (topicName: string) => Promise<void>;
|
2586
2588
|
onLoadPreviousChatMessages: (messagesToLoad: number) => Promise<boolean>;
|
2587
|
-
onUpdateMessage: (messageId: string, content: string, metadata?: Record<string, string
|
2589
|
+
onUpdateMessage: (messageId: string, content: string, metadata?: Record<string, string>, options?: {
|
2590
|
+
attachedFilesMetadata?: FileMetadata[];
|
2591
|
+
}) => Promise<void>;
|
2588
2592
|
onDeleteMessage: (messageId: string) => Promise<void>;
|
2589
2593
|
};
|
2590
2594
|
|
@@ -4605,9 +4609,8 @@ export declare type MessageProps = {
|
|
4605
4609
|
*
|
4606
4610
|
* @param messageId - message id from chatClient
|
4607
4611
|
* @param content - new content of the message
|
4608
|
-
*
|
4609
4612
|
*/
|
4610
|
-
onUpdateMessage?:
|
4613
|
+
onUpdateMessage?: UpdateMessageCallback;
|
4611
4614
|
/**
|
4612
4615
|
* Optional callback to delete a message.
|
4613
4616
|
*
|
@@ -4846,7 +4849,7 @@ export declare type MessageThreadProps = {
|
|
4846
4849
|
* @param content - new content of the message
|
4847
4850
|
*
|
4848
4851
|
*/
|
4849
|
-
onUpdateMessage?:
|
4852
|
+
onUpdateMessage?: UpdateMessageCallback;
|
4850
4853
|
/**
|
4851
4854
|
* Optional callback to delete a message.
|
4852
4855
|
*
|
@@ -6280,6 +6283,14 @@ export declare interface TypingIndicatorStylesProps extends BaseCustomStyles {
|
|
6280
6283
|
typingString?: IStyle;
|
6281
6284
|
}
|
6282
6285
|
|
6286
|
+
/**
|
6287
|
+
* @public
|
6288
|
+
* Callback function run when a message is updated.
|
6289
|
+
*/
|
6290
|
+
export declare type UpdateMessageCallback = (messageId: string, content: string, metadata?: Record<string, string>, options?: {
|
6291
|
+
attachedFilesMetadata?: FileMetadata[];
|
6292
|
+
}) => Promise<void>;
|
6293
|
+
|
6283
6294
|
/**
|
6284
6295
|
* A custom React hook to simplify the creation of {@link CallAdapter}.
|
6285
6296
|
*
|
@@ -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-
|
194
|
+
var telemetryVersion = '1.2.3-alpha-202205170014.0';
|
195
195
|
|
196
196
|
// Copyright (c) Microsoft Corporation.
|
197
197
|
/**
|
@@ -2580,9 +2580,10 @@ const onRenderSubmitIcon = (color) => {
|
|
2580
2580
|
const ChatMessageComponentAsEditBox = (props) => {
|
2581
2581
|
const { onCancel, onSubmit, strings, message } = props;
|
2582
2582
|
const [textValue, setTextValue] = React.useState(message.content || '');
|
2583
|
+
const [attachedFilesMetadata, setAttachedFilesMetadata] = React__default['default'].useState(getMessageAttachedFilesMetadata(message));
|
2583
2584
|
const editTextFieldRef = React__default['default'].useRef(null);
|
2584
2585
|
const theme = useTheme();
|
2585
|
-
const messageState = getMessageState(textValue);
|
2586
|
+
const messageState = getMessageState(textValue, attachedFilesMetadata !== null && attachedFilesMetadata !== void 0 ? attachedFilesMetadata : []);
|
2586
2587
|
const submitEnabled = messageState === 'OK';
|
2587
2588
|
React.useEffect(() => {
|
2588
2589
|
var _a;
|
@@ -2599,37 +2600,47 @@ const ChatMessageComponentAsEditBox = (props) => {
|
|
2599
2600
|
const editBoxStyles = React.useMemo(() => {
|
2600
2601
|
return react.concatStyleSets(editBoxStyleSet, { textField: { borderColor: theme.palette.themePrimary } });
|
2601
2602
|
}, [theme.palette.themePrimary]);
|
2602
|
-
/* @conditional-compile-remove(file-sharing) */
|
2603
2603
|
const onRenderFileUploads = React.useCallback(() => {
|
2604
|
-
|
2605
|
-
|
2606
|
-
React__default['default'].createElement(_FileUploadCards, { activeFileUploads: (_a = message.attachedFilesMetadata) === null || _a === void 0 ? void 0 : _a.map((file) => ({
|
2604
|
+
return ((attachedFilesMetadata === null || attachedFilesMetadata === void 0 ? void 0 : attachedFilesMetadata.length) && (React__default['default'].createElement("div", { style: { margin: '0.25rem' } },
|
2605
|
+
React__default['default'].createElement(_FileUploadCards, { activeFileUploads: attachedFilesMetadata === null || attachedFilesMetadata === void 0 ? void 0 : attachedFilesMetadata.map((file) => ({
|
2607
2606
|
id: file.name,
|
2608
2607
|
filename: file.name,
|
2609
2608
|
progress: 1
|
2610
|
-
}))
|
2611
|
-
|
2609
|
+
})), onCancelFileUpload: (fileId) => {
|
2610
|
+
setAttachedFilesMetadata(attachedFilesMetadata === null || attachedFilesMetadata === void 0 ? void 0 : attachedFilesMetadata.filter((file) => file.name !== fileId));
|
2611
|
+
} }))));
|
2612
|
+
}, [attachedFilesMetadata]);
|
2612
2613
|
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(borderAndBoxShadowStyle({
|
2613
2614
|
theme,
|
2614
2615
|
hasErrorMessage: false,
|
2615
2616
|
disabled: false
|
2616
2617
|
})) },
|
2617
2618
|
React__default['default'].createElement(InputBoxComponent, { inlineChildren: props.inlineEditButtons, id: 'editbox', textFieldRef: editTextFieldRef, inputClassName: editBoxStyle(props.inlineEditButtons), placeholderText: strings.editBoxPlaceholderText, textValue: textValue, onChange: setText, onEnterKeyDown: () => {
|
2618
|
-
submitEnabled &&
|
2619
|
+
submitEnabled &&
|
2620
|
+
onSubmit(textValue, message.metadata, {
|
2621
|
+
attachedFilesMetadata
|
2622
|
+
});
|
2619
2623
|
}, supportNewline: false, maxLength: MAXIMUM_LENGTH_OF_MESSAGE, errorMessage: textTooLongMessage, styles: editBoxStyles },
|
2620
2624
|
React__default['default'].createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxCancelButton, tooltipContent: strings.editBoxCancelButton, onRenderIcon: onRenderThemedCancelIcon, onClick: () => {
|
2621
2625
|
onCancel && onCancel();
|
2622
2626
|
}, id: 'dismissIconWrapper' }),
|
2623
2627
|
React__default['default'].createElement(InputBoxButton, { className: editingButtonStyle, ariaLabel: strings.editBoxSubmitButton, tooltipContent: strings.editBoxSubmitButton, onRenderIcon: onRenderThemedSubmitIcon, onClick: (e) => {
|
2624
|
-
submitEnabled &&
|
2628
|
+
submitEnabled &&
|
2629
|
+
onSubmit(textValue, message.metadata, {
|
2630
|
+
attachedFilesMetadata
|
2631
|
+
});
|
2625
2632
|
e.stopPropagation();
|
2626
2633
|
}, id: 'submitIconWrapper' })),
|
2627
|
-
/* @conditional-compile-remove(file-sharing) */
|
2628
2634
|
onRenderFileUploads()));
|
2629
2635
|
};
|
2630
2636
|
const isMessageTooLong = (messageText) => messageText.length > MAXIMUM_LENGTH_OF_MESSAGE;
|
2631
|
-
const isMessageEmpty = (messageText) => messageText.trim().length === 0;
|
2632
|
-
const getMessageState = (messageText) => isMessageEmpty(messageText) ? 'too short' : isMessageTooLong(messageText) ? 'too long' : 'OK';
|
2637
|
+
const isMessageEmpty = (messageText, attachedFilesMetadata) => messageText.trim().length === 0 && attachedFilesMetadata.length === 0;
|
2638
|
+
const getMessageState = (messageText, attachedFilesMetadata) => isMessageEmpty(messageText, attachedFilesMetadata) ? 'too short' : isMessageTooLong(messageText) ? 'too long' : 'OK';
|
2639
|
+
// @TODO: Remove when file-sharing feature becomes stable.
|
2640
|
+
const getMessageAttachedFilesMetadata = (message) => {
|
2641
|
+
/* @conditional-compile-remove(file-sharing) */
|
2642
|
+
return message.attachedFilesMetadata;
|
2643
|
+
};
|
2633
2644
|
|
2634
2645
|
// Copyright (c) Microsoft Corporation.
|
2635
2646
|
const MINIMUM_TOUCH_TARGET_HEIGHT_REM$1 = 3;
|
@@ -3218,10 +3229,10 @@ const ChatMessageComponent = (props) => {
|
|
3218
3229
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
3219
3230
|
}
|
3220
3231
|
else if (isEditing) {
|
3221
|
-
return (React__default['default'].createElement(ChatMessageComponentAsEditBox, { message: message, inlineEditButtons: props.inlineAcceptRejectEditButtons, strings: props.strings, onSubmit: (text) => __awaiter$o(void 0, void 0, void 0, function* () {
|
3232
|
+
return (React__default['default'].createElement(ChatMessageComponentAsEditBox, { message: message, inlineEditButtons: props.inlineAcceptRejectEditButtons, strings: props.strings, onSubmit: (text, metadata, options) => __awaiter$o(void 0, void 0, void 0, function* () {
|
3222
3233
|
props.onUpdateMessage &&
|
3223
3234
|
props.message.messageId &&
|
3224
|
-
(yield props.onUpdateMessage(props.message.messageId, text));
|
3235
|
+
(yield props.onUpdateMessage(props.message.messageId, text, metadata, options));
|
3225
3236
|
setIsEditing(false);
|
3226
3237
|
}), onCancel: () => {
|
3227
3238
|
setIsEditing(false);
|
@@ -6755,6 +6766,240 @@ const _DrawerMenu = (props) => {
|
|
6755
6766
|
} })))))));
|
6756
6767
|
};
|
6757
6768
|
|
6769
|
+
// Copyright (c) Microsoft Corporation.
|
6770
|
+
// Licensed under the MIT license.
|
6771
|
+
/**
|
6772
|
+
* Return different conditions based on the current and previous state of recording and transcribing
|
6773
|
+
*
|
6774
|
+
* @param callRecordState - The current call record state: on, off, stopped
|
6775
|
+
* @param callTranscribeState - The current call transcribe state: on, off, stopped
|
6776
|
+
*
|
6777
|
+
* @remarks - The stopped state means: previously on but currently off
|
6778
|
+
*
|
6779
|
+
* @private
|
6780
|
+
*/
|
6781
|
+
const computeVariant = (callRecordState, callTranscribeState) => {
|
6782
|
+
if (callRecordState === 'on' && callTranscribeState === 'on') {
|
6783
|
+
return 'RECORDING_AND_TRANSCRIPTION_STARTED';
|
6784
|
+
}
|
6785
|
+
else if (callRecordState === 'on' && callTranscribeState === 'off') {
|
6786
|
+
return 'RECORDING_STARTED';
|
6787
|
+
}
|
6788
|
+
else if (callRecordState === 'off' && callTranscribeState === 'on') {
|
6789
|
+
return 'TRANSCRIPTION_STARTED';
|
6790
|
+
}
|
6791
|
+
else if (callRecordState === 'on' && callTranscribeState === 'stopped') {
|
6792
|
+
return 'TRANSCRIPTION_STOPPED_STILL_RECORDING';
|
6793
|
+
}
|
6794
|
+
else if (callRecordState === 'stopped' && callTranscribeState === 'on') {
|
6795
|
+
return 'RECORDING_STOPPED_STILL_TRANSCRIBING';
|
6796
|
+
}
|
6797
|
+
else if (callRecordState === 'off' && callTranscribeState === 'stopped') {
|
6798
|
+
return 'TRANSCRIPTION_STOPPED';
|
6799
|
+
}
|
6800
|
+
else if (callRecordState === 'stopped' && callTranscribeState === 'off') {
|
6801
|
+
return 'RECORDING_STOPPED';
|
6802
|
+
}
|
6803
|
+
else if (callRecordState === 'stopped' && callTranscribeState === 'stopped') {
|
6804
|
+
return 'RECORDING_AND_TRANSCRIPTION_STOPPED';
|
6805
|
+
}
|
6806
|
+
else {
|
6807
|
+
return 'NO_STATE';
|
6808
|
+
}
|
6809
|
+
};
|
6810
|
+
|
6811
|
+
// Copyright (c) Microsoft Corporation.
|
6812
|
+
const BANNER_OVERWRITE_DELAY_MS = 3000;
|
6813
|
+
/**
|
6814
|
+
* A component that displays banners to notify the user when call recording and
|
6815
|
+
* transcription is enabled or disabled in a call.
|
6816
|
+
*
|
6817
|
+
* This component implements a state machine that tracks the changes to call
|
6818
|
+
* recording and transcription state and shows the corresponding message.
|
6819
|
+
*
|
6820
|
+
* @internal
|
6821
|
+
*/
|
6822
|
+
const _ComplianceBanner = (props) => {
|
6823
|
+
const cachedProps = React.useRef({
|
6824
|
+
latestBooleanState: {
|
6825
|
+
callTranscribeState: false,
|
6826
|
+
callRecordState: false
|
6827
|
+
},
|
6828
|
+
latestStringState: {
|
6829
|
+
callTranscribeState: 'off',
|
6830
|
+
callRecordState: 'off'
|
6831
|
+
},
|
6832
|
+
lastUpdated: Date.now()
|
6833
|
+
});
|
6834
|
+
// Only update cached props and variant if there is _some_ change in the latest props.
|
6835
|
+
// This ensures that state machine is only updated if there is an actual change in the props.
|
6836
|
+
const shouldUpdateCached = props.callRecordState !== cachedProps.current.latestBooleanState.callRecordState ||
|
6837
|
+
props.callTranscribeState !== cachedProps.current.latestBooleanState.callTranscribeState;
|
6838
|
+
// The following three operations must be performed in this exact order:
|
6839
|
+
// [1]: Update cached state to transition the state machine.
|
6840
|
+
if (shouldUpdateCached) {
|
6841
|
+
cachedProps.current = {
|
6842
|
+
latestBooleanState: props,
|
6843
|
+
latestStringState: {
|
6844
|
+
callRecordState: determineStates(cachedProps.current.latestStringState.callRecordState, props.callRecordState),
|
6845
|
+
callTranscribeState: determineStates(cachedProps.current.latestStringState.callTranscribeState, props.callTranscribeState)
|
6846
|
+
},
|
6847
|
+
lastUpdated: Date.now()
|
6848
|
+
};
|
6849
|
+
}
|
6850
|
+
// [2]: Compute the variant, using the transitioned state machine.
|
6851
|
+
const variant = computeVariant(cachedProps.current.latestStringState.callRecordState, cachedProps.current.latestStringState.callTranscribeState);
|
6852
|
+
// [3]: Transition the state machine again to deal with some end-states.
|
6853
|
+
if (shouldUpdateCached &&
|
6854
|
+
cachedProps.current.latestStringState.callRecordState === 'stopped' &&
|
6855
|
+
cachedProps.current.latestStringState.callTranscribeState === 'stopped') {
|
6856
|
+
// When both states are stopped, after displaying message "RECORDING_AND_TRANSCRIPTION_STOPPED", change both states to off (going back to the default state).
|
6857
|
+
cachedProps.current.latestStringState.callRecordState = 'off';
|
6858
|
+
cachedProps.current.latestStringState.callTranscribeState = 'off';
|
6859
|
+
}
|
6860
|
+
return (React__default['default'].createElement(DelayedUpdateBanner, { variant: {
|
6861
|
+
variant,
|
6862
|
+
lastUpdated: cachedProps.current.lastUpdated
|
6863
|
+
}, strings: props.strings, onDismiss: () => {
|
6864
|
+
if (cachedProps.current.latestStringState.callRecordState === 'stopped') {
|
6865
|
+
cachedProps.current.latestStringState.callRecordState = 'off';
|
6866
|
+
}
|
6867
|
+
if (cachedProps.current.latestStringState.callTranscribeState === 'stopped') {
|
6868
|
+
cachedProps.current.latestStringState.callTranscribeState = 'off';
|
6869
|
+
}
|
6870
|
+
} }));
|
6871
|
+
};
|
6872
|
+
function determineStates(previous, current) {
|
6873
|
+
// if current state is on, then return on
|
6874
|
+
if (current) {
|
6875
|
+
return 'on';
|
6876
|
+
}
|
6877
|
+
// if current state is off
|
6878
|
+
else {
|
6879
|
+
// if previous state is on and current state is off, return stopped (on -> off)
|
6880
|
+
if (previous === 'on') {
|
6881
|
+
return 'stopped';
|
6882
|
+
}
|
6883
|
+
// otherwise remain previous state unchanged
|
6884
|
+
else {
|
6885
|
+
return previous;
|
6886
|
+
}
|
6887
|
+
}
|
6888
|
+
}
|
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
|
+
|
6758
7003
|
// Copyright (c) Microsoft Corporation.
|
6759
7004
|
// Licensed under the MIT license.
|
6760
7005
|
/**
|
@@ -7164,8 +7409,10 @@ const createDefaultChatHandlers = memoizeOne__default['default']((chatClient, ch
|
|
7164
7409
|
};
|
7165
7410
|
yield chatThreadClient.sendMessage(sendMessageRequest, options);
|
7166
7411
|
}),
|
7167
|
-
onUpdateMessage: (messageId, content, metadata) => __awaiter$k(void 0, void 0, void 0, function* () {
|
7168
|
-
|
7412
|
+
onUpdateMessage: (messageId, content, metadata, options) => __awaiter$k(void 0, void 0, void 0, function* () {
|
7413
|
+
const updatedMetadata = metadata ? Object.assign({}, metadata) : {};
|
7414
|
+
updatedMetadata['fileSharingMetadata'] = JSON.stringify((options === null || options === void 0 ? void 0 : options.attachedFilesMetadata) || []);
|
7415
|
+
yield chatThreadClient.updateMessage(messageId, { content, metadata: updatedMetadata });
|
7169
7416
|
}),
|
7170
7417
|
onDeleteMessage: (messageId) => __awaiter$k(void 0, void 0, void 0, function* () {
|
7171
7418
|
yield chatThreadClient.deleteMessage(messageId);
|
@@ -11488,10 +11735,11 @@ class AzureCommunicationChatAdapter {
|
|
11488
11735
|
}));
|
11489
11736
|
});
|
11490
11737
|
}
|
11491
|
-
updateMessage(messageId, content, metadata) {
|
11738
|
+
updateMessage(messageId, content, metadata, options) {
|
11492
11739
|
return __awaiter$9(this, void 0, void 0, function* () {
|
11493
11740
|
return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$9(this, void 0, void 0, function* () {
|
11494
|
-
|
11741
|
+
/* @conditional-compile-remove(file-sharing) */
|
11742
|
+
return yield this.handlers.onUpdateMessage(messageId, content, metadata, options);
|
11495
11743
|
}));
|
11496
11744
|
});
|
11497
11745
|
}
|
@@ -12785,45 +13033,6 @@ const getCallCompositePage = (call, previousCall) => {
|
|
12785
13033
|
// No call state - show starting page (configuration)
|
12786
13034
|
return 'configuration';
|
12787
13035
|
};
|
12788
|
-
/**
|
12789
|
-
* Return different conditions based on the current and previous state of recording and transcribing
|
12790
|
-
*
|
12791
|
-
* @param callRecordState - The current call record state: on, off, stopped
|
12792
|
-
* @param callTranscribeState - The current call transcribe state: on, off, stopped
|
12793
|
-
*
|
12794
|
-
* @remarks - The stopped state means: previously on but currently off
|
12795
|
-
*
|
12796
|
-
* @private
|
12797
|
-
*/
|
12798
|
-
const computeVariant = (callRecordState, callTranscribeState) => {
|
12799
|
-
if (callRecordState === 'on' && callTranscribeState === 'on') {
|
12800
|
-
return 'RECORDING_AND_TRANSCRIPTION_STARTED';
|
12801
|
-
}
|
12802
|
-
else if (callRecordState === 'on' && callTranscribeState === 'off') {
|
12803
|
-
return 'RECORDING_STARTED';
|
12804
|
-
}
|
12805
|
-
else if (callRecordState === 'off' && callTranscribeState === 'on') {
|
12806
|
-
return 'TRANSCRIPTION_STARTED';
|
12807
|
-
}
|
12808
|
-
else if (callRecordState === 'on' && callTranscribeState === 'stopped') {
|
12809
|
-
return 'TRANSCRIPTION_STOPPED_STILL_RECORDING';
|
12810
|
-
}
|
12811
|
-
else if (callRecordState === 'stopped' && callTranscribeState === 'on') {
|
12812
|
-
return 'RECORDING_STOPPED_STILL_TRANSCRIBING';
|
12813
|
-
}
|
12814
|
-
else if (callRecordState === 'off' && callTranscribeState === 'stopped') {
|
12815
|
-
return 'TRANSCRIPTION_STOPPED';
|
12816
|
-
}
|
12817
|
-
else if (callRecordState === 'stopped' && callTranscribeState === 'off') {
|
12818
|
-
return 'RECORDING_STOPPED';
|
12819
|
-
}
|
12820
|
-
else if (callRecordState === 'stopped' && callTranscribeState === 'stopped') {
|
12821
|
-
return 'RECORDING_AND_TRANSCRIPTION_STOPPED';
|
12822
|
-
}
|
12823
|
-
else {
|
12824
|
-
return 'NO_STATE';
|
12825
|
-
}
|
12826
|
-
};
|
12827
13036
|
|
12828
13037
|
// Copyright (c) Microsoft Corporation.
|
12829
13038
|
// Licensed under the MIT license.
|
@@ -13232,128 +13441,6 @@ const onFetchCustomButtonPropsTrampoline = (options) => {
|
|
13232
13441
|
return response;
|
13233
13442
|
};
|
13234
13443
|
|
13235
|
-
// Copyright (c) Microsoft Corporation.
|
13236
|
-
/**
|
13237
|
-
* @private
|
13238
|
-
*/
|
13239
|
-
const ComplianceBanner = (props) => {
|
13240
|
-
function determineStates(previous, current) {
|
13241
|
-
// if current state is on, then return on
|
13242
|
-
if (current) {
|
13243
|
-
return 'on';
|
13244
|
-
}
|
13245
|
-
// if current state is off
|
13246
|
-
else {
|
13247
|
-
// if previous state is on and current state is off, return stopped (on -> off)
|
13248
|
-
if (previous === 'on') {
|
13249
|
-
return 'stopped';
|
13250
|
-
}
|
13251
|
-
// otherwise remain previous state unchanged
|
13252
|
-
else {
|
13253
|
-
return previous;
|
13254
|
-
}
|
13255
|
-
}
|
13256
|
-
}
|
13257
|
-
//set variant when incoming state is different from current state
|
13258
|
-
//when variant change, return message bar
|
13259
|
-
//when message bar is dismissed,set variant to default nostate and if current state is stopped, set to off
|
13260
|
-
const strings = useLocale().strings;
|
13261
|
-
const [variant, setVariant] = React.useState('NO_STATE');
|
13262
|
-
const cachedProps = React.useRef({
|
13263
|
-
latestBooleanState: {
|
13264
|
-
callTranscribeState: false,
|
13265
|
-
callRecordState: false
|
13266
|
-
},
|
13267
|
-
latestStringState: {
|
13268
|
-
callTranscribeState: 'off',
|
13269
|
-
callRecordState: 'off'
|
13270
|
-
}
|
13271
|
-
});
|
13272
|
-
// Only update cached props and variant if there is _some_ change in the latest props.
|
13273
|
-
// This ensures that state machine is only updated if there is an actual change in the props.
|
13274
|
-
if (props.callRecordState !== cachedProps.current.latestBooleanState.callRecordState ||
|
13275
|
-
props.callTranscribeState !== cachedProps.current.latestBooleanState.callTranscribeState) {
|
13276
|
-
cachedProps.current = {
|
13277
|
-
latestBooleanState: props,
|
13278
|
-
latestStringState: {
|
13279
|
-
callRecordState: determineStates(cachedProps.current.latestStringState.callRecordState, props.callRecordState),
|
13280
|
-
callTranscribeState: determineStates(cachedProps.current.latestStringState.callTranscribeState, props.callTranscribeState)
|
13281
|
-
}
|
13282
|
-
};
|
13283
|
-
setVariant(computeVariant(cachedProps.current.latestStringState.callRecordState, cachedProps.current.latestStringState.callTranscribeState));
|
13284
|
-
// when both states are stopped, after displaying message "RECORDING_AND_TRANSCRIPTION_STOPPED", change both states to off (going back to the default state)
|
13285
|
-
if (cachedProps.current.latestStringState.callRecordState === 'stopped' &&
|
13286
|
-
cachedProps.current.latestStringState.callTranscribeState === 'stopped') {
|
13287
|
-
cachedProps.current.latestStringState.callRecordState = 'off';
|
13288
|
-
cachedProps.current.latestStringState.callTranscribeState = 'off';
|
13289
|
-
}
|
13290
|
-
}
|
13291
|
-
return variant === 'NO_STATE' ? (React__default['default'].createElement(React__default['default'].Fragment, null)) : (React__default['default'].createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning, onDismiss: () => {
|
13292
|
-
// when closing the banner, change variant to nostate and change stopped state to off state.
|
13293
|
-
// Reason: on banner close, going back to the default state
|
13294
|
-
setVariant('NO_STATE');
|
13295
|
-
if (cachedProps.current.latestStringState.callRecordState === 'stopped') {
|
13296
|
-
cachedProps.current.latestStringState.callRecordState = 'off';
|
13297
|
-
}
|
13298
|
-
if (cachedProps.current.latestStringState.callTranscribeState === 'stopped') {
|
13299
|
-
cachedProps.current.latestStringState.callTranscribeState = 'off';
|
13300
|
-
}
|
13301
|
-
}, dismissButtonAriaLabel: strings.call.close },
|
13302
|
-
React__default['default'].createElement(BannerMessage, { variant: variant, strings: strings })));
|
13303
|
-
};
|
13304
|
-
function BannerMessage(props) {
|
13305
|
-
const { variant, strings } = props;
|
13306
|
-
switch (variant) {
|
13307
|
-
case 'TRANSCRIPTION_STOPPED_STILL_RECORDING':
|
13308
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13309
|
-
React__default['default'].createElement("b", null, strings.call.complianceBannerTranscriptionStopped),
|
13310
|
-
` ${strings.call.complianceBannerNowOnlyRecording}`,
|
13311
|
-
React__default['default'].createElement(PrivacyPolicy, { linkText: strings.call.privacyPolicy })));
|
13312
|
-
case 'RECORDING_STOPPED_STILL_TRANSCRIBING':
|
13313
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13314
|
-
React__default['default'].createElement("b", null, strings.call.complianceBannerRecordingStopped),
|
13315
|
-
` ${strings.call.complianceBannerNowOnlyTranscription}`,
|
13316
|
-
React__default['default'].createElement(PrivacyPolicy, { linkText: strings.call.privacyPolicy })));
|
13317
|
-
case 'RECORDING_AND_TRANSCRIPTION_STOPPED':
|
13318
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13319
|
-
React__default['default'].createElement("b", null, strings.call.complianceBannerRecordingAndTranscriptionSaved),
|
13320
|
-
` ${strings.call.complianceBannerRecordingAndTranscriptionStopped}`,
|
13321
|
-
React__default['default'].createElement(LearnMore, { linkText: strings.call.learnMore })));
|
13322
|
-
case 'RECORDING_AND_TRANSCRIPTION_STARTED':
|
13323
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13324
|
-
React__default['default'].createElement("b", null, strings.call.complianceBannerRecordingAndTranscriptionStarted),
|
13325
|
-
` ${strings.call.complianceBannerTranscriptionConsent}`,
|
13326
|
-
React__default['default'].createElement(PrivacyPolicy, { linkText: strings.call.privacyPolicy })));
|
13327
|
-
case 'TRANSCRIPTION_STARTED':
|
13328
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13329
|
-
React__default['default'].createElement("b", null, strings.call.complianceBannerTranscriptionStarted),
|
13330
|
-
` ${strings.call.complianceBannerTranscriptionConsent}`,
|
13331
|
-
React__default['default'].createElement(PrivacyPolicy, { linkText: strings.call.privacyPolicy })));
|
13332
|
-
case 'RECORDING_STOPPED':
|
13333
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13334
|
-
React__default['default'].createElement("b", null, strings.call.complianceBannerRecordingSaving),
|
13335
|
-
` ${strings.call.complianceBannerRecordingStopped}`,
|
13336
|
-
React__default['default'].createElement(LearnMore, { linkText: strings.call.learnMore })));
|
13337
|
-
case 'RECORDING_STARTED':
|
13338
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13339
|
-
React__default['default'].createElement("b", null, strings.call.complianceBannerRecordingStarted),
|
13340
|
-
` ${strings.call.complianceBannerTranscriptionConsent}`,
|
13341
|
-
React__default['default'].createElement(PrivacyPolicy, { linkText: strings.call.privacyPolicy })));
|
13342
|
-
case 'TRANSCRIPTION_STOPPED':
|
13343
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
13344
|
-
React__default['default'].createElement("b", null, strings.call.complianceBannerTranscriptionSaving),
|
13345
|
-
` ${strings.call.complianceBannerTranscriptionStopped}`,
|
13346
|
-
React__default['default'].createElement(LearnMore, { linkText: strings.call.learnMore })));
|
13347
|
-
}
|
13348
|
-
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
13349
|
-
}
|
13350
|
-
function PrivacyPolicy(props) {
|
13351
|
-
return (React__default['default'].createElement(react.Link, { href: "https://privacy.microsoft.com/privacystatement#mainnoticetoendusersmodule", target: "_blank", underline: true }, props.linkText));
|
13352
|
-
}
|
13353
|
-
function LearnMore(props) {
|
13354
|
-
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));
|
13355
|
-
}
|
13356
|
-
|
13357
13444
|
// Copyright (c) Microsoft Corporation.
|
13358
13445
|
// Licensed under the MIT license.
|
13359
13446
|
/** @private */
|
@@ -13489,7 +13576,7 @@ const CallArrangement = (props) => {
|
|
13489
13576
|
React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "stretch", className: containerClassName, "data-ui-id": props.dataUiId },
|
13490
13577
|
React__default['default'].createElement(react.Stack.Item, { styles: notificationsContainerStyles },
|
13491
13578
|
React__default['default'].createElement(react.Stack, { styles: bannerNotificationStyles },
|
13492
|
-
React__default['default'].createElement(
|
13579
|
+
React__default['default'].createElement(_ComplianceBanner, Object.assign({}, props.complianceBannerProps))),
|
13493
13580
|
props.errorBarProps !== false && (React__default['default'].createElement(react.Stack, { styles: bannerNotificationStyles },
|
13494
13581
|
React__default['default'].createElement(ErrorBar, Object.assign({}, props.errorBarProps)))),
|
13495
13582
|
!!props.mutedNotificationProps && React__default['default'].createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps))),
|
@@ -13817,9 +13904,10 @@ const CallPage = (props) => {
|
|
13817
13904
|
const errorBarProps = usePropsFor$1(ErrorBar);
|
13818
13905
|
const mutedNotificationProps = useSelector$1(mutedNotificationSelector);
|
13819
13906
|
const networkReconnectTileProps = useSelector$1(networkReconnectTileSelector);
|
13907
|
+
const strings = useLocale().strings.call;
|
13820
13908
|
// Reduce the controls shown when mobile view is enabled.
|
13821
13909
|
const callControlOptions = mobileView ? reduceCallControlsForMobile(options === null || options === void 0 ? void 0 : options.callControls) : options === null || options === void 0 ? void 0 : options.callControls;
|
13822
|
-
return (React__default['default'].createElement(CallArrangement, { complianceBannerProps: Object.assign({}, complianceBannerProps), errorBarProps: (options === null || options === void 0 ? void 0 : options.errorBar) !== false && Object.assign({}, errorBarProps), mutedNotificationProps: mutedNotificationProps, callControlProps: {
|
13910
|
+
return (React__default['default'].createElement(CallArrangement, { complianceBannerProps: Object.assign(Object.assign({}, complianceBannerProps), { strings }), errorBarProps: (options === null || options === void 0 ? void 0 : options.errorBar) !== false && Object.assign({}, errorBarProps), mutedNotificationProps: mutedNotificationProps, callControlProps: {
|
13823
13911
|
callInvitationURL: callInvitationURL,
|
13824
13912
|
onFetchParticipantMenuItems: onFetchParticipantMenuItems,
|
13825
13913
|
options: callControlOptions,
|
@@ -14373,7 +14461,7 @@ const LobbyPage = (props) => {
|
|
14373
14461
|
? reduceCallControlsForMobile((_a = props.options) === null || _a === void 0 ? void 0 : _a.callControls)
|
14374
14462
|
: (_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls;
|
14375
14463
|
callControlOptions = disableLobbyPageControls(callControlOptions);
|
14376
|
-
return (React__default['default'].createElement(CallArrangement, { complianceBannerProps: {}, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && Object.assign({}, errorBarProps), callControlProps: {
|
14464
|
+
return (React__default['default'].createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && Object.assign({}, errorBarProps), callControlProps: {
|
14377
14465
|
options: callControlOptions,
|
14378
14466
|
increaseFlyoutItemSize: props.mobileView
|
14379
14467
|
}, mobileView: props.mobileView, onRenderGalleryContent: () => React__default['default'].createElement(LobbyTile, Object.assign({}, lobbyProps, { overlayProps: overlayProps(strings, inLobby) })), dataUiId: 'lobby-page' }));
|