@azure/communication-react 1.5.1-alpha-202304180012 → 1.5.1-alpha-202304200013
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 +7 -3
- package/dist/dist-cjs/communication-react/index.js +104 -40
- 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/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +30 -2
- package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
- package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +5 -1
- package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +3 -2
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +11 -11
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/GridLayout.js +1 -1
- package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +3 -2
- package/dist/dist-esm/react-components/src/components/MessageThread.js +4 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +1 -1
- package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +8 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +3 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +6 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +11 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +4 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +27 -20
- 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 +3 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
- package/package.json +10 -11
@@ -2445,7 +2445,9 @@ export declare interface CallWithChatAdapterManagement {
|
|
2445
2445
|
updateFileUploadErrorMessage: (id: string, errorMessage: string) => void;
|
2446
2446
|
/** @beta */
|
2447
2447
|
updateFileUploadMetadata: (id: string, metadata: FileMetadata) => void;
|
2448
|
-
|
2448
|
+
downloadAttachments: (options: {
|
2449
|
+
attachmentUrls: string[];
|
2450
|
+
}) => Promise<AttachmentDownloadResult[]>;
|
2449
2451
|
/**
|
2450
2452
|
* Puts the Call in a Localhold.
|
2451
2453
|
*
|
@@ -3488,7 +3490,9 @@ export declare interface ChatAdapterThreadManagement {
|
|
3488
3490
|
*
|
3489
3491
|
*/
|
3490
3492
|
loadPreviousChatMessages(messagesToLoad: number): Promise<boolean>;
|
3491
|
-
|
3493
|
+
downloadAttachments: (options: {
|
3494
|
+
attachmentUrls: string[];
|
3495
|
+
}) => Promise<AttachmentDownloadResult[]>;
|
3492
3496
|
}
|
3493
3497
|
|
3494
3498
|
/**
|
@@ -6728,7 +6732,7 @@ export declare type MessageThreadProps = {
|
|
6728
6732
|
* @param attachment - FileMetadata object we want to render
|
6729
6733
|
* @beta
|
6730
6734
|
*/
|
6731
|
-
onFetchAttachments?: (attachment: FileMetadata) => Promise<AttachmentDownloadResult>;
|
6735
|
+
onFetchAttachments?: (attachment: FileMetadata) => Promise<AttachmentDownloadResult[]>;
|
6732
6736
|
/**
|
6733
6737
|
* Optional callback to edit a message.
|
6734
6738
|
*
|
@@ -162,7 +162,7 @@ const _toCommunicationIdentifier = (id) => {
|
|
162
162
|
// Copyright (c) Microsoft Corporation.
|
163
163
|
// Licensed under the MIT license.
|
164
164
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
165
|
-
var telemetryVersion = '1.5.1-alpha-
|
165
|
+
var telemetryVersion = '1.5.1-alpha-202304200013';
|
166
166
|
|
167
167
|
// Copyright (c) Microsoft Corporation.
|
168
168
|
/**
|
@@ -5094,7 +5094,7 @@ const GridLayout = (props) => {
|
|
5094
5094
|
return calculateGridProps(numberOfChildren, currentWidth, currentHeight);
|
5095
5095
|
}, [numberOfChildren, currentWidth, currentHeight]);
|
5096
5096
|
const cssGridStyles = React.useMemo(() => createGridStyles(numberOfChildren, gridProps), [numberOfChildren, gridProps]);
|
5097
|
-
return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(gridLayoutStyle, cssGridStyles, styles === null || styles === void 0 ? void 0 : styles.root) }, children));
|
5097
|
+
return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(gridLayoutStyle, cssGridStyles, styles === null || styles === void 0 ? void 0 : styles.root), "data-ui-id": "grid-layout" }, children));
|
5098
5098
|
};
|
5099
5099
|
/**
|
5100
5100
|
* The cell aspect ratio we aim for in a grid
|
@@ -7146,6 +7146,15 @@ const MessageContentWithLiveAria = (props) => {
|
|
7146
7146
|
};
|
7147
7147
|
const MessageContentAsRichTextHTML = (props) => {
|
7148
7148
|
const liveAuthor = _formatString(props.strings.liveAuthorIntro, { author: `${props.message.senderDisplayName}` });
|
7149
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
7150
|
+
React.useEffect(() => {
|
7151
|
+
var _a;
|
7152
|
+
(_a = props.message.attachedFilesMetadata) === null || _a === void 0 ? void 0 : _a.map((fileMetadata) => {
|
7153
|
+
if (props.onFetchAttachment && props.attachmentsMap && props.attachmentsMap[fileMetadata.id] === undefined) {
|
7154
|
+
props.onFetchAttachment(fileMetadata);
|
7155
|
+
}
|
7156
|
+
});
|
7157
|
+
}, [props]);
|
7149
7158
|
return (React__default['default'].createElement(MessageContentWithLiveAria, { message: props.message, liveMessage: `${props.message.mine ? '' : liveAuthor} ${extractContent(props.message.content || '')}`, ariaLabel: messageContentAriaText(props), content: processHtmlToReact(props) }));
|
7150
7159
|
};
|
7151
7160
|
const MessageContentAsText = (props) => {
|
@@ -7210,20 +7219,9 @@ const processHtmlToReact = (props) => {
|
|
7210
7219
|
((_a = props.message.attachedFilesMetadata) === null || _a === void 0 ? void 0 : _a.find((f) => f.id === node.attribs.id)));
|
7211
7220
|
},
|
7212
7221
|
processNode: (node, children, index) => {
|
7213
|
-
var _a;
|
7214
7222
|
// logic to check id in map/list
|
7215
|
-
const fileMetadata = (_a = props.message.attachedFilesMetadata) === null || _a === void 0 ? void 0 : _a.find((f) => f.id === node.attribs.id);
|
7216
|
-
// if in cache, early return
|
7217
7223
|
if (props.attachmentsMap && node.attribs.id in props.attachmentsMap) {
|
7218
7224
|
node.attribs = Object.assign(Object.assign({}, node.attribs), { src: props.attachmentsMap[node.attribs.id] });
|
7219
|
-
return processNodeDefinitions.processDefaultNode(node, children, index);
|
7220
|
-
}
|
7221
|
-
// not yet in cache
|
7222
|
-
if (fileMetadata && props.onFetchAttachment && props.attachmentsMap) {
|
7223
|
-
props.onFetchAttachment(fileMetadata);
|
7224
|
-
if (node.attribs.id in props.attachmentsMap) {
|
7225
|
-
node.attribs = Object.assign(Object.assign({}, node.attribs), { src: props.attachmentsMap[node.attribs.id] });
|
7226
|
-
}
|
7227
7225
|
}
|
7228
7226
|
return processNodeDefinitions.processDefaultNode(node, children, index);
|
7229
7227
|
}
|
@@ -7839,8 +7837,11 @@ const MessageThread = (props) => {
|
|
7839
7837
|
if (!onFetchAttachments || attachment.id in inlineAttachments) {
|
7840
7838
|
return;
|
7841
7839
|
}
|
7840
|
+
setInlineAttachments((prev) => (Object.assign(Object.assign({}, prev), { [attachment.id]: '' })));
|
7842
7841
|
const attachmentDownloadResult = yield onFetchAttachments(attachment);
|
7843
|
-
|
7842
|
+
if (attachmentDownloadResult[0]) {
|
7843
|
+
setInlineAttachments((prev) => (Object.assign(Object.assign({}, prev), { [attachment.id]: attachmentDownloadResult[0].blobUrl })));
|
7844
|
+
}
|
7844
7845
|
}), [inlineAttachments, onFetchAttachments]);
|
7845
7846
|
const isAllChatMessagesLoadedRef = React.useRef(false);
|
7846
7847
|
// isAllChatMessagesLoadedRef needs to be updated every time when a new adapter is set in order to display correct data
|
@@ -11049,7 +11050,7 @@ const ModalBase = React__namespace.forwardRef((propsWithoutDefaults, ref) => {
|
|
11049
11050
|
internalState.events.dispose();
|
11050
11051
|
});
|
11051
11052
|
useComponentRef(props, focusTrapZone);
|
11052
|
-
const modalContent = (React__namespace.createElement(react.FocusTrapZone, { disabled: true, id: focusTrapZoneId, ref: focusTrapZoneElm, componentRef: focusTrapZone, className: classNames.main, elementToFocusOnDismiss: elementToFocusOnDismiss, isClickableOutsideFocusTrap: isModeless || isClickableOutsideFocusTrap || !isBlocking, ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: forceFocusInsideTrap && !isModeless, firstFocusableSelector: firstFocusableSelector, focusPreviouslyFocusedInnerElement: true, onBlur: internalState.isInKeyboardMoveMode ? handleExitKeyboardMoveMode : undefined },
|
11053
|
+
const modalContent = (React__namespace.createElement(react.FocusTrapZone, { disabled: true, id: focusTrapZoneId, ref: focusTrapZoneElm, componentRef: focusTrapZone, className: classNames.main, elementToFocusOnDismiss: elementToFocusOnDismiss, isClickableOutsideFocusTrap: isModeless || isClickableOutsideFocusTrap || !isBlocking, ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: forceFocusInsideTrap && !isModeless, firstFocusableSelector: firstFocusableSelector, focusPreviouslyFocusedInnerElement: true, onBlur: internalState.isInKeyboardMoveMode ? handleExitKeyboardMoveMode : undefined, "data-ui-id": props['data-ui-id'] },
|
11053
11054
|
dragOptions && internalState.isInKeyboardMoveMode && (React__namespace.createElement("div", { className: classNames.keyboardMoveIconContainer }, dragOptions.keyboardMoveIconProps ? (React__namespace.createElement(react.Icon, Object.assign({}, dragOptions.keyboardMoveIconProps))) : (React__namespace.createElement(react.Icon, { iconName: "move", className: classNames.keyboardMoveIcon })))),
|
11054
11055
|
React__namespace.createElement("div", { ref: allowScrollOnModal, className: classNames.scrollableContent, "data-is-scrollable": true },
|
11055
11056
|
dragOptions && isModalMenuOpen && (React__namespace.createElement(dragOptions.menu, { items: [
|
@@ -11485,7 +11486,7 @@ const FloatingLocalVideo = (props) => {
|
|
11485
11486
|
: undefined, [parentHeight, parentWidth, localVideoSizeRem.width, localVideoSizeRem.height]);
|
11486
11487
|
const modalStyles = React.useMemo(() => floatingLocalVideoModalStyle(theme, localVideoSizeRem), [theme, localVideoSizeRem]);
|
11487
11488
|
const layerProps = React.useMemo(() => ({ hostId: layerHostId }), [layerHostId]);
|
11488
|
-
return (React__default['default'].createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS$1, styles: modalStyles, layerProps: layerProps, maxDragPosition: modalMaxDragPosition, minDragPosition: modalMinDragPosition }, localVideoComponent));
|
11489
|
+
return (React__default['default'].createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS$1, styles: modalStyles, layerProps: layerProps, maxDragPosition: modalMaxDragPosition, minDragPosition: modalMinDragPosition, "data-ui-id": "floating-local-video-host" }, localVideoComponent));
|
11489
11490
|
};
|
11490
11491
|
|
11491
11492
|
// Copyright (c) Microsoft Corporation.
|
@@ -15194,6 +15195,34 @@ const extractAttachedFilesMetadata = (metadata) => {
|
|
15194
15195
|
return [];
|
15195
15196
|
}
|
15196
15197
|
};
|
15198
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
15199
|
+
const extractInlineImageFilesMetadata = (attachments) => {
|
15200
|
+
return attachments.map((attachment) => {
|
15201
|
+
var _a, _b;
|
15202
|
+
return ({
|
15203
|
+
attachmentType: attachment.attachmentType,
|
15204
|
+
id: attachment.id,
|
15205
|
+
name: (_a = attachment.name) !== null && _a !== void 0 ? _a : '',
|
15206
|
+
extension: (_b = attachment.contentType) !== null && _b !== void 0 ? _b : '',
|
15207
|
+
url: attachment.url,
|
15208
|
+
previewUrl: attachment.previewUrl
|
15209
|
+
});
|
15210
|
+
});
|
15211
|
+
};
|
15212
|
+
/* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images) */
|
15213
|
+
const extractFilesMetadata = (message) => {
|
15214
|
+
var _a, _b;
|
15215
|
+
let fileMetadata = [];
|
15216
|
+
/* @conditional-compile-remove(file-sharing) */
|
15217
|
+
if (message.metadata) {
|
15218
|
+
fileMetadata = fileMetadata.concat(extractAttachedFilesMetadata(message.metadata));
|
15219
|
+
}
|
15220
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
15221
|
+
if ((_a = message.content) === null || _a === void 0 ? void 0 : _a.attachments) {
|
15222
|
+
fileMetadata = fileMetadata.concat(extractInlineImageFilesMetadata((_b = message.content) === null || _b === void 0 ? void 0 : _b.attachments));
|
15223
|
+
}
|
15224
|
+
return fileMetadata;
|
15225
|
+
};
|
15197
15226
|
/* @conditional-compile-remove(data-loss-prevention) */
|
15198
15227
|
const convertToUiBlockedMessage = (message, userId, isSeen, isLargeGroup) => {
|
15199
15228
|
var _a;
|
@@ -15228,8 +15257,8 @@ const convertToUiChatMessage = (message, userId, isSeen, isLargeGroup) => {
|
|
15228
15257
|
deletedOn: message.deletedOn,
|
15229
15258
|
mine: messageSenderId === userId,
|
15230
15259
|
metadata: message.metadata,
|
15231
|
-
/* @conditional-compile-remove(file-sharing) */
|
15232
|
-
attachedFilesMetadata:
|
15260
|
+
/* @conditional-compile-remove(file-sharing) @conditional-compile-remove(teams-inline-images) */
|
15261
|
+
attachedFilesMetadata: extractFilesMetadata(message)
|
15233
15262
|
};
|
15234
15263
|
};
|
15235
15264
|
const convertToUiSystemMessage = (message) => {
|
@@ -16017,7 +16046,11 @@ class EventSubscriber {
|
|
16017
16046
|
return convertChatMessage({
|
16018
16047
|
id: event.id,
|
16019
16048
|
version: event.version,
|
16020
|
-
content: {
|
16049
|
+
content: {
|
16050
|
+
message: event.message,
|
16051
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
16052
|
+
attachments: event.attachments
|
16053
|
+
},
|
16021
16054
|
type: this.convertEventType(event.type),
|
16022
16055
|
sender: event.sender,
|
16023
16056
|
senderDisplayName: event.senderDisplayName,
|
@@ -17591,7 +17624,7 @@ class AzureCommunicationChatAdapter {
|
|
17591
17624
|
/* @conditional-compile-remove(file-sharing) */
|
17592
17625
|
this.updateFileUploadMetadata = this.updateFileUploadMetadata.bind(this);
|
17593
17626
|
/* @conditional-compile-remove(teams-inline-images) */
|
17594
|
-
this.
|
17627
|
+
this.downloadAttachments = this.downloadAttachments.bind(this);
|
17595
17628
|
}
|
17596
17629
|
dispose() {
|
17597
17630
|
this.unsubscribeAllEvents();
|
@@ -17729,7 +17762,7 @@ class AzureCommunicationChatAdapter {
|
|
17729
17762
|
this.fileUploadAdapter.updateFileUploadMetadata(id, metadata);
|
17730
17763
|
}
|
17731
17764
|
/* @conditional-compile-remove(teams-inline-images) */
|
17732
|
-
|
17765
|
+
downloadAttachments(options) {
|
17733
17766
|
return __awaiter$i(this, void 0, void 0, function* () {
|
17734
17767
|
return this.asyncTeeErrorToEventEmitter(() => __awaiter$i(this, void 0, void 0, function* () {
|
17735
17768
|
if (this.credential === undefined) {
|
@@ -17745,27 +17778,34 @@ class AzureCommunicationChatAdapter {
|
|
17745
17778
|
e['innerError'] = new Error('AccessToken is null');
|
17746
17779
|
throw e;
|
17747
17780
|
}
|
17748
|
-
|
17749
|
-
return __awaiter$i(this, void 0, void 0, function* () {
|
17750
|
-
const headers = new Headers();
|
17751
|
-
headers.append('Authorization', `Bearer ${token}`);
|
17752
|
-
try {
|
17753
|
-
return yield fetch(url, { headers });
|
17754
|
-
}
|
17755
|
-
catch (err) {
|
17756
|
-
const e = new Error();
|
17757
|
-
e['target'] = 'ChatThreadClient.getMessage';
|
17758
|
-
e['innerError'] = err;
|
17759
|
-
throw e;
|
17760
|
-
}
|
17761
|
-
});
|
17762
|
-
}
|
17763
|
-
const response = yield fetchWithAuthentication(attachmentUrl, accessToken.token);
|
17764
|
-
const blob = yield response.blob();
|
17765
|
-
return { blobUrl: URL.createObjectURL(blob) };
|
17781
|
+
return this.downloadAuthenticatedFile(accessToken.token, options);
|
17766
17782
|
}));
|
17767
17783
|
});
|
17768
17784
|
}
|
17785
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
17786
|
+
downloadAuthenticatedFile(accessToken, options) {
|
17787
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
17788
|
+
function fetchWithAuthentication(url, token) {
|
17789
|
+
return __awaiter$i(this, void 0, void 0, function* () {
|
17790
|
+
const headers = new Headers();
|
17791
|
+
headers.append('Authorization', `Bearer ${token}`);
|
17792
|
+
try {
|
17793
|
+
return yield fetch(url, { headers });
|
17794
|
+
}
|
17795
|
+
catch (err) {
|
17796
|
+
const e = new Error();
|
17797
|
+
e['target'] = 'ChatThreadClient.getMessage';
|
17798
|
+
e['innerError'] = err;
|
17799
|
+
throw e;
|
17800
|
+
}
|
17801
|
+
});
|
17802
|
+
}
|
17803
|
+
const attachmentUrl = options.attachmentUrls[0];
|
17804
|
+
const response = yield fetchWithAuthentication(attachmentUrl, accessToken);
|
17805
|
+
const blob = yield response.blob();
|
17806
|
+
return [{ blobUrl: URL.createObjectURL(blob) }];
|
17807
|
+
});
|
17808
|
+
}
|
17769
17809
|
messageReceivedListener(event) {
|
17770
17810
|
const message = convertEventToChatMessage(event);
|
17771
17811
|
this.emitter.emit('messageReceived', { message });
|
@@ -18633,6 +18673,14 @@ const ChatScreen = (props) => {
|
|
18633
18673
|
const onRenderFileDownloads = React.useCallback((userId, message) => (React__default['default'].createElement(_FileDownloadCards, { userId: userId, fileMetadata: message.attachedFilesMetadata || [], downloadHandler: fileSharing === null || fileSharing === void 0 ? void 0 : fileSharing.downloadHandler, onDownloadErrorMessage: (errorMessage) => {
|
18634
18674
|
setDownloadErrorMessage(errorMessage);
|
18635
18675
|
} })), [fileSharing === null || fileSharing === void 0 ? void 0 : fileSharing.downloadHandler]);
|
18676
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
18677
|
+
const onRenderInlineAttachment = React.useCallback((attachment) => __awaiter$g(void 0, void 0, void 0, function* () {
|
18678
|
+
if (attachment.previewUrl) {
|
18679
|
+
const blob = yield adapter.downloadAttachments({ attachmentUrls: [attachment.previewUrl] });
|
18680
|
+
return blob;
|
18681
|
+
}
|
18682
|
+
return [{ blobUrl: '' }];
|
18683
|
+
}), [adapter]);
|
18636
18684
|
const AttachFileButton = React.useCallback(() => {
|
18637
18685
|
if (!(fileSharing === null || fileSharing === void 0 ? void 0 : fileSharing.uploadHandler)) {
|
18638
18686
|
return null;
|
@@ -18650,7 +18698,9 @@ const ChatScreen = (props) => {
|
|
18650
18698
|
}, []), fileDownloadErrorMessage: downloadErrorMessage || '' }),
|
18651
18699
|
React__default['default'].createElement(MessageThread, Object.assign({}, messageThreadProps, { onRenderAvatar: onRenderAvatarCallback, onRenderMessage: onRenderMessage,
|
18652
18700
|
/* @conditional-compile-remove(file-sharing) */
|
18653
|
-
onRenderFileDownloads: onRenderFileDownloads,
|
18701
|
+
onRenderFileDownloads: onRenderFileDownloads,
|
18702
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
18703
|
+
onFetchAttachments: onRenderInlineAttachment, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles })),
|
18654
18704
|
React__default['default'].createElement(react.Stack, { className: react.mergeStyles(sendboxContainerStyles) },
|
18655
18705
|
React__default['default'].createElement("div", { className: react.mergeStyles(typingIndicatorContainerStyles) }, onRenderTypingIndicator ? (onRenderTypingIndicator(typingIndicatorProps.typingUsers)) : (React__default['default'].createElement(TypingIndicator, Object.assign({}, typingIndicatorProps, { styles: typingIndicatorStyles })))),
|
18656
18706
|
React__default['default'].createElement(react.Stack, { horizontal: formFactor === 'mobile' },
|
@@ -25411,6 +25461,12 @@ class CallWithChatBackedChatAdapter {
|
|
25411
25461
|
};
|
25412
25462
|
this.callWithChatAdapter = callWithChatAdapter;
|
25413
25463
|
}
|
25464
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
25465
|
+
downloadAttachments(options) {
|
25466
|
+
return __awaiter$2(this, void 0, void 0, function* () {
|
25467
|
+
return yield this.callWithChatAdapter.downloadAttachments(options);
|
25468
|
+
});
|
25469
|
+
}
|
25414
25470
|
}
|
25415
25471
|
function chatAdapterStateFromCallWithChatAdapterState(callWithChatAdapterState) {
|
25416
25472
|
if (!callWithChatAdapterState.chat) {
|
@@ -25951,6 +26007,8 @@ class AzureCommunicationCallWithChatAdapter {
|
|
25951
26007
|
this.updateFileUploadErrorMessage = this.updateFileUploadErrorMessage.bind(this);
|
25952
26008
|
/* @conditional-compile-remove(file-sharing) */
|
25953
26009
|
this.updateFileUploadMetadata = this.updateFileUploadMetadata.bind(this);
|
26010
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
26011
|
+
this.downloadAttachments = this.downloadAttachments.bind(this);
|
25954
26012
|
/* @conditional-compile-remove(PSTN-calls) */
|
25955
26013
|
this.holdCall.bind(this);
|
25956
26014
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -26158,6 +26216,12 @@ class AzureCommunicationCallWithChatAdapter {
|
|
26158
26216
|
return yield this.chatAdapter.deleteMessage(messageId);
|
26159
26217
|
});
|
26160
26218
|
}
|
26219
|
+
/* @conditional-compile-remove(teams-inline-images) */
|
26220
|
+
downloadAttachments(options) {
|
26221
|
+
return __awaiter(this, void 0, void 0, function* () {
|
26222
|
+
return yield this.chatAdapter.downloadAttachments(options);
|
26223
|
+
});
|
26224
|
+
}
|
26161
26225
|
/* @conditional-compile-remove(PSTN-calls) */
|
26162
26226
|
holdCall() {
|
26163
26227
|
return __awaiter(this, void 0, void 0, function* () {
|