@azure/communication-react 1.18.0-alpha-202407191547 → 1.18.0-alpha-202407200014
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 +71 -18
 - package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-ChK7xe6Z.js → ChatMessageComponentAsRichTextEditBox-D4ctXnw1.js} +27 -6
 - package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-D4ctXnw1.js.map +1 -0
 - package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BLCHZv_g.js → RichTextSendBoxWrapper-F6eqVXer.js} +2 -2
 - package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BLCHZv_g.js.map → RichTextSendBoxWrapper-F6eqVXer.js.map} +1 -1
 - package/dist/dist-cjs/communication-react/{index-BWVQuckY.js → index-BJO_NOTU.js} +589 -302
 - package/dist/dist-cjs/communication-react/index-BJO_NOTU.js.map +1 -0
 - package/dist/dist-cjs/communication-react/index.js +1 -1
 - package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
 - package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +3 -3
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.d.ts +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +15 -7
 - package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts +2 -8
 - package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +14 -2
 - package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.d.ts +17 -0
 - package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js +49 -0
 - package/dist/dist-esm/calling-stateful-client/src/TeamsIncomingCallDeclarative.js.map +1 -0
 - package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +9 -1
 - package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js +16 -0
 - package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
 - package/dist/dist-esm/communication-react/src/index.d.ts +1 -1
 - package/dist/dist-esm/communication-react/src/index.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +8 -2
 - package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +6 -4
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +2 -12
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +2 -2
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +25 -4
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +8 -6
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +12 -3
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +27 -3
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +9 -15
 - package/dist/dist-esm/react-components/src/components/MessageThread.js +10 -1
 - package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +28 -22
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +49 -0
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +16 -4
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js +20 -2
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/RichTextToolbar.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/index.d.ts +2 -1
 - package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +3 -0
 - package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.d.ts +1 -5
 - package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js +0 -21
 - package/dist/dist-esm/react-components/src/components/utils/RichTextEditorUtils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +9 -1
 - package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +10 -2
 - package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +8 -2
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +66 -31
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.d.ts +49 -0
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js +48 -0
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.js.map +1 -0
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.d.ts +33 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +198 -6
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.d.ts +7 -7
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUpload.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +2 -5
 - package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +4 -0
 - package/dist/dist-esm/react-composites/src/composites/common/constants.js +4 -0
 - package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
 - package/package.json +9 -9
 - package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-ChK7xe6Z.js.map +0 -1
 - package/dist/dist-cjs/communication-react/index-BWVQuckY.js.map +0 -1
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.d.ts +0 -12
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.js +0 -115
 - package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/useImageUpload.js.map +0 -1
 
| 
         @@ -42,11 +42,13 @@ import { SendBoxPicker } from '../common/SendBoxPicker'; 
     | 
|
| 
       42 
42 
     | 
    
         
             
            /* @conditional-compile-remove(rich-text-editor-composite-support) */
         
     | 
| 
       43 
43 
     | 
    
         
             
            import { loadRichTextSendBox } from '../common/SendBoxPicker';
         
     | 
| 
       44 
44 
     | 
    
         
             
            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       45 
     | 
    
         
            -
            import {  
     | 
| 
       46 
     | 
    
         
            -
            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       47 
     | 
    
         
            -
            import { removeImageTags } from './ImageUpload/ImageUploadUtils';
         
     | 
| 
      
 45 
     | 
    
         
            +
            import { getEditBoxMessagesImageUploadsInProgress, getSendBoxImageUploadsInProgress, onCancelInlineImageUploadHandlerForEditBox, onCancelInlineImageUploadHandlerForSendBox, onUploadInlineImageForEditBox, onUploadInlineImageForSendBox, removeImageTags } from './ImageUpload/ImageUploadUtils';
         
     | 
| 
       48 
46 
     | 
    
         
             
            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       49 
47 
     | 
    
         
             
            import { isMicrosoftTeamsUserIdentifier } from '@azure/communication-common';
         
     | 
| 
      
 48 
     | 
    
         
            +
            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 49 
     | 
    
         
            +
            import { SEND_BOX_UPLOADS_KEY_VALUE } from '../common/constants';
         
     | 
| 
      
 50 
     | 
    
         
            +
            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 51 
     | 
    
         
            +
            import { ImageUploadReducer } from './ImageUpload/ImageUploadReducer';
         
     | 
| 
       50 
52 
     | 
    
         
             
            /**
         
     | 
| 
       51 
53 
     | 
    
         
             
             * @private
         
     | 
| 
       52 
54 
     | 
    
         
             
             */
         
     | 
| 
         @@ -65,12 +67,14 @@ export const ChatScreen = (props) => { 
     | 
|
| 
       65 
67 
     | 
    
         
             
                const adapter = useAdapter();
         
     | 
| 
       66 
68 
     | 
    
         
             
                const theme = useTheme();
         
     | 
| 
       67 
69 
     | 
    
         
             
                /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       68 
     | 
    
         
            -
                const [inlineImageUploads, handleInlineImageUploadAction, onUploadInlineImage, onCancelInlineImageUploadHandler] = useImageUpload();
         
     | 
| 
       69 
     | 
    
         
            -
                /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       70 
70 
     | 
    
         
             
                const [textOnlyChat, setTextOnlyChat] = useState(false);
         
     | 
| 
       71 
71 
     | 
    
         
             
                /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       72 
72 
     | 
    
         
             
                const [isACSChat, setIsACSChat] = useState(false);
         
     | 
| 
       73 
73 
     | 
    
         
             
                /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 74 
     | 
    
         
            +
                const [editBoxInlineImageUploads, handleEditBoxInlineImageUploadAction] = useReducer(ImageUploadReducer, undefined);
         
     | 
| 
      
 75 
     | 
    
         
            +
                /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 76 
     | 
    
         
            +
                const [sendBoxInlineImageUploads, handleSendBoxInlineImageUploadAction] = useReducer(ImageUploadReducer, undefined);
         
     | 
| 
      
 77 
     | 
    
         
            +
                /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       74 
78 
     | 
    
         
             
                useEffect(() => {
         
     | 
| 
       75 
79 
     | 
    
         
             
                    const updateChatState = (newState) => {
         
     | 
| 
       76 
80 
     | 
    
         
             
                        var _a, _b, _c, _d;
         
     | 
| 
         @@ -324,10 +328,6 @@ export const ChatScreen = (props) => { 
     | 
|
| 
       324 
328 
     | 
    
         
             
                const attachments = useMemo(() => {
         
     | 
| 
       325 
329 
     | 
    
         
             
                    return uploads === null || uploads === void 0 ? void 0 : uploads.map((v) => v.metadata);
         
     | 
| 
       326 
330 
     | 
    
         
             
                }, [uploads]);
         
     | 
| 
       327 
     | 
    
         
            -
                /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       328 
     | 
    
         
            -
                const imageUploadsInProgress = useMemo(() => {
         
     | 
| 
       329 
     | 
    
         
            -
                    return inlineImageUploads === null || inlineImageUploads === void 0 ? void 0 : inlineImageUploads.map((v) => v.metadata);
         
     | 
| 
       330 
     | 
    
         
            -
                }, [inlineImageUploads]);
         
     | 
| 
       331 
331 
     | 
    
         
             
                const onSendMessageHandler = useCallback(function (content, 
         
     | 
| 
       332 
332 
     | 
    
         
             
                /* @conditional-compile-remove(file-sharing-acs) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */ options) {
         
     | 
| 
       333 
333 
     | 
    
         
             
                    return __awaiter(this, void 0, void 0, function* () {
         
     | 
| 
         @@ -337,7 +337,10 @@ export const ChatScreen = (props) => { 
     | 
|
| 
       337 
337 
     | 
    
         
             
                        /* @conditional-compile-remove(file-sharing-acs) */
         
     | 
| 
       338 
338 
     | 
    
         
             
                        handleUploadAction({ type: AttachmentUploadActionType.Clear });
         
     | 
| 
       339 
339 
     | 
    
         
             
                        /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       340 
     | 
    
         
            -
                         
     | 
| 
      
 340 
     | 
    
         
            +
                        handleSendBoxInlineImageUploadAction({
         
     | 
| 
      
 341 
     | 
    
         
            +
                            type: AttachmentUploadActionType.Clear,
         
     | 
| 
      
 342 
     | 
    
         
            +
                            messageId: SEND_BOX_UPLOADS_KEY_VALUE
         
     | 
| 
      
 343 
     | 
    
         
            +
                        });
         
     | 
| 
       341 
344 
     | 
    
         
             
                        /* @conditional-compile-remove(file-sharing-acs) */
         
     | 
| 
       342 
345 
     | 
    
         
             
                        yield adapter.sendMessage(content, {
         
     | 
| 
       343 
346 
     | 
    
         
             
                            attachments: attachments,
         
     | 
| 
         @@ -351,16 +354,19 @@ export const ChatScreen = (props) => { 
     | 
|
| 
       351 
354 
     | 
    
         
             
                            type: options === null || options === void 0 ? void 0 : options.type
         
     | 
| 
       352 
355 
     | 
    
         
             
                        });
         
     | 
| 
       353 
356 
     | 
    
         
             
                    });
         
     | 
| 
       354 
     | 
    
         
            -
                }, [adapter, /* @conditional-compile-remove(rich-text-editor-image-upload) */  
     | 
| 
      
 357 
     | 
    
         
            +
                }, [adapter, /* @conditional-compile-remove(rich-text-editor-image-upload) */ handleSendBoxInlineImageUploadAction]);
         
     | 
| 
       355 
358 
     | 
    
         
             
                const onUpdateMessageHandler = useCallback((messageId, content) => __awaiter(void 0, void 0, void 0, function* () {
         
     | 
| 
       356 
359 
     | 
    
         
             
                    yield messageThreadProps.onUpdateMessage(messageId, content);
         
     | 
| 
       357 
360 
     | 
    
         
             
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       358 
     | 
    
         
            -
                     
     | 
| 
       359 
     | 
    
         
            -
                }), [ 
     | 
| 
      
 361 
     | 
    
         
            +
                    handleEditBoxInlineImageUploadAction({ type: AttachmentUploadActionType.Clear, messageId });
         
     | 
| 
      
 362 
     | 
    
         
            +
                }), [
         
     | 
| 
      
 363 
     | 
    
         
            +
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */ handleEditBoxInlineImageUploadAction,
         
     | 
| 
      
 364 
     | 
    
         
            +
                    messageThreadProps
         
     | 
| 
      
 365 
     | 
    
         
            +
                ]);
         
     | 
| 
       360 
366 
     | 
    
         
             
                /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       361 
     | 
    
         
            -
                const onCancelEditMessageHandler = useCallback(() => {
         
     | 
| 
       362 
     | 
    
         
            -
                     
     | 
| 
       363 
     | 
    
         
            -
                }, [ 
     | 
| 
      
 367 
     | 
    
         
            +
                const onCancelEditMessageHandler = useCallback((messageId) => {
         
     | 
| 
      
 368 
     | 
    
         
            +
                    handleEditBoxInlineImageUploadAction({ type: AttachmentUploadActionType.Clear, messageId });
         
     | 
| 
      
 369 
     | 
    
         
            +
                }, [handleEditBoxInlineImageUploadAction]);
         
     | 
| 
       364 
370 
     | 
    
         
             
                /* @conditional-compile-remove(file-sharing-acs) */
         
     | 
| 
       365 
371 
     | 
    
         
             
                const onCancelUploadHandler = useCallback((id) => {
         
     | 
| 
       366 
372 
     | 
    
         
             
                    var _a, _b;
         
     | 
| 
         @@ -372,28 +378,57 @@ export const ChatScreen = (props) => { 
     | 
|
| 
       372 
378 
     | 
    
         
             
                    const onPasteCallback = isACSChat || textOnlyChat ? removeImageTags : undefined;
         
     | 
| 
       373 
379 
     | 
    
         
             
                    return (options === null || options === void 0 ? void 0 : options.richTextEditor)
         
     | 
| 
       374 
380 
     | 
    
         
             
                        ? {
         
     | 
| 
       375 
     | 
    
         
            -
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste: onPasteCallback 
     | 
| 
       376 
     | 
    
         
            -
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       377 
     | 
    
         
            -
                            onUploadInlineImage: onUploadInlineImage,
         
     | 
| 
       378 
     | 
    
         
            -
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       379 
     | 
    
         
            -
                            imageUploadsInProgress: imageUploadsInProgress,
         
     | 
| 
       380 
     | 
    
         
            -
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       381 
     | 
    
         
            -
                            onCancelInlineImageUpload: onCancelInlineImageUploadHandler
         
     | 
| 
      
 381 
     | 
    
         
            +
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste: onPasteCallback
         
     | 
| 
       382 
382 
     | 
    
         
             
                        }
         
     | 
| 
       383 
383 
     | 
    
         
             
                        : undefined;
         
     | 
| 
       384 
384 
     | 
    
         
             
                }, [
         
     | 
| 
       385 
     | 
    
         
            -
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       386 
     | 
    
         
            -
                    imageUploadsInProgress,
         
     | 
| 
       387 
     | 
    
         
            -
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       388 
     | 
    
         
            -
                    onCancelInlineImageUploadHandler,
         
     | 
| 
       389 
     | 
    
         
            -
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       390 
     | 
    
         
            -
                    onUploadInlineImage,
         
     | 
| 
       391 
385 
     | 
    
         
             
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       392 
386 
     | 
    
         
             
                    isACSChat,
         
     | 
| 
       393 
387 
     | 
    
         
             
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
       394 
388 
     | 
    
         
             
                    textOnlyChat,
         
     | 
| 
       395 
389 
     | 
    
         
             
                    options === null || options === void 0 ? void 0 : options.richTextEditor
         
     | 
| 
       396 
390 
     | 
    
         
             
                ]);
         
     | 
| 
      
 391 
     | 
    
         
            +
                /* @conditional-compile-remove(rich-text-editor-composite-support) */
         
     | 
| 
      
 392 
     | 
    
         
            +
                const richTextEditBoxOptions = useMemo(() => {
         
     | 
| 
      
 393 
     | 
    
         
            +
                    return (options === null || options === void 0 ? void 0 : options.richTextEditor)
         
     | 
| 
      
 394 
     | 
    
         
            +
                        ? Object.assign(Object.assign({}, richTextEditorOptions), { 
         
     | 
| 
      
 395 
     | 
    
         
            +
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 396 
     | 
    
         
            +
                            onUploadInlineImage: (imageUrl, imageFileName, messageId) => {
         
     | 
| 
      
 397 
     | 
    
         
            +
                                onUploadInlineImageForEditBox(imageUrl, imageFileName, messageId, adapter, handleEditBoxInlineImageUploadAction);
         
     | 
| 
      
 398 
     | 
    
         
            +
                            }, 
         
     | 
| 
      
 399 
     | 
    
         
            +
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 400 
     | 
    
         
            +
                            messagesImageUploadsInProgress: getEditBoxMessagesImageUploadsInProgress(editBoxInlineImageUploads), 
         
     | 
| 
      
 401 
     | 
    
         
            +
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 402 
     | 
    
         
            +
                            onCancelInlineImageUpload: (imageId, messageId) => {
         
     | 
| 
      
 403 
     | 
    
         
            +
                                onCancelInlineImageUploadHandlerForEditBox(imageId, messageId, editBoxInlineImageUploads, adapter, handleEditBoxInlineImageUploadAction);
         
     | 
| 
      
 404 
     | 
    
         
            +
                            } }) : undefined;
         
     | 
| 
      
 405 
     | 
    
         
            +
                }, [
         
     | 
| 
      
 406 
     | 
    
         
            +
                    options === null || options === void 0 ? void 0 : options.richTextEditor,
         
     | 
| 
      
 407 
     | 
    
         
            +
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */ richTextEditorOptions,
         
     | 
| 
      
 408 
     | 
    
         
            +
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */ editBoxInlineImageUploads,
         
     | 
| 
      
 409 
     | 
    
         
            +
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */ adapter
         
     | 
| 
      
 410 
     | 
    
         
            +
                ]);
         
     | 
| 
      
 411 
     | 
    
         
            +
                /* @conditional-compile-remove(rich-text-editor-composite-support) */
         
     | 
| 
      
 412 
     | 
    
         
            +
                const richTextSendBoxOptions = useMemo(() => {
         
     | 
| 
      
 413 
     | 
    
         
            +
                    return (options === null || options === void 0 ? void 0 : options.richTextEditor)
         
     | 
| 
      
 414 
     | 
    
         
            +
                        ? Object.assign(Object.assign({}, richTextEditorOptions), { 
         
     | 
| 
      
 415 
     | 
    
         
            +
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 416 
     | 
    
         
            +
                            onUploadInlineImage: (imageUrl, imageFileName) => {
         
     | 
| 
      
 417 
     | 
    
         
            +
                                onUploadInlineImageForSendBox(imageUrl, imageFileName, adapter, handleSendBoxInlineImageUploadAction);
         
     | 
| 
      
 418 
     | 
    
         
            +
                            }, 
         
     | 
| 
      
 419 
     | 
    
         
            +
                            // onUploadInlineImageForSendBox,
         
     | 
| 
      
 420 
     | 
    
         
            +
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 421 
     | 
    
         
            +
                            imageUploadsInProgress: getSendBoxImageUploadsInProgress(sendBoxInlineImageUploads), 
         
     | 
| 
      
 422 
     | 
    
         
            +
                            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 423 
     | 
    
         
            +
                            onCancelInlineImageUpload: (imageId) => {
         
     | 
| 
      
 424 
     | 
    
         
            +
                                onCancelInlineImageUploadHandlerForSendBox(imageId, sendBoxInlineImageUploads, adapter, handleSendBoxInlineImageUploadAction);
         
     | 
| 
      
 425 
     | 
    
         
            +
                            } }) : undefined;
         
     | 
| 
      
 426 
     | 
    
         
            +
                }, [
         
     | 
| 
      
 427 
     | 
    
         
            +
                    options === null || options === void 0 ? void 0 : options.richTextEditor,
         
     | 
| 
      
 428 
     | 
    
         
            +
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */ richTextEditorOptions,
         
     | 
| 
      
 429 
     | 
    
         
            +
                    /* @conditional-compile-remove(rich-text-editor-image-upload) */ sendBoxInlineImageUploads,
         
     | 
| 
      
 430 
     | 
    
         
            +
                    adapter
         
     | 
| 
      
 431 
     | 
    
         
            +
                ]);
         
     | 
| 
       397 
432 
     | 
    
         
             
                return (React.createElement(Stack, { className: chatContainer, grow: true },
         
     | 
| 
       398 
433 
     | 
    
         
             
                    (options === null || options === void 0 ? void 0 : options.topic) !== false && React.createElement(ChatHeader, Object.assign({}, headerProps)),
         
     | 
| 
       399 
434 
     | 
    
         
             
                    React.createElement(Stack, { className: chatArea, tokens: participantListContainerPadding, horizontal: true, grow: true },
         
     | 
| 
         @@ -409,7 +444,7 @@ export const ChatScreen = (props) => { 
     | 
|
| 
       409 
444 
     | 
    
         
             
                                /* @conditional-compile-remove(file-sharing-acs) */
         
     | 
| 
       410 
445 
     | 
    
         
             
                                onRenderAttachmentDownloads: onRenderAttachmentDownloads, inlineImageOptions: inlineImageOptions, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles, 
         
     | 
| 
       411 
446 
     | 
    
         
             
                                /* @conditional-compile-remove(rich-text-editor-composite-support) */
         
     | 
| 
       412 
     | 
    
         
            -
                                richTextEditorOptions:  
     | 
| 
      
 447 
     | 
    
         
            +
                                richTextEditorOptions: richTextEditBoxOptions })),
         
     | 
| 
       413 
448 
     | 
    
         
             
                            React.createElement(Stack, { className: mergeStyles(sendboxContainerStyles) },
         
     | 
| 
       414 
449 
     | 
    
         
             
                                React.createElement("div", { className: mergeStyles(typingIndicatorContainerStyles) }, onRenderTypingIndicator ? (onRenderTypingIndicator(typingIndicatorProps.typingUsers)) : (React.createElement(TypingIndicator, Object.assign({}, typingIndicatorProps, { styles: typingIndicatorStyles })))),
         
     | 
| 
       415 
450 
     | 
    
         
             
                                React.createElement(Stack, { horizontal: formFactor === 'mobile' },
         
     | 
| 
         @@ -419,7 +454,7 @@ export const ChatScreen = (props) => { 
     | 
|
| 
       419 
454 
     | 
    
         
             
                                    React.createElement(Stack, { grow: true },
         
     | 
| 
       420 
455 
     | 
    
         
             
                                        React.createElement(SendBoxPicker, { styles: sendBoxStyles, autoFocus: options === null || options === void 0 ? void 0 : options.autoFocus, 
         
     | 
| 
       421 
456 
     | 
    
         
             
                                            /* @conditional-compile-remove(rich-text-editor-composite-support) */
         
     | 
| 
       422 
     | 
    
         
            -
                                            richTextEditorOptions:  
     | 
| 
      
 457 
     | 
    
         
            +
                                            richTextEditorOptions: richTextSendBoxOptions, 
         
     | 
| 
       423 
458 
     | 
    
         
             
                                            /* @conditional-compile-remove(file-sharing-acs) */
         
     | 
| 
       424 
459 
     | 
    
         
             
                                            attachments: attachments, 
         
     | 
| 
       425 
460 
     | 
    
         
             
                                            /* @conditional-compile-remove(file-sharing-acs) */
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"ChatScreen.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/ChatComposite/ChatScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isIOS } from '@fluentui/react';\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { PersonaSize } from '@fluentui/react';\nimport {\n  CommunicationParticipant,\n  ErrorBar,\n  MessageProps,\n  MessageRenderer,\n  MessageThread,\n  MessageThreadStyles,\n  ParticipantMenuItemsCallback,\n  SendBoxStylesProps,\n  TypingIndicator,\n  TypingIndicatorStylesProps,\n  useTheme\n} from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { ChatMessage } from '@internal/react-components';\nimport React, { useCallback, useEffect, useMemo } from 'react';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { useReducer } from 'react';\nimport { useState } from 'react';\nimport { AvatarPersona, AvatarPersonaDataCallback, AvatarPersonaProps } from '../common/AvatarPersona';\nimport { useAdapter } from './adapter/ChatAdapterProvider';\nimport { ChatCompositeOptions } from './ChatComposite';\nimport { ChatHeader, getHeaderProps } from './ChatHeader';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentUploadButtonWrapper as AttachmentUploadButton } from './file-sharing';\nimport { useAdaptedSelector } from './hooks/useAdaptedSelector';\nimport { usePropsFor } from './hooks/usePropsFor';\n\nimport {\n  chatArea,\n  chatContainer,\n  chatWrapper,\n  messageThreadChatCompositeStyles,\n  sendboxContainerStyles,\n  typingIndicatorContainerStyles\n} from './styles/Chat.styles';\nimport { participantListContainerPadding } from '../common/styles/ParticipantContainer.styles';\n/* @conditional-compile-remove(chat-composite-participant-pane) */\nimport { ChatScreenPeoplePane } from './ChatScreenPeoplePane';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentDownloadErrorBar } from './AttachmentDownloadErrorBar';\nimport { _AttachmentDownloadCards } from '@internal/react-components';\nimport { ImageOverlay } from '@internal/react-components';\nimport { InlineImage } from '@internal/react-components';\nimport { ResourceFetchResult } from '@internal/chat-stateful-client';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentOptions } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { nanoid } from 'nanoid';\n/* @conditional-compile-remove(file-sharing-acs) */\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { AttachmentUploadActionType, AttachmentUpload, AttachmentUploadReducer } from './file-sharing/AttachmentUpload';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { MessageOptions } from '@internal/acs-ui-common';\nimport { SendBoxPicker } from '../common/SendBoxPicker';\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\nimport { loadRichTextSendBox } from '../common/SendBoxPicker';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { useImageUpload } from './ImageUpload/useImageUpload';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { removeImageTags } from './ImageUpload/ImageUploadUtils';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport type { ChatAdapterState } from './adapter/ChatAdapter';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { isMicrosoftTeamsUserIdentifier } from '@azure/communication-common';\n\n/**\n * @private\n */\nexport type ChatScreenProps = {\n  options?: ChatCompositeOptions;\n  onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n  onRenderMessage?: (messageProps: MessageProps, defaultOnRender?: MessageRenderer) => JSX.Element;\n  onRenderTypingIndicator?: (typingUsers: CommunicationParticipant[]) => JSX.Element;\n  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n  styles?: ChatScreenStyles;\n  /* @conditional-compile-remove(file-sharing-acs) */\n  attachmentOptions?: AttachmentOptions;\n  formFactor?: 'desktop' | 'mobile';\n};\n\n/**\n * @private\n */\nexport type ChatScreenStyles = {\n  messageThread?: MessageThreadStyles;\n  sendBox?: SendBoxStylesProps;\n  typingIndicator?: TypingIndicatorStylesProps;\n};\n\n/**\n * @private\n */\ninterface OverlayImageItem {\n  imageSrc: string;\n  title: string;\n  titleIcon: JSX.Element;\n  attachmentId: string;\n  messageId: string;\n  imageUrl: string;\n}\n\n/**\n * @private\n */\nexport const ChatScreen = (props: ChatScreenProps): JSX.Element => {\n  const {\n    onFetchAvatarPersonaData,\n    onRenderMessage,\n    onRenderTypingIndicator,\n    options,\n    styles,\n    /* @conditional-compile-remove(file-sharing-acs) */\n    attachmentOptions,\n    formFactor\n  } = props;\n\n  const defaultNumberOfChatMessagesToReload = 5;\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const [downloadErrorMessage, setDownloadErrorMessage] = React.useState('');\n  const [overlayImageItem, setOverlayImageItem] = useState<OverlayImageItem>();\n  const [isImageOverlayOpen, setIsImageOverlayOpen] = useState<boolean>(false);\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const [uploads, handleUploadAction] = useReducer(AttachmentUploadReducer, []);\n  const adapter = useAdapter();\n  const theme = useTheme();\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const [inlineImageUploads, handleInlineImageUploadAction, onUploadInlineImage, onCancelInlineImageUploadHandler] =\n    useImageUpload();\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const [textOnlyChat, setTextOnlyChat] = useState(false);\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const [isACSChat, setIsACSChat] = useState(false);\n\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  useEffect(() => {\n    const updateChatState = (newState: ChatAdapterState): void => {\n      setTextOnlyChat(newState.thread.properties?.messagingPolicy?.textOnlyChat === true);\n      if (newState.thread.properties?.createdBy) {\n        setIsACSChat(!isMicrosoftTeamsUserIdentifier(newState.thread.properties?.createdBy));\n      }\n    };\n    // set initial state for textOnlyChat and isACSChat\n    updateChatState(adapter.getState());\n\n    adapter.onStateChange(updateChatState);\n    return () => {\n      adapter.offStateChange(updateChatState);\n    };\n  }, [adapter]);\n\n  useEffect(() => {\n    // Initial data should be always fetched by the composite(or external caller) instead of the adapter\n    const fetchData: () => Promise<void> = async () => {\n      // Fetch initial data for adapter\n      await adapter.fetchInitialData();\n      // Fetch initial set of messages. Without fetching messages here, if the Composite's adapter is changed the message thread does not load new messages.\n      await adapter.loadPreviousChatMessages(defaultNumberOfChatMessagesToReload);\n    };\n    fetchData();\n  }, [adapter]);\n\n  /* @conditional-compile-remove(rich-text-editor-composite-support) */\n  useEffect(() => {\n    // if rich text editor is enabled, the rich text editor component should be loaded early for good UX\n    if (options?.richTextEditor) {\n      // this line is needed to load the Rooster JS dependencies early in the lifecycle\n      // when the rich text editor is enabled\n      loadRichTextSendBox();\n    }\n  }, [options?.richTextEditor]);\n\n  const messageThreadProps = usePropsFor(MessageThread);\n  const typingIndicatorProps = usePropsFor(TypingIndicator);\n  const headerProps = useAdaptedSelector(getHeaderProps);\n  const errorBarProps = usePropsFor(ErrorBar);\n\n  useEffect(() => {\n    if (overlayImageItem === undefined) {\n      return;\n    }\n    const message = adapter.getState().thread.chatMessages[overlayImageItem.messageId];\n    if (message === undefined) {\n      return;\n    }\n    const resourceCache = message.resourceCache;\n    if (overlayImageItem.imageSrc === '' && resourceCache && resourceCache[overlayImageItem.imageUrl]) {\n      const fullSizeImageSrc = getResourceSourceUrl(resourceCache[overlayImageItem.imageUrl]);\n      if (fullSizeImageSrc === undefined || fullSizeImageSrc === '' || overlayImageItem.imageSrc === fullSizeImageSrc) {\n        return;\n      }\n      setOverlayImageItem({\n        ...overlayImageItem,\n        imageSrc: fullSizeImageSrc\n      });\n    }\n    // Disable eslint because we are using the overlayImageItem in this effect but don't want to have it as a dependency, as it will cause an infinite loop.\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [messageThreadProps.messages]);\n\n  const getResourceSourceUrl = (result: ResourceFetchResult): string => {\n    let src = '';\n    if (result.error || !result.sourceUrl) {\n      src = 'blob://';\n    } else {\n      src = result.sourceUrl;\n    }\n\n    return src;\n  };\n\n  const onRenderAvatarCallback = useCallback(\n    (userId?: string, defaultOptions?: AvatarPersonaProps) => {\n      return (\n        <AvatarPersona\n          userId={userId}\n          hidePersonaDetails={true}\n          {...defaultOptions}\n          dataProvider={onFetchAvatarPersonaData}\n        />\n      );\n    },\n    [onFetchAvatarPersonaData]\n  );\n\n  const messageThreadStyles = useMemo(() => {\n    return Object.assign(\n      {},\n      messageThreadChatCompositeStyles(theme.semanticColors.bodyBackground),\n      styles?.messageThread\n    );\n  }, [styles?.messageThread, theme.semanticColors.bodyBackground]);\n\n  const typingIndicatorStyles = useMemo(() => {\n    return Object.assign({}, styles?.typingIndicator);\n  }, [styles?.typingIndicator]);\n\n  const sendBoxStyles = useMemo(() => {\n    return Object.assign({}, styles?.sendBox);\n  }, [styles?.sendBox]);\n\n  const userId = toFlatCommunicationIdentifier(adapter.getState().userId);\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const setKeyboardFocusAfterFileSelection = useCallback(() => {\n    // look up sendbox by ID for now, we will use `useRef`\n    // once attachment button is moved inside of send box component\n    // see ADO workitem #3764245\n    /* @conditional-compile-remove(rich-text-editor-composite-support) */\n    if (props.options?.richTextEditor) {\n      const richTextSendBox = document?.querySelector(`[id=\"richTextSendBox\"]`) as HTMLDivElement;\n      richTextSendBox?.focus();\n      return;\n    }\n    const sendBox = document?.querySelector(`[id=\"sendbox\"]`) as HTMLTextAreaElement;\n    // set send box on focus after file selection per A11y requirement\n    sendBox?.focus();\n  }, [\n    /* @conditional-compile-remove(rich-text-editor-composite-support) */\n    props.options?.richTextEditor\n  ]);\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const attachmentUploadButtonOnChange = useCallback(\n    (files: FileList | null): void => {\n      setKeyboardFocusAfterFileSelection();\n\n      if (!files) {\n        return;\n      }\n\n      // Get files, change to tasks, store locally and pass back to Contoso\n      const newUploads = Array.from(files).map((file): AttachmentUpload => {\n        const taskId = nanoid();\n        return {\n          file,\n          taskId,\n          metadata: {\n            id: taskId,\n            name: file.name,\n            progress: 0\n          },\n          notifyUploadProgressChanged: (value: number) => {\n            handleUploadAction({ type: AttachmentUploadActionType.Progress, taskId, progress: value });\n          },\n          notifyUploadCompleted: (id: string, url: string) => {\n            handleUploadAction({ type: AttachmentUploadActionType.Completed, taskId, id, url });\n          },\n          notifyUploadFailed: (message: string) => {\n            handleUploadAction({ type: AttachmentUploadActionType.Failed, taskId, message });\n            // remove the failed upload task when error banner is auto dismissed after 10 seconds\n            // so the banner won't be shown again on UI re-rendering.\n            setTimeout(() => {\n              handleUploadAction({ type: AttachmentUploadActionType.Remove, id: taskId });\n            }, 10 * 1000);\n          }\n        };\n      });\n\n      handleUploadAction({ type: AttachmentUploadActionType.Set, newUploads });\n      attachmentOptions?.uploadOptions?.handleAttachmentSelection(newUploads);\n    },\n    [attachmentOptions?.uploadOptions, setKeyboardFocusAfterFileSelection]\n  );\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const onRenderAttachmentDownloads = useCallback(\n    (message: ChatMessage) =>\n      message?.attachments?.length ?? 0 > 0 ? (\n        <_AttachmentDownloadCards\n          attachments={message.attachments}\n          message={message}\n          actionsForAttachment={attachmentOptions?.downloadOptions?.actionsForAttachment}\n          onActionHandlerFailed={(errorMessage: string) => {\n            setDownloadErrorMessage(errorMessage);\n          }}\n        />\n      ) : (\n        <></>\n      ),\n    [attachmentOptions?.downloadOptions?.actionsForAttachment]\n  );\n\n  const onInlineImageClicked = useCallback(\n    (attachmentId: string, messageId: string) => {\n      const message = adapter.getState().thread.chatMessages[messageId];\n      const inlinedImages = message.content?.attachments?.filter((attachment) => {\n        return attachment.attachmentType === 'image' && attachment.id === attachmentId;\n      });\n\n      if (!inlinedImages || inlinedImages.length <= 0) {\n        return;\n      }\n\n      const attachment = inlinedImages[0];\n\n      const resourceCache = message.resourceCache;\n      let imageSrc = '';\n\n      if (attachment.url) {\n        if (resourceCache && resourceCache[attachment.url]) {\n          imageSrc = getResourceSourceUrl(resourceCache[attachment.url]);\n        } else {\n          adapter.downloadResourceToCache({\n            threadId: adapter.getState().thread.threadId,\n            messageId: messageId,\n            resourceUrl: attachment.url\n          });\n        }\n      }\n\n      const titleIconRenderOptions = {\n        text: message.senderDisplayName,\n        size: PersonaSize.size32,\n        showOverflowTooltip: false,\n        imageAlt: message.senderDisplayName\n      };\n\n      const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n      const titleIcon = onRenderAvatarCallback && onRenderAvatarCallback(messageSenderId, titleIconRenderOptions);\n      const overlayImage: OverlayImageItem = {\n        title: message.senderDisplayName || '',\n        titleIcon: titleIcon,\n        attachmentId: attachment.id,\n        imageSrc: imageSrc,\n        messageId: messageId,\n        imageUrl: attachment.url || ''\n      };\n\n      setIsImageOverlayOpen(true);\n      setOverlayImageItem(overlayImage);\n    },\n    [adapter, onRenderAvatarCallback, userId]\n  );\n\n  const onRenderInlineImage = useCallback(\n    (inlineImage: InlineImage, defaultOnRender: (inlineImage: InlineImage) => JSX.Element): JSX.Element => {\n      const message = adapter.getState().thread.chatMessages[inlineImage.messageId];\n      const attachment = message?.content?.attachments?.find(\n        (attachment) => attachment.id === inlineImage.imageAttributes.id\n      );\n\n      if (attachment === undefined) {\n        return defaultOnRender(inlineImage);\n      }\n\n      let pointerEvents: 'none' | 'auto' = inlineImage.imageAttributes.src === '' ? 'none' : 'auto';\n      const resourceCache = message.resourceCache;\n      if (\n        resourceCache &&\n        attachment.previewUrl &&\n        resourceCache[attachment.previewUrl] &&\n        resourceCache[attachment.previewUrl].error\n      ) {\n        pointerEvents = 'none';\n      }\n\n      return (\n        <span\n          key={inlineImage.imageAttributes.id}\n          onClick={() => onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId)}\n          tabIndex={0}\n          role=\"button\"\n          onKeyDown={(e) => {\n            if (e.key === 'Enter') {\n              onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId);\n            }\n          }}\n          style={{ cursor: 'pointer', pointerEvents }}\n        >\n          {defaultOnRender(inlineImage)}\n        </span>\n      );\n    },\n    [adapter, onInlineImageClicked]\n  );\n\n  const inlineImageOptions = useMemo(() => {\n    return { onRenderInlineImage: onRenderInlineImage };\n  }, [onRenderInlineImage]);\n\n  const onDownloadButtonClicked = useCallback(\n    (imageSrc: string): void => {\n      if (imageSrc === '') {\n        return;\n      }\n      if (isIOS()) {\n        window.open(imageSrc, '_blank');\n      } else {\n        // Create a new anchor element\n        const a = document.createElement('a');\n        // Set the href and download attributes for the anchor element\n        a.href = imageSrc;\n        a.download = overlayImageItem?.attachmentId || '';\n        a.rel = 'noopener noreferrer';\n        a.target = '_blank';\n\n        // Programmatically click the anchor element to trigger the download\n        document.body.appendChild(a);\n        a.click();\n        document.body.removeChild(a);\n      }\n    },\n    [overlayImageItem?.attachmentId]\n  );\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const attachmentButton = useMemo(() => {\n    if (\n      !attachmentOptions?.uploadOptions?.handleAttachmentSelection ||\n      /* @conditional-compile-remove(rich-text-editor-image-upload) */\n      textOnlyChat\n    ) {\n      return null;\n    }\n    return (\n      <AttachmentUploadButton\n        supportedMediaTypes={attachmentOptions?.uploadOptions?.supportedMediaTypes}\n        disableMultipleUploads={attachmentOptions?.uploadOptions?.disableMultipleUploads}\n        onChange={attachmentUploadButtonOnChange}\n      />\n    );\n    return <></>;\n  }, [\n    attachmentOptions?.uploadOptions?.handleAttachmentSelection,\n    attachmentOptions?.uploadOptions?.supportedMediaTypes,\n    attachmentOptions?.uploadOptions?.disableMultipleUploads,\n    attachmentUploadButtonOnChange,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    textOnlyChat\n  ]);\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const attachments = useMemo(() => {\n    return uploads?.map((v) => v.metadata);\n  }, [uploads]);\n\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const imageUploadsInProgress = useMemo(() => {\n    return inlineImageUploads?.map((v) => v.metadata);\n  }, [inlineImageUploads]);\n\n  const onSendMessageHandler = useCallback(\n    async function (\n      content: string,\n      /* @conditional-compile-remove(file-sharing-acs) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */ options?: MessageOptions\n    ) {\n      /* @conditional-compile-remove(file-sharing-acs) */\n      const attachments = options?.attachments ?? [];\n      /* @conditional-compile-remove(file-sharing-acs) */\n      handleUploadAction({ type: AttachmentUploadActionType.Clear });\n      /* @conditional-compile-remove(rich-text-editor-image-upload) */\n      handleInlineImageUploadAction({ type: AttachmentUploadActionType.Clear });\n\n      /* @conditional-compile-remove(file-sharing-acs) */\n      await adapter.sendMessage(content, {\n        attachments: attachments,\n        /* @conditional-compile-remove(rich-text-editor-composite-support) */\n        type: options?.type\n      });\n      /* @conditional-compile-remove(file-sharing-acs) */\n      return;\n      await adapter.sendMessage(content, {\n        /* @conditional-compile-remove(rich-text-editor-composite-support) */\n        type: options?.type\n      });\n    },\n    [adapter, /* @conditional-compile-remove(rich-text-editor-image-upload) */ handleInlineImageUploadAction]\n  );\n\n  const onUpdateMessageHandler = useCallback(\n    async (messageId: string, content: string) => {\n      await messageThreadProps.onUpdateMessage(messageId, content);\n      /* @conditional-compile-remove(rich-text-editor-image-upload) */\n      handleInlineImageUploadAction({ type: AttachmentUploadActionType.Clear });\n    },\n    [/* @conditional-compile-remove(rich-text-editor-image-upload) */ handleInlineImageUploadAction, messageThreadProps]\n  );\n\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const onCancelEditMessageHandler = useCallback(() => {\n    handleInlineImageUploadAction({ type: AttachmentUploadActionType.Clear });\n  }, [handleInlineImageUploadAction]);\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const onCancelUploadHandler = useCallback(\n    (id: string) => {\n      handleUploadAction({ type: AttachmentUploadActionType.Remove, id });\n      attachmentOptions?.uploadOptions?.handleAttachmentRemoval?.(id);\n    },\n    [attachmentOptions?.uploadOptions]\n  );\n\n  /* @conditional-compile-remove(rich-text-editor-composite-support) */\n  const richTextEditorOptions = useMemo(() => {\n    const onPasteCallback = isACSChat || textOnlyChat ? removeImageTags : undefined;\n    return options?.richTextEditor\n      ? {\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste: onPasteCallback,\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          onUploadInlineImage: onUploadInlineImage,\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          imageUploadsInProgress: imageUploadsInProgress,\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          onCancelInlineImageUpload: onCancelInlineImageUploadHandler\n        }\n      : undefined;\n  }, [\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    imageUploadsInProgress,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    onCancelInlineImageUploadHandler,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    onUploadInlineImage,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    isACSChat,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    textOnlyChat,\n    options?.richTextEditor\n  ]);\n\n  return (\n    <Stack className={chatContainer} grow>\n      {options?.topic !== false && <ChatHeader {...headerProps} />}\n      <Stack className={chatArea} tokens={participantListContainerPadding} horizontal grow>\n        <Stack className={chatWrapper} grow>\n          {options?.errorBar !== false && <ErrorBar {...errorBarProps} />}\n          {\n            /* @conditional-compile-remove(file-sharing-acs) */\n            <AttachmentDownloadErrorBar\n              onDismissDownloadErrorMessage={useCallback(() => {\n                setDownloadErrorMessage('');\n              }, [])}\n              attachmentDownloadErrorMessage={downloadErrorMessage || ''}\n            />\n          }\n          <MessageThread\n            {...messageThreadProps}\n            onUpdateMessage={onUpdateMessageHandler}\n            /* @conditional-compile-remove(rich-text-editor-image-upload) */\n            onCancelEditMessage={onCancelEditMessageHandler}\n            onRenderAvatar={onRenderAvatarCallback}\n            onRenderMessage={onRenderMessage}\n            /* @conditional-compile-remove(file-sharing-acs) */\n            onRenderAttachmentDownloads={onRenderAttachmentDownloads}\n            inlineImageOptions={inlineImageOptions}\n            numberOfChatMessagesToReload={defaultNumberOfChatMessagesToReload}\n            styles={messageThreadStyles}\n            /* @conditional-compile-remove(rich-text-editor-composite-support) */\n            richTextEditorOptions={richTextEditorOptions}\n          />\n          <Stack className={mergeStyles(sendboxContainerStyles)}>\n            <div className={mergeStyles(typingIndicatorContainerStyles)}>\n              {onRenderTypingIndicator ? (\n                onRenderTypingIndicator(typingIndicatorProps.typingUsers)\n              ) : (\n                <TypingIndicator {...typingIndicatorProps} styles={typingIndicatorStyles} />\n              )}\n            </div>\n            <Stack horizontal={formFactor === 'mobile'}>\n              {formFactor === 'mobile' && (\n                /* @conditional-compile-remove(file-sharing-acs) */\n                <Stack verticalAlign=\"center\">{attachmentButton}</Stack>\n              )}\n              <Stack grow>\n                <SendBoxPicker\n                  styles={sendBoxStyles}\n                  autoFocus={options?.autoFocus}\n                  /* @conditional-compile-remove(rich-text-editor-composite-support) */\n                  richTextEditorOptions={richTextEditorOptions}\n                  /* @conditional-compile-remove(file-sharing-acs) */\n                  attachments={attachments}\n                  /* @conditional-compile-remove(file-sharing-acs) */\n                  onCancelAttachmentUpload={onCancelUploadHandler}\n                  // we need to overwrite onSendMessage for SendBox because we need to clear attachment state\n                  // when submit button is clicked\n                  onSendMessage={onSendMessageHandler}\n                />\n              </Stack>\n              {formFactor !== 'mobile' &&\n                /* @conditional-compile-remove(file-sharing-acs) */\n                attachmentButton}\n            </Stack>\n          </Stack>\n        </Stack>\n        {\n          /* @conditional-compile-remove(chat-composite-participant-pane) */\n          options?.participantPane === true && (\n            <ChatScreenPeoplePane\n              onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n              onFetchParticipantMenuItems={props.onFetchParticipantMenuItems}\n              isMobile={formFactor === 'mobile'}\n            />\n          )\n        }\n      </Stack>\n      {overlayImageItem && (\n        <ImageOverlay\n          {...overlayImageItem}\n          isOpen={isImageOverlayOpen}\n          onDismiss={() => {\n            setOverlayImageItem(undefined);\n            setIsImageOverlayOpen(false);\n            adapter.removeResourceFromCache({\n              threadId: adapter.getState().thread.threadId,\n              messageId: overlayImageItem.messageId,\n              resourceUrl: overlayImageItem.imageUrl\n            });\n          }}\n          onDownloadButtonClicked={onDownloadButtonClicked}\n        />\n      )}\n    </Stack>\n  );\n};\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"ChatScreen.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/ChatComposite/ChatScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isIOS } from '@fluentui/react';\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { PersonaSize } from '@fluentui/react';\nimport {\n  CommunicationParticipant,\n  ErrorBar,\n  MessageProps,\n  MessageRenderer,\n  MessageThread,\n  MessageThreadStyles,\n  ParticipantMenuItemsCallback,\n  SendBoxStylesProps,\n  TypingIndicator,\n  TypingIndicatorStylesProps,\n  useTheme\n} from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { ChatMessage } from '@internal/react-components';\nimport React, { useCallback, useEffect, useMemo } from 'react';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { useReducer } from 'react';\nimport { useState } from 'react';\nimport { AvatarPersona, AvatarPersonaDataCallback, AvatarPersonaProps } from '../common/AvatarPersona';\nimport { useAdapter } from './adapter/ChatAdapterProvider';\nimport { ChatCompositeOptions } from './ChatComposite';\nimport { ChatHeader, getHeaderProps } from './ChatHeader';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentUploadButtonWrapper as AttachmentUploadButton } from './file-sharing';\nimport { useAdaptedSelector } from './hooks/useAdaptedSelector';\nimport { usePropsFor } from './hooks/usePropsFor';\n\nimport {\n  chatArea,\n  chatContainer,\n  chatWrapper,\n  messageThreadChatCompositeStyles,\n  sendboxContainerStyles,\n  typingIndicatorContainerStyles\n} from './styles/Chat.styles';\nimport { participantListContainerPadding } from '../common/styles/ParticipantContainer.styles';\n/* @conditional-compile-remove(chat-composite-participant-pane) */\nimport { ChatScreenPeoplePane } from './ChatScreenPeoplePane';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentDownloadErrorBar } from './AttachmentDownloadErrorBar';\nimport { _AttachmentDownloadCards } from '@internal/react-components';\nimport { ImageOverlay } from '@internal/react-components';\nimport { InlineImage } from '@internal/react-components';\nimport { ResourceFetchResult } from '@internal/chat-stateful-client';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { AttachmentOptions } from '@internal/react-components';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { nanoid } from 'nanoid';\n/* @conditional-compile-remove(file-sharing-acs) */\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { AttachmentUploadActionType, AttachmentUpload, AttachmentUploadReducer } from './file-sharing/AttachmentUpload';\n/* @conditional-compile-remove(file-sharing-acs) */\nimport { MessageOptions } from '@internal/acs-ui-common';\nimport { SendBoxPicker } from '../common/SendBoxPicker';\n/* @conditional-compile-remove(rich-text-editor-composite-support) */\nimport { loadRichTextSendBox } from '../common/SendBoxPicker';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport {\n  getEditBoxMessagesImageUploadsInProgress,\n  getSendBoxImageUploadsInProgress,\n  onCancelInlineImageUploadHandlerForEditBox,\n  onCancelInlineImageUploadHandlerForSendBox,\n  onUploadInlineImageForEditBox,\n  onUploadInlineImageForSendBox,\n  removeImageTags\n} from './ImageUpload/ImageUploadUtils';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport type { ChatAdapterState } from './adapter/ChatAdapter';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { isMicrosoftTeamsUserIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { SEND_BOX_UPLOADS_KEY_VALUE } from '../common/constants';\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport { ImageUploadReducer } from './ImageUpload/ImageUploadReducer';\n\n/**\n * @private\n */\nexport type ChatScreenProps = {\n  options?: ChatCompositeOptions;\n  onFetchAvatarPersonaData?: AvatarPersonaDataCallback;\n  onRenderMessage?: (messageProps: MessageProps, defaultOnRender?: MessageRenderer) => JSX.Element;\n  onRenderTypingIndicator?: (typingUsers: CommunicationParticipant[]) => JSX.Element;\n  onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;\n  styles?: ChatScreenStyles;\n  /* @conditional-compile-remove(file-sharing-acs) */\n  attachmentOptions?: AttachmentOptions;\n  formFactor?: 'desktop' | 'mobile';\n};\n\n/**\n * @private\n */\nexport type ChatScreenStyles = {\n  messageThread?: MessageThreadStyles;\n  sendBox?: SendBoxStylesProps;\n  typingIndicator?: TypingIndicatorStylesProps;\n};\n\n/**\n * @private\n */\ninterface OverlayImageItem {\n  imageSrc: string;\n  title: string;\n  titleIcon: JSX.Element;\n  attachmentId: string;\n  messageId: string;\n  imageUrl: string;\n}\n\n/**\n * @private\n */\nexport const ChatScreen = (props: ChatScreenProps): JSX.Element => {\n  const {\n    onFetchAvatarPersonaData,\n    onRenderMessage,\n    onRenderTypingIndicator,\n    options,\n    styles,\n    /* @conditional-compile-remove(file-sharing-acs) */\n    attachmentOptions,\n    formFactor\n  } = props;\n\n  const defaultNumberOfChatMessagesToReload = 5;\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const [downloadErrorMessage, setDownloadErrorMessage] = React.useState('');\n  const [overlayImageItem, setOverlayImageItem] = useState<OverlayImageItem>();\n  const [isImageOverlayOpen, setIsImageOverlayOpen] = useState<boolean>(false);\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const [uploads, handleUploadAction] = useReducer(AttachmentUploadReducer, []);\n  const adapter = useAdapter();\n  const theme = useTheme();\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const [textOnlyChat, setTextOnlyChat] = useState(false);\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const [isACSChat, setIsACSChat] = useState(false);\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const [editBoxInlineImageUploads, handleEditBoxInlineImageUploadAction] = useReducer(ImageUploadReducer, undefined);\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const [sendBoxInlineImageUploads, handleSendBoxInlineImageUploadAction] = useReducer(ImageUploadReducer, undefined);\n\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  useEffect(() => {\n    const updateChatState = (newState: ChatAdapterState): void => {\n      setTextOnlyChat(newState.thread.properties?.messagingPolicy?.textOnlyChat === true);\n      if (newState.thread.properties?.createdBy) {\n        setIsACSChat(!isMicrosoftTeamsUserIdentifier(newState.thread.properties?.createdBy));\n      }\n    };\n    // set initial state for textOnlyChat and isACSChat\n    updateChatState(adapter.getState());\n\n    adapter.onStateChange(updateChatState);\n    return () => {\n      adapter.offStateChange(updateChatState);\n    };\n  }, [adapter]);\n\n  useEffect(() => {\n    // Initial data should be always fetched by the composite(or external caller) instead of the adapter\n    const fetchData: () => Promise<void> = async () => {\n      // Fetch initial data for adapter\n      await adapter.fetchInitialData();\n      // Fetch initial set of messages. Without fetching messages here, if the Composite's adapter is changed the message thread does not load new messages.\n      await adapter.loadPreviousChatMessages(defaultNumberOfChatMessagesToReload);\n    };\n    fetchData();\n  }, [adapter]);\n\n  /* @conditional-compile-remove(rich-text-editor-composite-support) */\n  useEffect(() => {\n    // if rich text editor is enabled, the rich text editor component should be loaded early for good UX\n    if (options?.richTextEditor) {\n      // this line is needed to load the Rooster JS dependencies early in the lifecycle\n      // when the rich text editor is enabled\n      loadRichTextSendBox();\n    }\n  }, [options?.richTextEditor]);\n\n  const messageThreadProps = usePropsFor(MessageThread);\n  const typingIndicatorProps = usePropsFor(TypingIndicator);\n  const headerProps = useAdaptedSelector(getHeaderProps);\n  const errorBarProps = usePropsFor(ErrorBar);\n\n  useEffect(() => {\n    if (overlayImageItem === undefined) {\n      return;\n    }\n    const message = adapter.getState().thread.chatMessages[overlayImageItem.messageId];\n    if (message === undefined) {\n      return;\n    }\n    const resourceCache = message.resourceCache;\n    if (overlayImageItem.imageSrc === '' && resourceCache && resourceCache[overlayImageItem.imageUrl]) {\n      const fullSizeImageSrc = getResourceSourceUrl(resourceCache[overlayImageItem.imageUrl]);\n      if (fullSizeImageSrc === undefined || fullSizeImageSrc === '' || overlayImageItem.imageSrc === fullSizeImageSrc) {\n        return;\n      }\n      setOverlayImageItem({\n        ...overlayImageItem,\n        imageSrc: fullSizeImageSrc\n      });\n    }\n    // Disable eslint because we are using the overlayImageItem in this effect but don't want to have it as a dependency, as it will cause an infinite loop.\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [messageThreadProps.messages]);\n\n  const getResourceSourceUrl = (result: ResourceFetchResult): string => {\n    let src = '';\n    if (result.error || !result.sourceUrl) {\n      src = 'blob://';\n    } else {\n      src = result.sourceUrl;\n    }\n\n    return src;\n  };\n\n  const onRenderAvatarCallback = useCallback(\n    (userId?: string, defaultOptions?: AvatarPersonaProps) => {\n      return (\n        <AvatarPersona\n          userId={userId}\n          hidePersonaDetails={true}\n          {...defaultOptions}\n          dataProvider={onFetchAvatarPersonaData}\n        />\n      );\n    },\n    [onFetchAvatarPersonaData]\n  );\n\n  const messageThreadStyles = useMemo(() => {\n    return Object.assign(\n      {},\n      messageThreadChatCompositeStyles(theme.semanticColors.bodyBackground),\n      styles?.messageThread\n    );\n  }, [styles?.messageThread, theme.semanticColors.bodyBackground]);\n\n  const typingIndicatorStyles = useMemo(() => {\n    return Object.assign({}, styles?.typingIndicator);\n  }, [styles?.typingIndicator]);\n\n  const sendBoxStyles = useMemo(() => {\n    return Object.assign({}, styles?.sendBox);\n  }, [styles?.sendBox]);\n\n  const userId = toFlatCommunicationIdentifier(adapter.getState().userId);\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const setKeyboardFocusAfterFileSelection = useCallback(() => {\n    // look up sendbox by ID for now, we will use `useRef`\n    // once attachment button is moved inside of send box component\n    // see ADO workitem #3764245\n    /* @conditional-compile-remove(rich-text-editor-composite-support) */\n    if (props.options?.richTextEditor) {\n      const richTextSendBox = document?.querySelector(`[id=\"richTextSendBox\"]`) as HTMLDivElement;\n      richTextSendBox?.focus();\n      return;\n    }\n    const sendBox = document?.querySelector(`[id=\"sendbox\"]`) as HTMLTextAreaElement;\n    // set send box on focus after file selection per A11y requirement\n    sendBox?.focus();\n  }, [\n    /* @conditional-compile-remove(rich-text-editor-composite-support) */\n    props.options?.richTextEditor\n  ]);\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const attachmentUploadButtonOnChange = useCallback(\n    (files: FileList | null): void => {\n      setKeyboardFocusAfterFileSelection();\n\n      if (!files) {\n        return;\n      }\n\n      // Get files, change to tasks, store locally and pass back to Contoso\n      const newUploads = Array.from(files).map((file): AttachmentUpload => {\n        const taskId = nanoid();\n        return {\n          file,\n          taskId,\n          metadata: {\n            id: taskId,\n            name: file.name,\n            progress: 0\n          },\n          notifyUploadProgressChanged: (value: number) => {\n            handleUploadAction({ type: AttachmentUploadActionType.Progress, taskId, progress: value });\n          },\n          notifyUploadCompleted: (id: string, url: string) => {\n            handleUploadAction({ type: AttachmentUploadActionType.Completed, taskId, id, url });\n          },\n          notifyUploadFailed: (message: string) => {\n            handleUploadAction({ type: AttachmentUploadActionType.Failed, taskId, message });\n            // remove the failed upload task when error banner is auto dismissed after 10 seconds\n            // so the banner won't be shown again on UI re-rendering.\n            setTimeout(() => {\n              handleUploadAction({ type: AttachmentUploadActionType.Remove, id: taskId });\n            }, 10 * 1000);\n          }\n        };\n      });\n\n      handleUploadAction({ type: AttachmentUploadActionType.Set, newUploads });\n      attachmentOptions?.uploadOptions?.handleAttachmentSelection(newUploads);\n    },\n    [attachmentOptions?.uploadOptions, setKeyboardFocusAfterFileSelection]\n  );\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const onRenderAttachmentDownloads = useCallback(\n    (message: ChatMessage) =>\n      message?.attachments?.length ?? 0 > 0 ? (\n        <_AttachmentDownloadCards\n          attachments={message.attachments}\n          message={message}\n          actionsForAttachment={attachmentOptions?.downloadOptions?.actionsForAttachment}\n          onActionHandlerFailed={(errorMessage: string) => {\n            setDownloadErrorMessage(errorMessage);\n          }}\n        />\n      ) : (\n        <></>\n      ),\n    [attachmentOptions?.downloadOptions?.actionsForAttachment]\n  );\n\n  const onInlineImageClicked = useCallback(\n    (attachmentId: string, messageId: string) => {\n      const message = adapter.getState().thread.chatMessages[messageId];\n      const inlinedImages = message.content?.attachments?.filter((attachment) => {\n        return attachment.attachmentType === 'image' && attachment.id === attachmentId;\n      });\n\n      if (!inlinedImages || inlinedImages.length <= 0) {\n        return;\n      }\n\n      const attachment = inlinedImages[0];\n\n      const resourceCache = message.resourceCache;\n      let imageSrc = '';\n\n      if (attachment.url) {\n        if (resourceCache && resourceCache[attachment.url]) {\n          imageSrc = getResourceSourceUrl(resourceCache[attachment.url]);\n        } else {\n          adapter.downloadResourceToCache({\n            threadId: adapter.getState().thread.threadId,\n            messageId: messageId,\n            resourceUrl: attachment.url\n          });\n        }\n      }\n\n      const titleIconRenderOptions = {\n        text: message.senderDisplayName,\n        size: PersonaSize.size32,\n        showOverflowTooltip: false,\n        imageAlt: message.senderDisplayName\n      };\n\n      const messageSenderId = message.sender !== undefined ? toFlatCommunicationIdentifier(message.sender) : userId;\n      const titleIcon = onRenderAvatarCallback && onRenderAvatarCallback(messageSenderId, titleIconRenderOptions);\n      const overlayImage: OverlayImageItem = {\n        title: message.senderDisplayName || '',\n        titleIcon: titleIcon,\n        attachmentId: attachment.id,\n        imageSrc: imageSrc,\n        messageId: messageId,\n        imageUrl: attachment.url || ''\n      };\n\n      setIsImageOverlayOpen(true);\n      setOverlayImageItem(overlayImage);\n    },\n    [adapter, onRenderAvatarCallback, userId]\n  );\n\n  const onRenderInlineImage = useCallback(\n    (inlineImage: InlineImage, defaultOnRender: (inlineImage: InlineImage) => JSX.Element): JSX.Element => {\n      const message = adapter.getState().thread.chatMessages[inlineImage.messageId];\n      const attachment = message?.content?.attachments?.find(\n        (attachment) => attachment.id === inlineImage.imageAttributes.id\n      );\n\n      if (attachment === undefined) {\n        return defaultOnRender(inlineImage);\n      }\n\n      let pointerEvents: 'none' | 'auto' = inlineImage.imageAttributes.src === '' ? 'none' : 'auto';\n      const resourceCache = message.resourceCache;\n      if (\n        resourceCache &&\n        attachment.previewUrl &&\n        resourceCache[attachment.previewUrl] &&\n        resourceCache[attachment.previewUrl].error\n      ) {\n        pointerEvents = 'none';\n      }\n\n      return (\n        <span\n          key={inlineImage.imageAttributes.id}\n          onClick={() => onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId)}\n          tabIndex={0}\n          role=\"button\"\n          onKeyDown={(e) => {\n            if (e.key === 'Enter') {\n              onInlineImageClicked(inlineImage.imageAttributes.id || '', inlineImage.messageId);\n            }\n          }}\n          style={{ cursor: 'pointer', pointerEvents }}\n        >\n          {defaultOnRender(inlineImage)}\n        </span>\n      );\n    },\n    [adapter, onInlineImageClicked]\n  );\n\n  const inlineImageOptions = useMemo(() => {\n    return { onRenderInlineImage: onRenderInlineImage };\n  }, [onRenderInlineImage]);\n\n  const onDownloadButtonClicked = useCallback(\n    (imageSrc: string): void => {\n      if (imageSrc === '') {\n        return;\n      }\n      if (isIOS()) {\n        window.open(imageSrc, '_blank');\n      } else {\n        // Create a new anchor element\n        const a = document.createElement('a');\n        // Set the href and download attributes for the anchor element\n        a.href = imageSrc;\n        a.download = overlayImageItem?.attachmentId || '';\n        a.rel = 'noopener noreferrer';\n        a.target = '_blank';\n\n        // Programmatically click the anchor element to trigger the download\n        document.body.appendChild(a);\n        a.click();\n        document.body.removeChild(a);\n      }\n    },\n    [overlayImageItem?.attachmentId]\n  );\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const attachmentButton = useMemo(() => {\n    if (\n      !attachmentOptions?.uploadOptions?.handleAttachmentSelection ||\n      /* @conditional-compile-remove(rich-text-editor-image-upload) */\n      textOnlyChat\n    ) {\n      return null;\n    }\n    return (\n      <AttachmentUploadButton\n        supportedMediaTypes={attachmentOptions?.uploadOptions?.supportedMediaTypes}\n        disableMultipleUploads={attachmentOptions?.uploadOptions?.disableMultipleUploads}\n        onChange={attachmentUploadButtonOnChange}\n      />\n    );\n    return <></>;\n  }, [\n    attachmentOptions?.uploadOptions?.handleAttachmentSelection,\n    attachmentOptions?.uploadOptions?.supportedMediaTypes,\n    attachmentOptions?.uploadOptions?.disableMultipleUploads,\n    attachmentUploadButtonOnChange,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    textOnlyChat\n  ]);\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const attachments = useMemo(() => {\n    return uploads?.map((v) => v.metadata);\n  }, [uploads]);\n\n  const onSendMessageHandler = useCallback(\n    async function (\n      content: string,\n      /* @conditional-compile-remove(file-sharing-acs) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */ options?: MessageOptions\n    ) {\n      /* @conditional-compile-remove(file-sharing-acs) */\n      const attachments = options?.attachments ?? [];\n      /* @conditional-compile-remove(file-sharing-acs) */\n      handleUploadAction({ type: AttachmentUploadActionType.Clear });\n      /* @conditional-compile-remove(rich-text-editor-image-upload) */\n      handleSendBoxInlineImageUploadAction({\n        type: AttachmentUploadActionType.Clear,\n        messageId: SEND_BOX_UPLOADS_KEY_VALUE\n      });\n\n      /* @conditional-compile-remove(file-sharing-acs) */\n      await adapter.sendMessage(content, {\n        attachments: attachments,\n        /* @conditional-compile-remove(rich-text-editor-composite-support) */\n        type: options?.type\n      });\n      /* @conditional-compile-remove(file-sharing-acs) */\n      return;\n      await adapter.sendMessage(content, {\n        /* @conditional-compile-remove(rich-text-editor-composite-support) */\n        type: options?.type\n      });\n    },\n    [adapter, /* @conditional-compile-remove(rich-text-editor-image-upload) */ handleSendBoxInlineImageUploadAction]\n  );\n\n  const onUpdateMessageHandler = useCallback(\n    async (messageId: string, content: string) => {\n      await messageThreadProps.onUpdateMessage(messageId, content);\n      /* @conditional-compile-remove(rich-text-editor-image-upload) */\n      handleEditBoxInlineImageUploadAction({ type: AttachmentUploadActionType.Clear, messageId });\n    },\n    [\n      /* @conditional-compile-remove(rich-text-editor-image-upload) */ handleEditBoxInlineImageUploadAction,\n      messageThreadProps\n    ]\n  );\n\n  /* @conditional-compile-remove(rich-text-editor-image-upload) */\n  const onCancelEditMessageHandler = useCallback(\n    (messageId: string) => {\n      handleEditBoxInlineImageUploadAction({ type: AttachmentUploadActionType.Clear, messageId });\n    },\n    [handleEditBoxInlineImageUploadAction]\n  );\n\n  /* @conditional-compile-remove(file-sharing-acs) */\n  const onCancelUploadHandler = useCallback(\n    (id: string) => {\n      handleUploadAction({ type: AttachmentUploadActionType.Remove, id });\n      attachmentOptions?.uploadOptions?.handleAttachmentRemoval?.(id);\n    },\n    [attachmentOptions?.uploadOptions]\n  );\n\n  /* @conditional-compile-remove(rich-text-editor-composite-support) */\n  const richTextEditorOptions = useMemo(() => {\n    const onPasteCallback = isACSChat || textOnlyChat ? removeImageTags : undefined;\n    return options?.richTextEditor\n      ? {\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste: onPasteCallback\n        }\n      : undefined;\n  }, [\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    isACSChat,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */\n    textOnlyChat,\n    options?.richTextEditor\n  ]);\n\n  /* @conditional-compile-remove(rich-text-editor-composite-support) */\n  const richTextEditBoxOptions = useMemo(() => {\n    return options?.richTextEditor\n      ? {\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          ...richTextEditorOptions,\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          onUploadInlineImage: (imageUrl: string, imageFileName: string, messageId: string) => {\n            onUploadInlineImageForEditBox(\n              imageUrl,\n              imageFileName,\n              messageId,\n              adapter,\n              handleEditBoxInlineImageUploadAction\n            );\n          },\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          messagesImageUploadsInProgress: getEditBoxMessagesImageUploadsInProgress(editBoxInlineImageUploads),\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          onCancelInlineImageUpload: (imageId: string, messageId: string) => {\n            onCancelInlineImageUploadHandlerForEditBox(\n              imageId,\n              messageId,\n              editBoxInlineImageUploads,\n              adapter,\n              handleEditBoxInlineImageUploadAction\n            );\n          }\n        }\n      : undefined;\n  }, [\n    options?.richTextEditor,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */ richTextEditorOptions,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */ editBoxInlineImageUploads,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */ adapter\n  ]);\n\n  /* @conditional-compile-remove(rich-text-editor-composite-support) */\n  const richTextSendBoxOptions = useMemo(() => {\n    return options?.richTextEditor\n      ? {\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          ...richTextEditorOptions,\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          onUploadInlineImage: (imageUrl: string, imageFileName: string) => {\n            onUploadInlineImageForSendBox(imageUrl, imageFileName, adapter, handleSendBoxInlineImageUploadAction);\n          },\n          // onUploadInlineImageForSendBox,\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          imageUploadsInProgress: getSendBoxImageUploadsInProgress(sendBoxInlineImageUploads),\n          /* @conditional-compile-remove(rich-text-editor-image-upload) */\n          onCancelInlineImageUpload: (imageId: string) => {\n            onCancelInlineImageUploadHandlerForSendBox(\n              imageId,\n              sendBoxInlineImageUploads,\n              adapter,\n              handleSendBoxInlineImageUploadAction\n            );\n          }\n        }\n      : undefined;\n  }, [\n    options?.richTextEditor,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */ richTextEditorOptions,\n    /* @conditional-compile-remove(rich-text-editor-image-upload) */ sendBoxInlineImageUploads,\n    adapter\n  ]);\n\n  return (\n    <Stack className={chatContainer} grow>\n      {options?.topic !== false && <ChatHeader {...headerProps} />}\n      <Stack className={chatArea} tokens={participantListContainerPadding} horizontal grow>\n        <Stack className={chatWrapper} grow>\n          {options?.errorBar !== false && <ErrorBar {...errorBarProps} />}\n          {\n            /* @conditional-compile-remove(file-sharing-acs) */\n            <AttachmentDownloadErrorBar\n              onDismissDownloadErrorMessage={useCallback(() => {\n                setDownloadErrorMessage('');\n              }, [])}\n              attachmentDownloadErrorMessage={downloadErrorMessage || ''}\n            />\n          }\n          <MessageThread\n            {...messageThreadProps}\n            onUpdateMessage={onUpdateMessageHandler}\n            /* @conditional-compile-remove(rich-text-editor-image-upload) */\n            onCancelEditMessage={onCancelEditMessageHandler}\n            onRenderAvatar={onRenderAvatarCallback}\n            onRenderMessage={onRenderMessage}\n            /* @conditional-compile-remove(file-sharing-acs) */\n            onRenderAttachmentDownloads={onRenderAttachmentDownloads}\n            inlineImageOptions={inlineImageOptions}\n            numberOfChatMessagesToReload={defaultNumberOfChatMessagesToReload}\n            styles={messageThreadStyles}\n            /* @conditional-compile-remove(rich-text-editor-composite-support) */\n            richTextEditorOptions={richTextEditBoxOptions}\n          />\n          <Stack className={mergeStyles(sendboxContainerStyles)}>\n            <div className={mergeStyles(typingIndicatorContainerStyles)}>\n              {onRenderTypingIndicator ? (\n                onRenderTypingIndicator(typingIndicatorProps.typingUsers)\n              ) : (\n                <TypingIndicator {...typingIndicatorProps} styles={typingIndicatorStyles} />\n              )}\n            </div>\n            <Stack horizontal={formFactor === 'mobile'}>\n              {formFactor === 'mobile' && (\n                /* @conditional-compile-remove(file-sharing-acs) */\n                <Stack verticalAlign=\"center\">{attachmentButton}</Stack>\n              )}\n              <Stack grow>\n                <SendBoxPicker\n                  styles={sendBoxStyles}\n                  autoFocus={options?.autoFocus}\n                  /* @conditional-compile-remove(rich-text-editor-composite-support) */\n                  richTextEditorOptions={richTextSendBoxOptions}\n                  /* @conditional-compile-remove(file-sharing-acs) */\n                  attachments={attachments}\n                  /* @conditional-compile-remove(file-sharing-acs) */\n                  onCancelAttachmentUpload={onCancelUploadHandler}\n                  // we need to overwrite onSendMessage for SendBox because we need to clear attachment state\n                  // when submit button is clicked\n                  onSendMessage={onSendMessageHandler}\n                />\n              </Stack>\n              {formFactor !== 'mobile' &&\n                /* @conditional-compile-remove(file-sharing-acs) */\n                attachmentButton}\n            </Stack>\n          </Stack>\n        </Stack>\n        {\n          /* @conditional-compile-remove(chat-composite-participant-pane) */\n          options?.participantPane === true && (\n            <ChatScreenPeoplePane\n              onFetchAvatarPersonaData={onFetchAvatarPersonaData}\n              onFetchParticipantMenuItems={props.onFetchParticipantMenuItems}\n              isMobile={formFactor === 'mobile'}\n            />\n          )\n        }\n      </Stack>\n      {overlayImageItem && (\n        <ImageOverlay\n          {...overlayImageItem}\n          isOpen={isImageOverlayOpen}\n          onDismiss={() => {\n            setOverlayImageItem(undefined);\n            setIsImageOverlayOpen(false);\n            adapter.removeResourceFromCache({\n              threadId: adapter.getState().thread.threadId,\n              messageId: overlayImageItem.messageId,\n              resourceUrl: overlayImageItem.imageUrl\n            });\n          }}\n          onDownloadButtonClicked={onDownloadButtonClicked}\n        />\n      )}\n    </Stack>\n  );\n};\n"]}
         
     | 
| 
         @@ -0,0 +1,49 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { Action, AttachmentUpload, AttachmentUploadActionType, ProgressAction, CompleteAction, FailedAction, RemoveAction, ClearAction } from '../file-sharing/AttachmentUpload';
         
     | 
| 
      
 2 
     | 
    
         
            +
            /**
         
     | 
| 
      
 3 
     | 
    
         
            +
             * @private
         
     | 
| 
      
 4 
     | 
    
         
            +
             */
         
     | 
| 
      
 5 
     | 
    
         
            +
            export interface ImageAction {
         
     | 
| 
      
 6 
     | 
    
         
            +
                messageId: string;
         
     | 
| 
      
 7 
     | 
    
         
            +
            }
         
     | 
| 
      
 8 
     | 
    
         
            +
            /**
         
     | 
| 
      
 9 
     | 
    
         
            +
             * @private
         
     | 
| 
      
 10 
     | 
    
         
            +
             */
         
     | 
| 
      
 11 
     | 
    
         
            +
            interface ImageSetAction extends Action, ImageAction {
         
     | 
| 
      
 12 
     | 
    
         
            +
                type: AttachmentUploadActionType.Set;
         
     | 
| 
      
 13 
     | 
    
         
            +
                newUploads: AttachmentUpload[];
         
     | 
| 
      
 14 
     | 
    
         
            +
            }
         
     | 
| 
      
 15 
     | 
    
         
            +
            /**
         
     | 
| 
      
 16 
     | 
    
         
            +
             * @private
         
     | 
| 
      
 17 
     | 
    
         
            +
             */
         
     | 
| 
      
 18 
     | 
    
         
            +
            interface ImageProgressAction extends ProgressAction, ImageAction {
         
     | 
| 
      
 19 
     | 
    
         
            +
            }
         
     | 
| 
      
 20 
     | 
    
         
            +
            /**
         
     | 
| 
      
 21 
     | 
    
         
            +
             * @private
         
     | 
| 
      
 22 
     | 
    
         
            +
             */
         
     | 
| 
      
 23 
     | 
    
         
            +
            interface ImageCompleteAction extends CompleteAction, ImageAction {
         
     | 
| 
      
 24 
     | 
    
         
            +
            }
         
     | 
| 
      
 25 
     | 
    
         
            +
            /**
         
     | 
| 
      
 26 
     | 
    
         
            +
             * @private
         
     | 
| 
      
 27 
     | 
    
         
            +
             */
         
     | 
| 
      
 28 
     | 
    
         
            +
            interface ImageFailedAction extends FailedAction, ImageAction {
         
     | 
| 
      
 29 
     | 
    
         
            +
            }
         
     | 
| 
      
 30 
     | 
    
         
            +
            /**
         
     | 
| 
      
 31 
     | 
    
         
            +
             * @private
         
     | 
| 
      
 32 
     | 
    
         
            +
             */
         
     | 
| 
      
 33 
     | 
    
         
            +
            interface ImageRemoveAction extends RemoveAction, ImageAction {
         
     | 
| 
      
 34 
     | 
    
         
            +
            }
         
     | 
| 
      
 35 
     | 
    
         
            +
            /**
         
     | 
| 
      
 36 
     | 
    
         
            +
             * @private
         
     | 
| 
      
 37 
     | 
    
         
            +
             */
         
     | 
| 
      
 38 
     | 
    
         
            +
            interface ImageClearAction extends ClearAction, ImageAction {
         
     | 
| 
      
 39 
     | 
    
         
            +
            }
         
     | 
| 
      
 40 
     | 
    
         
            +
            /**
         
     | 
| 
      
 41 
     | 
    
         
            +
             * @private
         
     | 
| 
      
 42 
     | 
    
         
            +
             */
         
     | 
| 
      
 43 
     | 
    
         
            +
            export type ImageActions = ImageSetAction | ImageProgressAction | ImageCompleteAction | ImageFailedAction | ImageRemoveAction | ImageClearAction;
         
     | 
| 
      
 44 
     | 
    
         
            +
            /**
         
     | 
| 
      
 45 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 46 
     | 
    
         
            +
             */
         
     | 
| 
      
 47 
     | 
    
         
            +
            export declare const ImageUploadReducer: (state: Record<string, AttachmentUpload[]> | undefined, action: ImageActions) => Record<string, AttachmentUpload[]> | undefined;
         
     | 
| 
      
 48 
     | 
    
         
            +
            export {};
         
     | 
| 
      
 49 
     | 
    
         
            +
            //# sourceMappingURL=ImageUploadReducer.d.ts.map
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            // Copyright (c) Microsoft Corporation.
         
     | 
| 
      
 2 
     | 
    
         
            +
            // Licensed under the MIT License.
         
     | 
| 
      
 3 
     | 
    
         
            +
            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { AttachmentUploadActionType } from '../file-sharing/AttachmentUpload';
         
     | 
| 
      
 5 
     | 
    
         
            +
            /* @conditional-compile-remove(rich-text-editor-image-upload) */
         
     | 
| 
      
 6 
     | 
    
         
            +
            /**
         
     | 
| 
      
 7 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 8 
     | 
    
         
            +
             */
         
     | 
| 
      
 9 
     | 
    
         
            +
            export const ImageUploadReducer = (state, action) => {
         
     | 
| 
      
 10 
     | 
    
         
            +
                const messageId = action.messageId;
         
     | 
| 
      
 11 
     | 
    
         
            +
                const messageState = state && state[messageId];
         
     | 
| 
      
 12 
     | 
    
         
            +
                switch (action.type) {
         
     | 
| 
      
 13 
     | 
    
         
            +
                    case AttachmentUploadActionType.Set:
         
     | 
| 
      
 14 
     | 
    
         
            +
                        if (!messageState || messageState.length === 0) {
         
     | 
| 
      
 15 
     | 
    
         
            +
                            return Object.assign(Object.assign({}, state), { [messageId]: action.newUploads });
         
     | 
| 
      
 16 
     | 
    
         
            +
                        }
         
     | 
| 
      
 17 
     | 
    
         
            +
                        return Object.assign(Object.assign({}, state), { [messageId]: messageState.filter((v) => !v.metadata.error).concat(action.newUploads) });
         
     | 
| 
      
 18 
     | 
    
         
            +
                    case AttachmentUploadActionType.Completed:
         
     | 
| 
      
 19 
     | 
    
         
            +
                        if (!messageState) {
         
     | 
| 
      
 20 
     | 
    
         
            +
                            return state;
         
     | 
| 
      
 21 
     | 
    
         
            +
                        }
         
     | 
| 
      
 22 
     | 
    
         
            +
                        return Object.assign(Object.assign({}, state), { [messageId]: messageState.map((v) => v.taskId === action.taskId
         
     | 
| 
      
 23 
     | 
    
         
            +
                                ? Object.assign(Object.assign({}, v), { metadata: Object.assign(Object.assign({}, v.metadata), { id: action.id, url: action.url, progress: 1 }) }) : v) });
         
     | 
| 
      
 24 
     | 
    
         
            +
                    case AttachmentUploadActionType.Failed:
         
     | 
| 
      
 25 
     | 
    
         
            +
                        if (!messageState) {
         
     | 
| 
      
 26 
     | 
    
         
            +
                            return state;
         
     | 
| 
      
 27 
     | 
    
         
            +
                        }
         
     | 
| 
      
 28 
     | 
    
         
            +
                        return Object.assign(Object.assign({}, state), { [messageId]: messageState.map((v) => v.taskId === action.taskId
         
     | 
| 
      
 29 
     | 
    
         
            +
                                ? Object.assign(Object.assign({}, v), { metadata: Object.assign(Object.assign({}, v.metadata), { error: {
         
     | 
| 
      
 30 
     | 
    
         
            +
                                            message: action.message
         
     | 
| 
      
 31 
     | 
    
         
            +
                                        } }) }) : v) });
         
     | 
| 
      
 32 
     | 
    
         
            +
                    case AttachmentUploadActionType.Remove:
         
     | 
| 
      
 33 
     | 
    
         
            +
                        if (!messageState) {
         
     | 
| 
      
 34 
     | 
    
         
            +
                            return state;
         
     | 
| 
      
 35 
     | 
    
         
            +
                        }
         
     | 
| 
      
 36 
     | 
    
         
            +
                        return Object.assign(Object.assign({}, state), { [messageId]: messageState.filter((v) => !v.metadata.error).filter((v) => v.metadata.id !== action.id) });
         
     | 
| 
      
 37 
     | 
    
         
            +
                    case AttachmentUploadActionType.Progress:
         
     | 
| 
      
 38 
     | 
    
         
            +
                        if (!messageState) {
         
     | 
| 
      
 39 
     | 
    
         
            +
                            return state;
         
     | 
| 
      
 40 
     | 
    
         
            +
                        }
         
     | 
| 
      
 41 
     | 
    
         
            +
                        return Object.assign(Object.assign({}, state), { [messageId]: messageState.map((v) => v.taskId === action.taskId ? Object.assign(Object.assign({}, v), { metadata: Object.assign(Object.assign({}, v.metadata), { progress: action.progress }) }) : v) });
         
     | 
| 
      
 42 
     | 
    
         
            +
                    case AttachmentUploadActionType.Clear:
         
     | 
| 
      
 43 
     | 
    
         
            +
                        return Object.assign(Object.assign({}, state), { [messageId]: [] });
         
     | 
| 
      
 44 
     | 
    
         
            +
                    default:
         
     | 
| 
      
 45 
     | 
    
         
            +
                        return state;
         
     | 
| 
      
 46 
     | 
    
         
            +
                }
         
     | 
| 
      
 47 
     | 
    
         
            +
            };
         
     | 
| 
      
 48 
     | 
    
         
            +
            //# sourceMappingURL=ImageUploadReducer.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"ImageUploadReducer.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadReducer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\nimport {\n  Action,\n  AttachmentUpload,\n  AttachmentUploadActionType,\n  ProgressAction,\n  CompleteAction,\n  FailedAction,\n  RemoveAction,\n  ClearAction\n} from '../file-sharing/AttachmentUpload';\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\nexport interface ImageAction {\n  messageId: string;\n}\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\ninterface ImageSetAction extends Action, ImageAction {\n  type: AttachmentUploadActionType.Set;\n  newUploads: AttachmentUpload[];\n}\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\ninterface ImageProgressAction extends ProgressAction, ImageAction {}\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\ninterface ImageCompleteAction extends CompleteAction, ImageAction {}\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\ninterface ImageFailedAction extends FailedAction, ImageAction {}\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\ninterface ImageRemoveAction extends RemoveAction, ImageAction {}\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\ninterface ImageClearAction extends ClearAction, ImageAction {}\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @private\n */\nexport type ImageActions =\n  | ImageSetAction\n  | ImageProgressAction\n  | ImageCompleteAction\n  | ImageFailedAction\n  | ImageRemoveAction\n  | ImageClearAction;\n\n/* @conditional-compile-remove(rich-text-editor-image-upload) */\n/**\n * @internal\n */\nexport const ImageUploadReducer = (\n  state: Record<string, AttachmentUpload[]> | undefined,\n  action: ImageActions\n): Record<string, AttachmentUpload[]> | undefined => {\n  const messageId = action.messageId;\n  const messageState = state && state[messageId];\n  switch (action.type) {\n    case AttachmentUploadActionType.Set:\n      if (!messageState || messageState.length === 0) {\n        return { ...state, [messageId]: action.newUploads };\n      }\n      return {\n        ...state,\n        [messageId]: messageState.filter((v) => !v.metadata.error).concat(action.newUploads)\n      };\n\n    case AttachmentUploadActionType.Completed:\n      if (!messageState) {\n        return state;\n      }\n\n      return {\n        ...state,\n        [messageId]: messageState.map((v) =>\n          v.taskId === action.taskId\n            ? { ...v, metadata: { ...v.metadata, id: action.id, url: action.url, progress: 1 } }\n            : v\n        )\n      };\n\n    case AttachmentUploadActionType.Failed:\n      if (!messageState) {\n        return state;\n      }\n      return {\n        ...state,\n        [messageId]: messageState.map((v) =>\n          v.taskId === action.taskId\n            ? {\n                ...v,\n                metadata: {\n                  ...v.metadata,\n                  error: {\n                    message: action.message\n                  }\n                }\n              }\n            : v\n        )\n      };\n\n    case AttachmentUploadActionType.Remove:\n      if (!messageState) {\n        return state;\n      }\n      return {\n        ...state,\n        [messageId]: messageState.filter((v) => !v.metadata.error).filter((v) => v.metadata.id !== action.id)\n      };\n\n    case AttachmentUploadActionType.Progress:\n      if (!messageState) {\n        return state;\n      }\n      return {\n        ...state,\n        [messageId]: messageState.map((v) =>\n          v.taskId === action.taskId ? { ...v, metadata: { ...v.metadata, progress: action.progress } } : v\n        )\n      };\n\n    case AttachmentUploadActionType.Clear:\n      return { ...state, [messageId]: [] };\n    default:\n      return state;\n  }\n};\n"]}
         
     | 
| 
         @@ -1,12 +1,44 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { AttachmentMetadataInProgress } from "../../../../../acs-ui-common/src";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { AttachmentUpload } from '../file-sharing/AttachmentUpload';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { ChatAdapter } from '../adapter/ChatAdapter';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { Dispatch } from 'react';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { ImageActions } from './ImageUploadReducer';
         
     | 
| 
       1 
6 
     | 
    
         
             
            /**
         
     | 
| 
       2 
7 
     | 
    
         
             
             * @private
         
     | 
| 
       3 
8 
     | 
    
         
             
             */
         
     | 
| 
       4 
9 
     | 
    
         
             
            export declare const getInlineImageData: (image: string) => Promise<Blob | undefined>;
         
     | 
| 
       5 
10 
     | 
    
         
             
            /**
         
     | 
| 
       6 
11 
     | 
    
         
             
             * @internal
         
     | 
| 
       7 
     | 
    
         
            -
             * Exported only for unit testing
         
     | 
| 
       8 
12 
     | 
    
         
             
             */
         
     | 
| 
       9 
13 
     | 
    
         
             
            export declare const removeImageTags: (event: {
         
     | 
| 
       10 
14 
     | 
    
         
             
                content: DocumentFragment;
         
     | 
| 
       11 
15 
     | 
    
         
             
            }) => void;
         
     | 
| 
      
 16 
     | 
    
         
            +
            /**
         
     | 
| 
      
 17 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 18 
     | 
    
         
            +
             */
         
     | 
| 
      
 19 
     | 
    
         
            +
            export declare const getEditBoxMessagesImageUploadsInProgress: (editBoxInlineImageUploads: Record<string, AttachmentUpload[]> | undefined) => Record<string, AttachmentMetadataInProgress[]> | undefined;
         
     | 
| 
      
 20 
     | 
    
         
            +
            /**
         
     | 
| 
      
 21 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 22 
     | 
    
         
            +
             */
         
     | 
| 
      
 23 
     | 
    
         
            +
            export declare const getSendBoxImageUploadsInProgress: (sendBoxInlineImageUploads: Record<string, AttachmentUpload[]> | undefined) => AttachmentMetadataInProgress[] | undefined;
         
     | 
| 
      
 24 
     | 
    
         
            +
            /**
         
     | 
| 
      
 25 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 26 
     | 
    
         
            +
             */
         
     | 
| 
      
 27 
     | 
    
         
            +
            export declare const onUploadInlineImageForEditBox: (image: string, fileName: string, messageId: string, adapter: ChatAdapter, handleEditBoxInlineImageUploadAction: Dispatch<ImageActions>) => Promise<void>;
         
     | 
| 
      
 28 
     | 
    
         
            +
            /**
         
     | 
| 
      
 29 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 30 
     | 
    
         
            +
             */
         
     | 
| 
      
 31 
     | 
    
         
            +
            export declare const onUploadInlineImageForSendBox: (image: string, fileName: string, adapter: ChatAdapter, handleSendBoxInlineImageUploadAction: Dispatch<ImageActions>) => Promise<void>;
         
     | 
| 
      
 32 
     | 
    
         
            +
            /**
         
     | 
| 
      
 33 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 34 
     | 
    
         
            +
             */
         
     | 
| 
      
 35 
     | 
    
         
            +
            export declare const cancelInlineImageUpload: (imageId: string, imageUpload: AttachmentUpload | undefined, messageId: string, inlineImageUploadActionHandler: Dispatch<ImageActions>, adapter: ChatAdapter) => void;
         
     | 
| 
      
 36 
     | 
    
         
            +
            /**
         
     | 
| 
      
 37 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 38 
     | 
    
         
            +
             */
         
     | 
| 
      
 39 
     | 
    
         
            +
            export declare const onCancelInlineImageUploadHandlerForEditBox: (imageId: string, messageId: string, editBoxInlineImageUploads: Record<string, AttachmentUpload[]> | undefined, adapter: ChatAdapter, handleEditBoxInlineImageUploadAction: Dispatch<ImageActions>) => void;
         
     | 
| 
      
 40 
     | 
    
         
            +
            /**
         
     | 
| 
      
 41 
     | 
    
         
            +
             * @internal
         
     | 
| 
      
 42 
     | 
    
         
            +
             */
         
     | 
| 
      
 43 
     | 
    
         
            +
            export declare const onCancelInlineImageUploadHandlerForSendBox: (imageId: string, sendBoxInlineImageUploads: Record<string, AttachmentUpload[]> | undefined, adapter: ChatAdapter, handleSendBoxInlineImageUploadAction: Dispatch<ImageActions>) => void;
         
     | 
| 
       12 
44 
     | 
    
         
             
            //# sourceMappingURL=ImageUploadUtils.d.ts.map
         
     |