stream-chat-react 10.9.1 → 10.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.full-bundle.js +2212 -3323
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +5 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/FileAttachment.js +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.js +2 -0
- package/dist/components/Channel/Channel.d.ts +16 -4
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +23 -8
- package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
- package/dist/components/Channel/hooks/useCreateChannelStateContext.js +9 -1
- package/dist/components/Channel/hooks/useEditMessageHandler.d.ts +3 -3
- package/dist/components/Channel/hooks/useEditMessageHandler.d.ts.map +1 -1
- package/dist/components/Channel/hooks/useEditMessageHandler.js +3 -3
- package/dist/components/MessageInput/AttachmentPreviewList.js +1 -1
- package/dist/components/MessageInput/DropzoneProvider.js +1 -1
- package/dist/components/MessageInput/EditMessageForm.js +1 -1
- package/dist/components/MessageInput/LinkPreviewList.d.ts +6 -0
- package/dist/components/MessageInput/LinkPreviewList.d.ts.map +1 -0
- package/dist/components/MessageInput/LinkPreviewList.js +34 -0
- package/dist/components/MessageInput/MessageInput.d.ts +6 -3
- package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.js +14 -12
- package/dist/components/MessageInput/MessageInputSmall.js +1 -1
- package/dist/components/MessageInput/UploadsPreview.js +1 -1
- package/dist/components/MessageInput/hooks/useAttachments.d.ts +1 -1
- package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +10 -1
- package/dist/components/MessageInput/hooks/useFileState.d.ts +1 -1
- package/dist/components/MessageInput/hooks/useFileState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useLinkPreviews.d.ts +31 -0
- package/dist/components/MessageInput/hooks/useLinkPreviews.d.ts.map +1 -0
- package/dist/components/MessageInput/hooks/useLinkPreviews.js +120 -0
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +36 -36
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputState.js +51 -13
- package/dist/components/MessageInput/hooks/useMessageInputText.d.ts +2 -1
- package/dist/components/MessageInput/hooks/useMessageInputText.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputText.js +3 -2
- package/dist/components/MessageInput/hooks/usePasteHandler.d.ts +3 -2
- package/dist/components/MessageInput/hooks/usePasteHandler.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/usePasteHandler.js +5 -2
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts +2 -1
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useSubmitHandler.js +38 -7
- package/dist/components/MessageInput/hooks/utils.d.ts +1 -1
- package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.d.ts +1 -0
- package/dist/components/MessageInput/icons.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.js +2 -0
- package/dist/components/MessageInput/index.d.ts +1 -0
- package/dist/components/MessageInput/index.d.ts.map +1 -1
- package/dist/components/MessageInput/index.js +1 -0
- package/dist/components/MessageInput/types.d.ts +57 -0
- package/dist/components/MessageInput/types.d.ts.map +1 -0
- package/dist/components/MessageInput/types.js +19 -0
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +3 -1
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts +15 -0
- package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/FileIcon/FileIcon.js +49 -0
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.d.ts +23 -0
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.js +83 -0
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.d.ts +25 -0
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.js +194 -0
- package/dist/components/ReactFileUtilities/FileIcon/iconMap.d.ts +19 -0
- package/dist/components/ReactFileUtilities/FileIcon/iconMap.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/FileIcon/iconMap.js +96 -0
- package/dist/components/ReactFileUtilities/FileIcon/index.d.ts +2 -0
- package/dist/components/ReactFileUtilities/FileIcon/index.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/FileIcon/index.js +1 -0
- package/dist/components/ReactFileUtilities/FileIcon/mimeTypes.d.ts +8 -0
- package/dist/components/ReactFileUtilities/FileIcon/mimeTypes.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/FileIcon/mimeTypes.js +146 -0
- package/dist/components/ReactFileUtilities/FilePreviewer.d.ts +14 -0
- package/dist/components/ReactFileUtilities/FilePreviewer.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/FilePreviewer.js +31 -0
- package/dist/components/ReactFileUtilities/FileUploadButton.d.ts +13 -0
- package/dist/components/ReactFileUtilities/FileUploadButton.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/FileUploadButton.js +17 -0
- package/dist/components/ReactFileUtilities/IconButton.d.ts +9 -0
- package/dist/components/ReactFileUtilities/IconButton.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/IconButton.js +8 -0
- package/dist/components/ReactFileUtilities/ImageDropzone.d.ts +17 -0
- package/dist/components/ReactFileUtilities/ImageDropzone.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/ImageDropzone.js +53 -0
- package/dist/components/ReactFileUtilities/ImagePreviewer.d.ts +21 -0
- package/dist/components/ReactFileUtilities/ImagePreviewer.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/ImagePreviewer.js +24 -0
- package/dist/components/ReactFileUtilities/ImageUploadButton.d.ts +12 -0
- package/dist/components/ReactFileUtilities/ImageUploadButton.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/ImageUploadButton.js +13 -0
- package/dist/components/ReactFileUtilities/LoadingIndicator.d.ts +8 -0
- package/dist/components/ReactFileUtilities/LoadingIndicator.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/LoadingIndicator.js +12 -0
- package/dist/components/ReactFileUtilities/Thumbnail.d.ts +10 -0
- package/dist/components/ReactFileUtilities/Thumbnail.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/Thumbnail.js +11 -0
- package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.d.ts +6 -0
- package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.js +9 -0
- package/dist/components/ReactFileUtilities/UploadButton.d.ts +7 -0
- package/dist/components/ReactFileUtilities/UploadButton.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/UploadButton.js +29 -0
- package/dist/components/ReactFileUtilities/icons/AttachmentIcon.d.ts +5 -0
- package/dist/components/ReactFileUtilities/icons/AttachmentIcon.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/icons/AttachmentIcon.js +7 -0
- package/dist/components/ReactFileUtilities/icons/CloseIcon.d.ts +2 -0
- package/dist/components/ReactFileUtilities/icons/CloseIcon.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/icons/CloseIcon.js +11 -0
- package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.d.ts +3 -0
- package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.js +16 -0
- package/dist/components/ReactFileUtilities/icons/PictureIcon.d.ts +5 -0
- package/dist/components/ReactFileUtilities/icons/PictureIcon.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/icons/PictureIcon.js +6 -0
- package/dist/components/ReactFileUtilities/icons/RetryIcon.d.ts +2 -0
- package/dist/components/ReactFileUtilities/icons/RetryIcon.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/icons/RetryIcon.js +3 -0
- package/dist/components/ReactFileUtilities/icons/index.d.ts +6 -0
- package/dist/components/ReactFileUtilities/icons/index.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/icons/index.js +5 -0
- package/dist/components/ReactFileUtilities/index.d.ts +14 -0
- package/dist/components/ReactFileUtilities/index.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/index.js +13 -0
- package/dist/components/ReactFileUtilities/types.d.ts +31 -0
- package/dist/components/ReactFileUtilities/types.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/types.js +1 -0
- package/dist/components/ReactFileUtilities/utils.d.ts +5 -0
- package/dist/components/ReactFileUtilities/utils.d.ts.map +1 -0
- package/dist/components/ReactFileUtilities/utils.js +157 -0
- package/dist/context/ChannelActionContext.d.ts +3 -3
- package/dist/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/context/ChannelStateContext.d.ts +6 -1
- package/dist/context/ChannelStateContext.d.ts.map +1 -1
- package/dist/context/ComponentContext.d.ts +3 -0
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.d.ts +22 -1
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- package/dist/css/index.css +1 -1
- package/dist/css/index.css.map +1 -1
- package/dist/css/v2/index.css +1 -1
- package/dist/css/v2/index.css.map +1 -1
- package/dist/css/v2/index.layout.css +1 -1
- package/dist/css/v2/index.layout.css.map +1 -1
- package/dist/index.cjs.js +27297 -26274
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/_base.scss +17 -0
- package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +1 -0
- package/dist/scss/v2/LinkPreview/LinkPreview-layout.scss +49 -0
- package/dist/scss/v2/LinkPreview/LinkPreview-theme.scss +17 -0
- package/dist/scss/v2/LinkPreview/index.scss +2 -0
- package/dist/scss/v2/_base.scss +17 -0
- package/dist/scss/v2/index.layout.scss +1 -0
- package/dist/scss/v2/index.scss +1 -0
- package/dist/types/types.d.ts +12 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +8 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { FileIcon } from '
|
|
2
|
+
import { FileIcon } from '../ReactFileUtilities';
|
|
3
3
|
import { DownloadButton } from './DownloadButton';
|
|
4
4
|
import { FileSizeIndicator } from './FileSizeIndicator';
|
|
5
5
|
import { SafeAnchor } from '../SafeAnchor/SafeAnchor';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/Textarea.jsx"],"names":[],"mappings":"AAmBA;IACE;;;;;;;MAOE;
|
|
1
|
+
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/Textarea.jsx"],"names":[],"mappings":"AAmBA;IACE;;;;;;;MAOE;IA6WF;;OAEG;IACH;;;aAMC;IApXD,wBA4BC;IAZC;;;;;;;;;;;MAWC;IAIH;;;aAOE;IAGF,2BAOE;IAEF,8CAKE;IAEF,+BAIE;IAEF;;;;;;OAMG;IACH,8CAC6E;IAE7E,qCAUE;IAEF,+BAcE;IAEF,qBAQE;IAEF,yBA6BE;IAEF,mCAqEE;IAEF,qEAuBE;IAEF,sEA2DE;IAEF,uDAQE;IAEF,mCA0CE;IAEF,6CAQE;IAYF;;OAEG;IACH,+BAQE;IAEF;;MA6CE;IAEF,mCAME;IAEF,iCA+EE;IAEF,iCASE;IAGF,yCA0BE;IAEF,6BAAmD;IAEnD,qCAiBE;IAEF;;;;;;;;MAoCE;IAEF,uCAEE;IADA,iBAA0B;IAG5B,oDA2CC;IAED,sBA2EC;IATS,oDAAsB;CAUjC"}
|
|
@@ -50,6 +50,7 @@ var ReactTextareaAutocomplete = /** @class */ (function (_super) {
|
|
|
50
50
|
__extends(ReactTextareaAutocomplete, _super);
|
|
51
51
|
function ReactTextareaAutocomplete(props) {
|
|
52
52
|
var _this = _super.call(this, props) || this;
|
|
53
|
+
// FIXME: unused method
|
|
53
54
|
_this.getSelectionPosition = function () {
|
|
54
55
|
if (!_this.textareaRef)
|
|
55
56
|
return null;
|
|
@@ -58,6 +59,7 @@ var ReactTextareaAutocomplete = /** @class */ (function (_super) {
|
|
|
58
59
|
selectionStart: _this.textareaRef.selectionStart,
|
|
59
60
|
};
|
|
60
61
|
};
|
|
62
|
+
// FIXME: unused method
|
|
61
63
|
_this.getSelectedText = function () {
|
|
62
64
|
if (!_this.textareaRef)
|
|
63
65
|
return null;
|
|
@@ -7,7 +7,8 @@ import { EmojiContextValue } from '../../context/EmojiContext';
|
|
|
7
7
|
import type { Data as EmojiMartData } from 'emoji-mart';
|
|
8
8
|
import type { MessageProps } from '../Message/types';
|
|
9
9
|
import type { MessageInputProps } from '../MessageInput/MessageInput';
|
|
10
|
-
import type { CustomTrigger, DefaultStreamChatGenerics, GiphyVersions, ImageAttachmentSizeHandler, VideoAttachmentSizeHandler } from '../../types/types';
|
|
10
|
+
import type { CustomTrigger, DefaultStreamChatGenerics, GiphyVersions, ImageAttachmentSizeHandler, SendMessageOptions, UpdateMessageOptions, VideoAttachmentSizeHandler } from '../../types/types';
|
|
11
|
+
import type { URLEnrichmentConfig } from '../MessageInput/hooks/useLinkPreviews';
|
|
11
12
|
export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger> = {
|
|
12
13
|
/** List of accepted file types */
|
|
13
14
|
acceptedFiles?: string[];
|
|
@@ -15,6 +16,8 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
15
16
|
activeUnreadHandler?: (unread: number, documentTitle: string) => void;
|
|
16
17
|
/** Custom UI component to display a message attachment, defaults to and accepts same props as: [Attachment](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Attachment/Attachment.tsx) */
|
|
17
18
|
Attachment?: ComponentContextValue<StreamChatGenerics>['Attachment'];
|
|
19
|
+
/** Custom UI component to display a attachment previews in MessageInput, defaults to and accepts same props as: [Attachment](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/AttachmentPreviewList.tsx) */
|
|
20
|
+
AttachmentPreviewList?: ComponentContextValue<StreamChatGenerics>['AttachmentPreviewList'];
|
|
18
21
|
/** Optional UI component to override the default suggestion Header component, defaults to and accepts same props as: [Header](https://github.com/GetStream/stream-chat-react/blob/master/src/components/AutoCompleteTextarea/Header.tsx) */
|
|
19
22
|
AutocompleteSuggestionHeader?: ComponentContextValue<StreamChatGenerics>['AutocompleteSuggestionHeader'];
|
|
20
23
|
/** Optional UI component to override the default suggestion Item component, defaults to and accepts same props as: [Item](https://github.com/GetStream/stream-chat-react/blob/master/src/components/AutoCompleteTextarea/Item.js) */
|
|
@@ -32,9 +35,9 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
32
35
|
/** Custom action handler to override the default `channel.markRead` request function (advanced usage only) */
|
|
33
36
|
doMarkReadRequest?: (channel: StreamChannel<StreamChatGenerics>) => Promise<MessageResponse<StreamChatGenerics>> | void;
|
|
34
37
|
/** Custom action handler to override the default `channel.sendMessage` request function (advanced usage only) */
|
|
35
|
-
doSendMessageRequest?: (channelId: string, message: Message<StreamChatGenerics
|
|
38
|
+
doSendMessageRequest?: (channelId: string, message: Message<StreamChatGenerics>, options?: SendMessageOptions) => ReturnType<StreamChannel<StreamChatGenerics>['sendMessage']> | void;
|
|
36
39
|
/** Custom action handler to override the default `client.updateMessage` request function (advanced usage only) */
|
|
37
|
-
doUpdateMessageRequest?: (cid: string, updatedMessage: UpdatedMessage<StreamChatGenerics
|
|
40
|
+
doUpdateMessageRequest?: (cid: string, updatedMessage: UpdatedMessage<StreamChatGenerics>, options?: UpdateMessageOptions) => ReturnType<StreamChat<StreamChatGenerics>['updateMessage']>;
|
|
38
41
|
/** If true, chat users will be able to drag and drop file uploads to the entire channel window */
|
|
39
42
|
dragAndDropWindow?: boolean;
|
|
40
43
|
/** Custom UI component to override default edit message input, defaults to and accepts same props as: [EditMessageForm](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/EditMessageForm.tsx) */
|
|
@@ -51,8 +54,15 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
51
54
|
EmojiPicker?: EmojiContextValue['EmojiPicker'];
|
|
52
55
|
/** Custom UI component to be shown if no active channel is set, defaults to null and skips rendering the Channel component */
|
|
53
56
|
EmptyPlaceholder?: React.ReactElement;
|
|
54
|
-
/** Custom UI component to be displayed when the `MessageList` is empty,
|
|
57
|
+
/** Custom UI component to be displayed when the `MessageList` is empty, defaults to and accepts same props as: [EmptyStateIndicator](https://github.com/GetStream/stream-chat-react/blob/master/src/components/EmptyStateIndicator/EmptyStateIndicator.tsx) */
|
|
55
58
|
EmptyStateIndicator?: ComponentContextValue<StreamChatGenerics>['EmptyStateIndicator'];
|
|
59
|
+
/** A global flag to toggle the URL enrichment and link previews in `MessageInput` components.
|
|
60
|
+
* By default, the feature is disabled. Can be overridden on Thread, MessageList level through additionalMessageInputProps
|
|
61
|
+
* or directly on MessageInput level through urlEnrichmentConfig.
|
|
62
|
+
*/
|
|
63
|
+
enrichURLForPreview?: URLEnrichmentConfig['enrichURLForPreview'];
|
|
64
|
+
/** Global configuration for link preview generation in all the MessageInput components */
|
|
65
|
+
enrichURLForPreviewConfig?: Omit<URLEnrichmentConfig, 'enrichURLForPreview'>;
|
|
56
66
|
/** Custom UI component for file upload icon, defaults to and accepts same props as: [FileUploadIcon](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.tsx) */
|
|
57
67
|
FileUploadIcon?: ComponentContextValue<StreamChatGenerics>['FileUploadIcon'];
|
|
58
68
|
/** Custom UI component to render a Giphy preview in the `VirtualizedMessageList` */
|
|
@@ -65,6 +75,8 @@ export declare type ChannelProps<StreamChatGenerics extends DefaultStreamChatGen
|
|
|
65
75
|
imageAttachmentSizeHandler?: ImageAttachmentSizeHandler;
|
|
66
76
|
/** Custom UI component handling how the message input is rendered, defaults to and accepts the same props as [MessageInputFlat](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/MessageInputFlat.tsx) */
|
|
67
77
|
Input?: ComponentContextValue<StreamChatGenerics>['Input'];
|
|
78
|
+
/** Custom component to render link previews in message input **/
|
|
79
|
+
LinkPreviewList?: ComponentContextValue<StreamChatGenerics>['LinkPreviewList'];
|
|
68
80
|
/** Custom UI component to be shown if the channel query fails, defaults to and accepts same props as: [LoadingErrorIndicator](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Loading/LoadingErrorIndicator.tsx) */
|
|
69
81
|
LoadingErrorIndicator?: React.ComponentType<LoadingErrorIndicatorProps>;
|
|
70
82
|
/** Custom UI component to render while the `MessageList` is loading new messages, defaults to and accepts same props as: [LoadingIndicator](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Loading/LoadingIndicator.tsx) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EAOlB,MAAM,OAAO,CAAC;AAIf,OAAO,EAKL,OAAO,EACP,eAAe,EAEf,OAAO,IAAI,aAAa,EACxB,UAAU,EACV,cAAc,EAEf,MAAM,aAAa,CAAC;AAUrB,OAAO,EAAE,eAAe,EAAuB,MAAM,6BAA6B,CAAC;AAGnF,OAAO,EAEL,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAepB,OAAO,EAAE,qBAAqB,EAAqB,MAAM,gCAAgC,CAAC;AAE1F,OAAO,EAAe,iBAAiB,EAAiB,MAAM,4BAA4B,CAAC;AAc3F,OAAO,KAAK,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,aAAa,EACb,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -111,7 +111,7 @@ var UnMemoizedChannel = function (props) {
|
|
|
111
111
|
};
|
|
112
112
|
var ChannelInner = function (props) {
|
|
113
113
|
var _a;
|
|
114
|
-
var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, _c = props.emojiData, emojiData = _c === void 0 ? defaultEmojiData : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? DefaultLoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? DefaultLoadingIndicator : _e, maxNumberOfFiles = props.maxNumberOfFiles, _f = props.multipleUploads, multipleUploads = _f === void 0 ? true : _f, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _g = props.optionalMessageInputProps, optionalMessageInputProps = _g === void 0 ? {} : _g, skipMessageDataMemoization = props.skipMessageDataMemoization;
|
|
114
|
+
var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, _c = props.emojiData, emojiData = _c === void 0 ? defaultEmojiData : _c, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? DefaultLoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? DefaultLoadingIndicator : _e, maxNumberOfFiles = props.maxNumberOfFiles, _f = props.multipleUploads, multipleUploads = _f === void 0 ? true : _f, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _g = props.optionalMessageInputProps, optionalMessageInputProps = _g === void 0 ? {} : _g, skipMessageDataMemoization = props.skipMessageDataMemoization;
|
|
115
115
|
var _h = useChatContext('Channel'), client = _h.client, customClasses = _h.customClasses, latestMessageDatesByChannels = _h.latestMessageDatesByChannels, mutes = _h.mutes, theme = _h.theme;
|
|
116
116
|
var t = useTranslationContext('Channel').t;
|
|
117
117
|
var _j = useChannelContainerClasses({ customClasses: customClasses }), channelClass = _j.channelClass, chatClass = _j.chatClass, chatContainerClass = _j.chatContainerClass, windowsEmojiClass = _j.windowsEmojiClass;
|
|
@@ -446,7 +446,7 @@ var ChannelInner = function (props) {
|
|
|
446
446
|
});
|
|
447
447
|
};
|
|
448
448
|
var isUserResponseArray = function (output) { var _a; return ((_a = output[0]) === null || _a === void 0 ? void 0 : _a.id) != null; };
|
|
449
|
-
var doSendMessage = function (message, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
|
|
449
|
+
var doSendMessage = function (message, customMessageData, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
450
450
|
var attachments, id, _a, mentioned_users, parent_id, text, mentions, messageData, messageResponse, existingMessage, i, msg, responseTimestamp, existingMessageTimestamp, responseIsTheNewest, error_1, stringError, parsedError;
|
|
451
451
|
var _b, _c;
|
|
452
452
|
return __generator(this, function (_d) {
|
|
@@ -465,11 +465,11 @@ var ChannelInner = function (props) {
|
|
|
465
465
|
_d.trys.push([1, 6, , 7]);
|
|
466
466
|
messageResponse = void 0;
|
|
467
467
|
if (!doSendMessageRequest) return [3 /*break*/, 3];
|
|
468
|
-
return [4 /*yield*/, doSendMessageRequest(channel.cid, messageData)];
|
|
468
|
+
return [4 /*yield*/, doSendMessageRequest(channel.cid, messageData, options)];
|
|
469
469
|
case 2:
|
|
470
470
|
messageResponse = _d.sent();
|
|
471
471
|
return [3 /*break*/, 5];
|
|
472
|
-
case 3: return [4 /*yield*/, channel.sendMessage(messageData)];
|
|
472
|
+
case 3: return [4 /*yield*/, channel.sendMessage(messageData, options)];
|
|
473
473
|
case 4:
|
|
474
474
|
messageResponse = _d.sent();
|
|
475
475
|
_d.label = 5;
|
|
@@ -505,7 +505,7 @@ var ChannelInner = function (props) {
|
|
|
505
505
|
}
|
|
506
506
|
});
|
|
507
507
|
}); };
|
|
508
|
-
var sendMessage = function (_a, customMessageData) {
|
|
508
|
+
var sendMessage = function (_a, customMessageData, options) {
|
|
509
509
|
var _b = _a.attachments, attachments = _b === void 0 ? [] : _b, _c = _a.mentioned_users, mentioned_users = _c === void 0 ? [] : _c, parent = _a.parent, _d = _a.text, text = _d === void 0 ? '' : _d;
|
|
510
510
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
511
511
|
var messagePreview;
|
|
@@ -516,7 +516,7 @@ var ChannelInner = function (props) {
|
|
|
516
516
|
channel.state.filterErrorMessages();
|
|
517
517
|
messagePreview = __assign({ __html: text, attachments: attachments, created_at: new Date(), html: text, id: (_e = customMessageData === null || customMessageData === void 0 ? void 0 : customMessageData.id) !== null && _e !== void 0 ? _e : "".concat(client.userID, "-").concat(nanoid()), mentioned_users: mentioned_users, reactions: [], status: 'sending', text: text, type: 'regular', user: client.user }, ((parent === null || parent === void 0 ? void 0 : parent.id) ? { parent_id: parent.id } : null));
|
|
518
518
|
updateMessage(messagePreview);
|
|
519
|
-
return [4 /*yield*/, doSendMessage(messagePreview, customMessageData)];
|
|
519
|
+
return [4 /*yield*/, doSendMessage(messagePreview, customMessageData, options)];
|
|
520
520
|
case 1:
|
|
521
521
|
_f.sent();
|
|
522
522
|
return [2 /*return*/];
|
|
@@ -529,6 +529,10 @@ var ChannelInner = function (props) {
|
|
|
529
529
|
switch (_a.label) {
|
|
530
530
|
case 0:
|
|
531
531
|
updateMessage(__assign(__assign({}, message), { errorStatusCode: undefined, status: 'sending' }));
|
|
532
|
+
if (message.attachments) {
|
|
533
|
+
// remove scraped attachments added during the message composition in MessageInput to prevent sync issues
|
|
534
|
+
message.attachments = message.attachments.filter(function (attachment) { return !attachment.og_scrape_url; });
|
|
535
|
+
}
|
|
532
536
|
return [4 /*yield*/, doSendMessage(message)];
|
|
533
537
|
case 1:
|
|
534
538
|
_a.sent();
|
|
@@ -611,7 +615,7 @@ var ChannelInner = function (props) {
|
|
|
611
615
|
var onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
|
|
612
616
|
var editMessage = useEditMessageHandler(doUpdateMessageRequest);
|
|
613
617
|
var typing = state.typing, restState = __rest(state, ["typing"]);
|
|
614
|
-
var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, dragAndDropWindow: dragAndDropWindow, giphyVersion: props.giphyVersion || 'fixed_height', imageAttachmentSizeHandler: props.imageAttachmentSizeHandler || getImageAttachmentConfiguration, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, quotedMessage: quotedMessage, shouldGenerateVideoThumbnail: props.shouldGenerateVideoThumbnail || true, videoAttachmentSizeHandler: props.videoAttachmentSizeHandler || getVideoAttachmentConfiguration, watcher_count: state.watcherCount }));
|
|
618
|
+
var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, debounceURLEnrichmentMs: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.debounceURLEnrichmentMs, dragAndDropWindow: dragAndDropWindow, enrichURLForPreview: props.enrichURLForPreview, findURLFn: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.findURLFn, giphyVersion: props.giphyVersion || 'fixed_height', imageAttachmentSizeHandler: props.imageAttachmentSizeHandler || getImageAttachmentConfiguration, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, onLinkPreviewDismissed: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.onLinkPreviewDismissed, quotedMessage: quotedMessage, shouldGenerateVideoThumbnail: props.shouldGenerateVideoThumbnail || true, videoAttachmentSizeHandler: props.videoAttachmentSizeHandler || getVideoAttachmentConfiguration, watcher_count: state.watcherCount }));
|
|
615
619
|
var channelActionContextValue = useMemo(function () { return ({
|
|
616
620
|
addNotification: addNotification,
|
|
617
621
|
closeThread: closeThread,
|
|
@@ -631,9 +635,19 @@ var ChannelInner = function (props) {
|
|
|
631
635
|
setQuotedMessage: setQuotedMessage,
|
|
632
636
|
skipMessageDataMemoization: skipMessageDataMemoization,
|
|
633
637
|
updateMessage: updateMessage,
|
|
634
|
-
}); }, [
|
|
638
|
+
}); }, [
|
|
639
|
+
channel.cid,
|
|
640
|
+
enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.findURLFn,
|
|
641
|
+
enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.onLinkPreviewDismissed,
|
|
642
|
+
loadMore,
|
|
643
|
+
loadMoreNewer,
|
|
644
|
+
quotedMessage,
|
|
645
|
+
jumpToMessage,
|
|
646
|
+
jumpToLatestMessage,
|
|
647
|
+
]);
|
|
635
648
|
var componentContextValue = useMemo(function () { return ({
|
|
636
649
|
Attachment: props.Attachment || DefaultAttachment,
|
|
650
|
+
AttachmentPreviewList: props.AttachmentPreviewList,
|
|
637
651
|
AutocompleteSuggestionHeader: props.AutocompleteSuggestionHeader,
|
|
638
652
|
AutocompleteSuggestionItem: props.AutocompleteSuggestionItem,
|
|
639
653
|
AutocompleteSuggestionList: props.AutocompleteSuggestionList,
|
|
@@ -647,6 +661,7 @@ var ChannelInner = function (props) {
|
|
|
647
661
|
GiphyPreviewMessage: props.GiphyPreviewMessage,
|
|
648
662
|
HeaderComponent: props.HeaderComponent,
|
|
649
663
|
Input: props.Input,
|
|
664
|
+
LinkPreviewList: props.LinkPreviewList,
|
|
650
665
|
LoadingIndicator: props.LoadingIndicator,
|
|
651
666
|
Message: props.Message || MessageSimple,
|
|
652
667
|
MessageDeleted: props.MessageDeleted,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateChannelStateContext.d.ts","sourceRoot":"","sources":["../../../../src/components/Channel/hooks/useCreateChannelStateContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,4BAA4B;8BAIX,MAAM,EAAE;;
|
|
1
|
+
{"version":3,"file":"useCreateChannelStateContext.d.ts","sourceRoot":"","sources":["../../../../src/components/Channel/hooks/useCreateChannelStateContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,4BAA4B;8BAIX,MAAM,EAAE;;kDA8JrC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { useMemo } from 'react';
|
|
|
2
2
|
import { isDate, isDayOrMoment } from '../../../context/TranslationContext';
|
|
3
3
|
export var useCreateChannelStateContext = function (value) {
|
|
4
4
|
var _a;
|
|
5
|
-
var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, dragAndDropWindow = value.dragAndDropWindow, giphyVersion = value.giphyVersion, error = value.error, hasMore = value.hasMore, hasMoreNewer = value.hasMoreNewer, imageAttachmentSizeHandler = value.imageAttachmentSizeHandler, suppressAutoscroll = value.suppressAutoscroll, highlightedMessageId = value.highlightedMessageId, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _c = value.messages, messages = _c === void 0 ? [] : _c, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _d = value.read, read = _d === void 0 ? {} : _d, shouldGenerateVideoThumbnail = value.shouldGenerateVideoThumbnail, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _e = value.threadMessages, threadMessages = _e === void 0 ? [] : _e, videoAttachmentSizeHandler = value.videoAttachmentSizeHandler, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
|
|
5
|
+
var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, debounceURLEnrichmentMs = value.debounceURLEnrichmentMs, dragAndDropWindow = value.dragAndDropWindow, enrichURLForPreview = value.enrichURLForPreview, giphyVersion = value.giphyVersion, error = value.error, findURLFn = value.findURLFn, hasMore = value.hasMore, hasMoreNewer = value.hasMoreNewer, imageAttachmentSizeHandler = value.imageAttachmentSizeHandler, suppressAutoscroll = value.suppressAutoscroll, highlightedMessageId = value.highlightedMessageId, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _c = value.messages, messages = _c === void 0 ? [] : _c, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, onLinkPreviewDismissed = value.onLinkPreviewDismissed, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _d = value.read, read = _d === void 0 ? {} : _d, shouldGenerateVideoThumbnail = value.shouldGenerateVideoThumbnail, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _e = value.threadMessages, threadMessages = _e === void 0 ? [] : _e, videoAttachmentSizeHandler = value.videoAttachmentSizeHandler, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
|
|
6
6
|
var channelId = channel.cid;
|
|
7
7
|
var lastRead = channel.initialized && ((_a = channel.lastRead()) === null || _a === void 0 ? void 0 : _a.getTime());
|
|
8
8
|
var membersLength = Object.keys(members || []).length;
|
|
@@ -47,8 +47,11 @@ export var useCreateChannelStateContext = function (value) {
|
|
|
47
47
|
channel: channel,
|
|
48
48
|
channelCapabilities: channelCapabilities,
|
|
49
49
|
channelConfig: channelConfig,
|
|
50
|
+
debounceURLEnrichmentMs: debounceURLEnrichmentMs,
|
|
50
51
|
dragAndDropWindow: dragAndDropWindow,
|
|
52
|
+
enrichURLForPreview: enrichURLForPreview,
|
|
51
53
|
error: error,
|
|
54
|
+
findURLFn: findURLFn,
|
|
52
55
|
giphyVersion: giphyVersion,
|
|
53
56
|
hasMore: hasMore,
|
|
54
57
|
hasMoreNewer: hasMoreNewer,
|
|
@@ -62,6 +65,7 @@ export var useCreateChannelStateContext = function (value) {
|
|
|
62
65
|
multipleUploads: multipleUploads,
|
|
63
66
|
mutes: mutes,
|
|
64
67
|
notifications: notifications,
|
|
68
|
+
onLinkPreviewDismissed: onLinkPreviewDismissed,
|
|
65
69
|
pinnedMessages: pinnedMessages,
|
|
66
70
|
quotedMessage: quotedMessage,
|
|
67
71
|
read: read,
|
|
@@ -77,7 +81,10 @@ export var useCreateChannelStateContext = function (value) {
|
|
|
77
81
|
watchers: watchers,
|
|
78
82
|
}); }, [
|
|
79
83
|
channelId,
|
|
84
|
+
debounceURLEnrichmentMs,
|
|
85
|
+
enrichURLForPreview,
|
|
80
86
|
error,
|
|
87
|
+
findURLFn,
|
|
81
88
|
hasMore,
|
|
82
89
|
hasMoreNewer,
|
|
83
90
|
highlightedMessageId,
|
|
@@ -88,6 +95,7 @@ export var useCreateChannelStateContext = function (value) {
|
|
|
88
95
|
memoizedMessageData,
|
|
89
96
|
memoizedThreadMessageData,
|
|
90
97
|
notificationsLength,
|
|
98
|
+
onLinkPreviewDismissed,
|
|
91
99
|
quotedMessage,
|
|
92
100
|
readUsersLength,
|
|
93
101
|
readUsersLastReads,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { StreamChat, UpdatedMessage } from 'stream-chat';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
3
|
-
declare type UpdateHandler<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = (cid: string, updatedMessage: UpdatedMessage<StreamChatGenerics
|
|
4
|
-
export declare const useEditMessageHandler: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(doUpdateMessageRequest?: UpdateHandler<StreamChatGenerics> | undefined) => (updatedMessage: UpdatedMessage<StreamChatGenerics
|
|
2
|
+
import type { DefaultStreamChatGenerics, UpdateMessageOptions } from '../../../types/types';
|
|
3
|
+
declare type UpdateHandler<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = (cid: string, updatedMessage: UpdatedMessage<StreamChatGenerics>, options?: UpdateMessageOptions) => ReturnType<StreamChat<StreamChatGenerics>['updateMessage']>;
|
|
4
|
+
export declare const useEditMessageHandler: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(doUpdateMessageRequest?: UpdateHandler<StreamChatGenerics> | undefined) => (updatedMessage: UpdatedMessage<StreamChatGenerics>, options?: UpdateMessageOptions) => Promise<import("stream-chat").UpdateMessageAPIResponse<StreamChatGenerics>>;
|
|
5
5
|
export {};
|
|
6
6
|
//# sourceMappingURL=useEditMessageHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditMessageHandler.d.ts","sourceRoot":"","sources":["../../../../src/components/Channel/hooks/useEditMessageHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useEditMessageHandler.d.ts","sourceRoot":"","sources":["../../../../src/components/Channel/hooks/useEditMessageHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5F,aAAK,aAAa,CAChB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,CACF,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,cAAc,CAAC,kBAAkB,CAAC,EAClD,OAAO,CAAC,EAAE,oBAAoB,KAC3B,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AAEjE,eAAO,MAAM,qBAAqB,+NAOsC,oBAAoB,gFAM3F,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useChatContext } from '../../../context/ChatContext';
|
|
2
2
|
export var useEditMessageHandler = function (doUpdateMessageRequest) {
|
|
3
3
|
var _a = useChatContext('useEditMessageHandler'), channel = _a.channel, client = _a.client;
|
|
4
|
-
return function (updatedMessage) {
|
|
4
|
+
return function (updatedMessage, options) {
|
|
5
5
|
if (doUpdateMessageRequest && channel) {
|
|
6
|
-
return Promise.resolve(doUpdateMessageRequest(channel.cid, updatedMessage));
|
|
6
|
+
return Promise.resolve(doUpdateMessageRequest(channel.cid, updatedMessage, options));
|
|
7
7
|
}
|
|
8
|
-
return client.updateMessage(updatedMessage);
|
|
8
|
+
return client.updateMessage(updatedMessage, undefined, options);
|
|
9
9
|
};
|
|
10
10
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
|
-
import { FileIcon } from '
|
|
2
|
+
import { FileIcon } from '../ReactFileUtilities';
|
|
3
3
|
import { useMessageInputContext } from '../../context/MessageInputContext';
|
|
4
4
|
import { useFileState } from './hooks/useFileState';
|
|
5
5
|
import { CloseIcon, DownloadIcon, LoadingIndicatorIcon, RetryIcon } from './icons';
|
|
@@ -10,7 +10,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import React from 'react';
|
|
13
|
-
import { ImageDropzone } from '
|
|
13
|
+
import { ImageDropzone } from '../ReactFileUtilities';
|
|
14
14
|
import { useCooldownTimer } from './hooks/useCooldownTimer';
|
|
15
15
|
import { useCreateMessageInputContext } from './hooks/useCreateMessageInputContext';
|
|
16
16
|
import { useMessageInputState } from './hooks/useMessageInputState';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect } from 'react';
|
|
2
|
-
import { FileUploadButton, ImageDropzone } from '
|
|
2
|
+
import { FileUploadButton, ImageDropzone } from '../ReactFileUtilities';
|
|
3
3
|
import { EmojiPicker } from './EmojiPicker';
|
|
4
4
|
import { EmojiIconSmall as DefaultEmojiIcon, FileUploadIcon as DefaultFileUploadIcon, } from './icons';
|
|
5
5
|
import { UploadsPreview } from './UploadsPreview';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LinkPreview } from './types';
|
|
2
|
+
export declare type LinkPreviewListProps = {
|
|
3
|
+
linkPreviews: LinkPreview[];
|
|
4
|
+
};
|
|
5
|
+
export declare const LinkPreviewList: ({ linkPreviews }: LinkPreviewListProps) => JSX.Element | null;
|
|
6
|
+
//# sourceMappingURL=LinkPreviewList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkPreviewList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/LinkPreviewList.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM3C,oBAAY,oBAAoB,GAAG;IACjC,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,eAAe,qBAAsB,oBAAoB,uBAerE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import { useChannelStateContext, useMessageInputContext } from '../../context';
|
|
4
|
+
import { LinkPreviewState } from './types';
|
|
5
|
+
import { CloseIcon, LinkIcon } from './icons';
|
|
6
|
+
import { PopperTooltip } from '../Tooltip';
|
|
7
|
+
import { useEnterLeaveHandlers } from '../Tooltip/hooks';
|
|
8
|
+
export var LinkPreviewList = function (_a) {
|
|
9
|
+
var linkPreviews = _a.linkPreviews;
|
|
10
|
+
var quotedMessage = useChannelStateContext().quotedMessage;
|
|
11
|
+
var showLinkPreviews = linkPreviews.length > 0 && !quotedMessage;
|
|
12
|
+
if (!showLinkPreviews)
|
|
13
|
+
return null;
|
|
14
|
+
return (React.createElement("div", { className: 'str-chat__link-preview-list' }, Array.from(linkPreviews.values()).map(function (linkPreview) {
|
|
15
|
+
return linkPreview.state === LinkPreviewState.LOADED ? (React.createElement(LinkPreviewCard, { key: linkPreview.og_scrape_url, linkPreview: linkPreview })) : null;
|
|
16
|
+
})));
|
|
17
|
+
};
|
|
18
|
+
var LinkPreviewCard = function (_a) {
|
|
19
|
+
var linkPreview = _a.linkPreview;
|
|
20
|
+
var dismissLinkPreview = useMessageInputContext().dismissLinkPreview;
|
|
21
|
+
var _b = useEnterLeaveHandlers(), handleEnter = _b.handleEnter, handleLeave = _b.handleLeave, tooltipVisible = _b.tooltipVisible;
|
|
22
|
+
var _c = useState(null), referenceElement = _c[0], setReferenceElement = _c[1];
|
|
23
|
+
return (React.createElement("div", { className: clsx('str-chat__link-preview-card', {
|
|
24
|
+
'str-chat__link-preview-card--loading': linkPreview.state === LinkPreviewState.LOADING,
|
|
25
|
+
}), "data-testid": 'link-preview-card' },
|
|
26
|
+
React.createElement(PopperTooltip, { offset: [0, 5], referenceElement: referenceElement, visible: tooltipVisible }, linkPreview.og_scrape_url),
|
|
27
|
+
React.createElement("div", { className: 'str-chat__link-preview-card__icon-container', onMouseEnter: handleEnter, onMouseLeave: handleLeave, ref: setReferenceElement },
|
|
28
|
+
React.createElement(LinkIcon, null)),
|
|
29
|
+
React.createElement("div", { className: 'str-chat__link-preview-card__content' },
|
|
30
|
+
React.createElement("div", { className: 'str-chat__link-preview-card__content-title' }, linkPreview.title),
|
|
31
|
+
React.createElement("div", { className: 'str-chat__link-preview-card__content-description' }, linkPreview.text)),
|
|
32
|
+
React.createElement("button", { className: 'str-chat__link-preview-card__dismiss-button', "data-testid": 'link-preview-card-dismiss-btn', onClick: function () { return dismissLinkPreview(linkPreview); } },
|
|
33
|
+
React.createElement(CloseIcon, null))));
|
|
34
|
+
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Message } from 'stream-chat';
|
|
3
|
-
import { FileUpload, ImageUpload } from './hooks/useMessageInputState';
|
|
4
3
|
import { StreamMessage } from '../../context/ChannelStateContext';
|
|
5
4
|
import type { Channel, SendFileAPIResponse } from 'stream-chat';
|
|
6
5
|
import type { SearchQueryParams } from '../ChannelSearch/hooks/useChannelSearch';
|
|
7
6
|
import type { MessageToSend } from '../../context/ChannelActionContext';
|
|
8
|
-
import type { CustomTrigger, DefaultStreamChatGenerics } from '../../types/types';
|
|
7
|
+
import type { CustomTrigger, DefaultStreamChatGenerics, SendMessageOptions } from '../../types/types';
|
|
8
|
+
import type { URLEnrichmentConfig } from './hooks/useLinkPreviews';
|
|
9
|
+
import type { FileUpload, ImageUpload } from './types';
|
|
9
10
|
export declare type MessageInputProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger> = {
|
|
10
11
|
/** Additional props to be passed to the underlying `AutoCompleteTextarea` component, [available props](https://www.npmjs.com/package/react-textarea-autosize) */
|
|
11
12
|
additionalTextareaProps?: React.TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
@@ -44,7 +45,7 @@ export declare type MessageInputProps<StreamChatGenerics extends DefaultStreamCh
|
|
|
44
45
|
/** If true, disables file uploads for all attachments except for those with type 'image'. Default: false */
|
|
45
46
|
noFiles?: boolean;
|
|
46
47
|
/** Function to override the default submit handler */
|
|
47
|
-
overrideSubmitHandler?: (message: MessageToSend<StreamChatGenerics>, channelCid: string, customMessageData?: Partial<Message<StreamChatGenerics
|
|
48
|
+
overrideSubmitHandler?: (message: MessageToSend<StreamChatGenerics>, channelCid: string, customMessageData?: Partial<Message<StreamChatGenerics>>, options?: SendMessageOptions) => Promise<void> | void;
|
|
48
49
|
/** When replying in a thread, the parent message object */
|
|
49
50
|
parent?: StreamMessage<StreamChatGenerics>;
|
|
50
51
|
/** If true, triggers typing events on text input keystroke */
|
|
@@ -60,6 +61,8 @@ export declare type MessageInputProps<StreamChatGenerics extends DefaultStreamCh
|
|
|
60
61
|
* ```
|
|
61
62
|
*/
|
|
62
63
|
shouldSubmit?: (event: KeyboardEvent) => boolean;
|
|
64
|
+
/** Configuration parameters for link previews. */
|
|
65
|
+
urlEnrichmentConfig?: URLEnrichmentConfig;
|
|
63
66
|
useMentionsTransliteration?: boolean;
|
|
64
67
|
};
|
|
65
68
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInput.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageInput.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageInputFlat.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInputFlat.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MessageInputFlat.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/MessageInputFlat.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,eAAO,MAAM,gBAAgB,qGA8B5B,CAAC"}
|
|
@@ -10,7 +10,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import React, { useEffect, useMemo, useState } from 'react';
|
|
13
|
-
import { FileUploadButton, ImageDropzone, UploadButton } from '
|
|
13
|
+
import { FileUploadButton, ImageDropzone, UploadButton } from '../ReactFileUtilities';
|
|
14
14
|
import clsx from 'clsx';
|
|
15
15
|
import { usePopper } from 'react-popper';
|
|
16
16
|
import { useDropzone } from 'react-dropzone';
|
|
@@ -18,7 +18,8 @@ import { nanoid } from 'nanoid';
|
|
|
18
18
|
import { EmojiPicker } from './EmojiPicker';
|
|
19
19
|
import { EmojiIconLarge as DefaultEmojiIcon, EmojiPickerIcon as DefaultEmojiPickerIcon, FileUploadIconFlat as DefaultFileUploadIcon, SendButton as DefaultSendButton, UploadIcon as DefaultUploadIcon, } from './icons';
|
|
20
20
|
import { QuotedMessagePreview as DefaultQuotedMessagePreview, QuotedMessagePreviewHeader, } from './QuotedMessagePreview';
|
|
21
|
-
import { AttachmentPreviewList } from './AttachmentPreviewList';
|
|
21
|
+
import { AttachmentPreviewList as DefaultAttachmentPreviewList } from './AttachmentPreviewList';
|
|
22
|
+
import { LinkPreviewList as DefaultLinkPreviewList } from './LinkPreviewList';
|
|
22
23
|
import { UploadsPreview } from './UploadsPreview';
|
|
23
24
|
import { ChatAutoComplete } from '../ChatAutoComplete/ChatAutoComplete';
|
|
24
25
|
import { Tooltip } from '../Tooltip/Tooltip';
|
|
@@ -57,7 +58,7 @@ var MessageInputV1 = function () {
|
|
|
57
58
|
var _a = useChannelStateContext('MessageInputFlat'), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads, quotedMessage = _a.quotedMessage;
|
|
58
59
|
var t = useTranslationContext('MessageInputFlat').t;
|
|
59
60
|
var _b = useMessageInputContext('MessageInputFlat'), closeEmojiPicker = _b.closeEmojiPicker, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, numberOfUploads = _b.numberOfUploads, openEmojiPicker = _b.openEmojiPicker, setCooldownRemaining = _b.setCooldownRemaining, uploadNewFiles = _b.uploadNewFiles;
|
|
60
|
-
var _c = useComponentContext('MessageInputFlat'), _d = _c.CooldownTimer, CooldownTimer = _d === void 0 ? DefaultCooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? DefaultEmojiIcon : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? DefaultFileUploadIcon : _f, _g = _c.QuotedMessagePreview, QuotedMessagePreview = _g === void 0 ? DefaultQuotedMessagePreview : _g, _h = _c.SendButton, SendButton = _h === void 0 ? DefaultSendButton : _h;
|
|
61
|
+
var _c = useComponentContext('MessageInputFlat'), _d = _c.CooldownTimer, CooldownTimer = _d === void 0 ? DefaultCooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? DefaultEmojiIcon : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? DefaultFileUploadIcon : _f, _g = _c.QuotedMessagePreview, QuotedMessagePreview = _g === void 0 ? DefaultQuotedMessagePreview : _g, _h = _c.SendButton, SendButton = _h === void 0 ? DefaultSendButton : _h, _j = _c.AttachmentPreviewList, AttachmentPreviewList = _j === void 0 ? UploadsPreview : _j;
|
|
61
62
|
return (React.createElement("div", { className: clsx('str-chat__input-flat', 'str-chat__message-input', {
|
|
62
63
|
'str-chat__input-flat--send-button-active': !!SendButton,
|
|
63
64
|
'str-chat__input-flat-has-attachments': numberOfUploads,
|
|
@@ -66,7 +67,7 @@ var MessageInputV1 = function () {
|
|
|
66
67
|
React.createElement(ImageDropzone, { accept: acceptedFiles, disabled: !isUploadEnabled || maxFilesLeft === 0 || !!cooldownRemaining, handleFiles: uploadNewFiles, maxNumberOfFiles: maxFilesLeft, multiple: multipleUploads },
|
|
67
68
|
quotedMessage && !quotedMessage.parent_id && (React.createElement(QuotedMessagePreview, { quotedMessage: quotedMessage })),
|
|
68
69
|
React.createElement("div", { className: 'str-chat__input-flat-wrapper' },
|
|
69
|
-
isUploadEnabled && React.createElement(
|
|
70
|
+
isUploadEnabled && React.createElement(AttachmentPreviewList, null),
|
|
70
71
|
React.createElement("div", { className: 'str-chat__input-flat--textarea-wrapper' },
|
|
71
72
|
React.createElement("div", { className: 'str-chat__emojiselect-wrapper' },
|
|
72
73
|
React.createElement(Tooltip, null, emojiPickerIsOpen
|
|
@@ -88,13 +89,13 @@ var MessageInputV1 = function () {
|
|
|
88
89
|
var MessageInputV2 = function () {
|
|
89
90
|
var _a = useChannelStateContext('MessageInputV2'), _b = _a.acceptedFiles, acceptedFiles = _b === void 0 ? [] : _b, multipleUploads = _a.multipleUploads, quotedMessage = _a.quotedMessage;
|
|
90
91
|
var t = useTranslationContext('MessageInputV2').t;
|
|
91
|
-
var _c = useMessageInputContext('MessageInputV2'), closeEmojiPicker = _c.closeEmojiPicker, cooldownRemaining = _c.cooldownRemaining, emojiPickerIsOpen = _c.emojiPickerIsOpen, handleSubmit = _c.handleSubmit, isUploadEnabled = _c.isUploadEnabled, maxFilesLeft = _c.maxFilesLeft, message = _c.message, numberOfUploads = _c.numberOfUploads, openEmojiPicker = _c.openEmojiPicker, setCooldownRemaining = _c.setCooldownRemaining, text = _c.text, uploadNewFiles = _c.uploadNewFiles;
|
|
92
|
-
var _d = useComponentContext('MessageInputV2'), _e = _d.
|
|
93
|
-
var
|
|
94
|
-
var
|
|
95
|
-
var
|
|
92
|
+
var _c = useMessageInputContext('MessageInputV2'), closeEmojiPicker = _c.closeEmojiPicker, cooldownRemaining = _c.cooldownRemaining, emojiPickerIsOpen = _c.emojiPickerIsOpen, findAndEnqueueURLsToEnrich = _c.findAndEnqueueURLsToEnrich, handleSubmit = _c.handleSubmit, isUploadEnabled = _c.isUploadEnabled, linkPreviews = _c.linkPreviews, maxFilesLeft = _c.maxFilesLeft, message = _c.message, numberOfUploads = _c.numberOfUploads, openEmojiPicker = _c.openEmojiPicker, setCooldownRemaining = _c.setCooldownRemaining, text = _c.text, uploadNewFiles = _c.uploadNewFiles;
|
|
93
|
+
var _d = useComponentContext('MessageInputV2'), _e = _d.AttachmentPreviewList, AttachmentPreviewList = _e === void 0 ? DefaultAttachmentPreviewList : _e, _f = _d.CooldownTimer, CooldownTimer = _f === void 0 ? DefaultCooldownTimer : _f, _g = _d.EmojiIcon, EmojiIcon = _g === void 0 ? DefaultEmojiPickerIcon : _g, _h = _d.FileUploadIcon, FileUploadIcon = _h === void 0 ? DefaultUploadIcon : _h, _j = _d.LinkPreviewList, LinkPreviewList = _j === void 0 ? DefaultLinkPreviewList : _j, _k = _d.QuotedMessagePreview, QuotedMessagePreview = _k === void 0 ? DefaultQuotedMessagePreview : _k, _l = _d.SendButton, SendButton = _l === void 0 ? DefaultSendButton : _l;
|
|
94
|
+
var _m = useState(null), referenceElement = _m[0], setReferenceElement = _m[1];
|
|
95
|
+
var _o = useState(null), popperElement = _o[0], setPopperElement = _o[1];
|
|
96
|
+
var _p = usePopper(referenceElement, popperElement, {
|
|
96
97
|
placement: 'top-end',
|
|
97
|
-
}), attributes =
|
|
98
|
+
}), attributes = _p.attributes, styles = _p.styles;
|
|
98
99
|
var id = useMemo(function () { return nanoid(); }, []);
|
|
99
100
|
var accept = useMemo(function () {
|
|
100
101
|
return acceptedFiles.reduce(function (mediaTypeMap, mediaType) {
|
|
@@ -103,18 +104,19 @@ var MessageInputV2 = function () {
|
|
|
103
104
|
return mediaTypeMap;
|
|
104
105
|
}, {});
|
|
105
106
|
}, [acceptedFiles]);
|
|
106
|
-
var
|
|
107
|
+
var _q = useDropzone({
|
|
107
108
|
accept: accept,
|
|
108
109
|
disabled: !isUploadEnabled || maxFilesLeft === 0,
|
|
109
110
|
multiple: multipleUploads,
|
|
110
111
|
noClick: true,
|
|
111
112
|
onDrop: uploadNewFiles,
|
|
112
|
-
}), getRootProps =
|
|
113
|
+
}), getRootProps = _q.getRootProps, isDragActive = _q.isDragActive, isDragReject = _q.isDragReject;
|
|
113
114
|
// TODO: "!message" condition is a temporary fix for shared
|
|
114
115
|
// state when editing a message (fix shared state issue)
|
|
115
116
|
var displayQuotedMessage = !message && quotedMessage && !quotedMessage.parent_id;
|
|
116
117
|
return (React.createElement(React.Fragment, null,
|
|
117
118
|
React.createElement("div", __assign({}, getRootProps({ className: 'str-chat__message-input' })),
|
|
119
|
+
findAndEnqueueURLsToEnrich && (React.createElement(LinkPreviewList, { linkPreviews: Array.from(linkPreviews.values()) })),
|
|
118
120
|
isDragActive && (React.createElement("div", { className: clsx('str-chat__dropzone-container', {
|
|
119
121
|
'str-chat__dropzone-container--not-accepted': isDragReject,
|
|
120
122
|
}) },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect } from 'react';
|
|
2
|
-
import { FileUploadButton, ImageDropzone } from '
|
|
2
|
+
import { FileUploadButton, ImageDropzone } from '../ReactFileUtilities';
|
|
3
3
|
import { EmojiPicker } from './EmojiPicker';
|
|
4
4
|
import { EmojiIconSmall as DefaultEmojiIcon, FileUploadIconFlat as DefaultFileUploadIcon, SendButton as DefaultSendButton, } from './icons';
|
|
5
5
|
import { UploadsPreview } from './UploadsPreview';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { FilePreviewer, ImagePreviewer } from '
|
|
2
|
+
import { FilePreviewer, ImagePreviewer } from '../ReactFileUtilities';
|
|
3
3
|
import { useChannelStateContext } from '../../context/ChannelStateContext';
|
|
4
4
|
import { useMessageInputContext } from '../../context/MessageInputContext';
|
|
5
5
|
import { useChatContext } from '../../context';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileLike } from '
|
|
1
|
+
import type { FileLike } from '../../ReactFileUtilities';
|
|
2
2
|
import type { MessageInputProps } from '../MessageInput';
|
|
3
3
|
import type { MessageInputReducerAction, MessageInputState } from './useMessageInputState';
|
|
4
4
|
import type { CustomTrigger, DefaultStreamChatGenerics } from '../../../types/types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAttachments.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useAttachments.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useAttachments.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useAttachments.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAIrF,eAAO,MAAM,cAAc,6TAOZ,MAAM,gBAAgB,CAAC,mBAAmB,GAAG,SAAS,CAAC;;;;;;;4BA+B1D,QAAQ,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE;CAoCzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateMessageInputContext.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useCreateMessageInputContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAErF,eAAO,MAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"useCreateMessageInputContext.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useCreateMessageInputContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAErF,eAAO,MAAM,4BAA4B,wOA4KxC,CAAC"}
|