stream-chat-react 11.14.0 → 11.15.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/{Window-64e7e4c0.js → Window-847d5d88.js} +13829 -299
- package/dist/browser.full-bundle.js +48811 -35270
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +4 -4
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/Audio.d.ts.map +1 -1
- package/dist/components/Attachment/Audio.js +7 -4
- package/dist/components/Attachment/Card.d.ts +1 -1
- package/dist/components/Attachment/Card.d.ts.map +1 -1
- package/dist/components/Attachment/Card.js +4 -2
- package/dist/components/Attachment/VoiceRecording.d.ts.map +1 -1
- package/dist/components/Attachment/VoiceRecording.js +6 -4
- package/dist/components/Attachment/audioSampling.d.ts +10 -0
- package/dist/components/Attachment/audioSampling.d.ts.map +1 -0
- package/dist/components/Attachment/audioSampling.js +83 -0
- package/dist/components/Attachment/components/WaveProgressBar.d.ts +3 -10
- package/dist/components/Attachment/components/WaveProgressBar.d.ts.map +1 -1
- package/dist/components/Attachment/components/WaveProgressBar.js +23 -90
- package/dist/components/Attachment/hooks/useAudioController.d.ts +11 -3
- package/dist/components/Attachment/hooks/useAudioController.d.ts.map +1 -1
- package/dist/components/Attachment/hooks/useAudioController.js +89 -26
- package/dist/components/Attachment/index.d.ts +1 -0
- package/dist/components/Attachment/index.d.ts.map +1 -1
- package/dist/components/Attachment/index.js +1 -0
- package/dist/components/Attachment/utils.d.ts +5 -3
- package/dist/components/Attachment/utils.d.ts.map +1 -1
- package/dist/components/Attachment/utils.js +1 -0
- package/dist/components/Channel/Channel.d.ts +5 -1
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +2 -0
- package/dist/components/ChannelSearch/SearchResults.d.ts +2 -2
- package/dist/components/ChannelSearch/SearchResults.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchResults.js +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.js +1 -1
- package/dist/components/Emojis/EmojiPicker.d.ts +2 -2
- package/dist/components/Emojis/index.cjs.js +2 -2
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.d.ts +3 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.d.ts.map +1 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +24 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.d.ts +4 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.d.ts.map +1 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.js +5 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.d.ts +3 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.d.ts.map +1 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js +47 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.d.ts +8 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.d.ts.map +1 -0
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.js +21 -0
- package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.d.ts +6 -0
- package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.d.ts.map +1 -0
- package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.js +9 -0
- package/dist/components/MediaRecorder/AudioRecorder/index.d.ts +4 -0
- package/dist/components/MediaRecorder/AudioRecorder/index.d.ts.map +1 -0
- package/dist/components/MediaRecorder/AudioRecorder/index.js +3 -0
- package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts +8 -0
- package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts.map +1 -0
- package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.js +21 -0
- package/dist/components/MediaRecorder/classes/AmplitudeRecorder.d.ts +55 -0
- package/dist/components/MediaRecorder/classes/AmplitudeRecorder.d.ts.map +1 -0
- package/dist/components/MediaRecorder/classes/AmplitudeRecorder.js +93 -0
- package/dist/components/MediaRecorder/classes/BrowserPermission.d.ts +23 -0
- package/dist/components/MediaRecorder/classes/BrowserPermission.d.ts.map +1 -0
- package/dist/components/MediaRecorder/classes/BrowserPermission.js +98 -0
- package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts +83 -0
- package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts.map +1 -0
- package/dist/components/MediaRecorder/classes/MediaRecorderController.js +313 -0
- package/dist/components/MediaRecorder/classes/index.d.ts +4 -0
- package/dist/components/MediaRecorder/classes/index.d.ts.map +1 -0
- package/dist/components/MediaRecorder/classes/index.js +2 -0
- package/dist/components/MediaRecorder/hooks/index.d.ts +2 -0
- package/dist/components/MediaRecorder/hooks/index.d.ts.map +1 -0
- package/dist/components/MediaRecorder/hooks/index.js +1 -0
- package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts +20 -0
- package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts.map +1 -0
- package/dist/components/MediaRecorder/hooks/useMediaRecorder.js +73 -0
- package/dist/components/MediaRecorder/index.d.ts +6 -0
- package/dist/components/MediaRecorder/index.d.ts.map +1 -0
- package/dist/components/MediaRecorder/index.js +5 -0
- package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts +11 -0
- package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts.map +1 -0
- package/dist/components/MediaRecorder/observable/BehaviorSubject.js +34 -0
- package/dist/components/MediaRecorder/observable/Observable.d.ts +18 -0
- package/dist/components/MediaRecorder/observable/Observable.d.ts.map +1 -0
- package/dist/components/MediaRecorder/observable/Observable.js +29 -0
- package/dist/components/MediaRecorder/observable/Observer.d.ts +10 -0
- package/dist/components/MediaRecorder/observable/Observer.d.ts.map +1 -0
- package/dist/components/MediaRecorder/observable/Observer.js +3 -0
- package/dist/components/MediaRecorder/observable/Subject.d.ts +16 -0
- package/dist/components/MediaRecorder/observable/Subject.d.ts.map +1 -0
- package/dist/components/MediaRecorder/observable/Subject.js +70 -0
- package/dist/components/MediaRecorder/observable/Subscription.d.ts +11 -0
- package/dist/components/MediaRecorder/observable/Subscription.d.ts.map +1 -0
- package/dist/components/MediaRecorder/observable/Subscription.js +13 -0
- package/dist/components/MediaRecorder/observable/index.d.ts +6 -0
- package/dist/components/MediaRecorder/observable/index.d.ts.map +1 -0
- package/dist/components/MediaRecorder/observable/index.js +5 -0
- package/dist/components/MediaRecorder/transcode/audioProcessing.d.ts +16 -0
- package/dist/components/MediaRecorder/transcode/audioProcessing.d.ts.map +1 -0
- package/dist/components/MediaRecorder/transcode/audioProcessing.js +51 -0
- package/dist/components/MediaRecorder/transcode/index.d.ts +8 -0
- package/dist/components/MediaRecorder/transcode/index.d.ts.map +1 -0
- package/dist/components/MediaRecorder/transcode/index.js +18 -0
- package/dist/components/MediaRecorder/transcode/mp3.d.ts +2 -0
- package/dist/components/MediaRecorder/transcode/mp3.d.ts.map +1 -0
- package/dist/components/MediaRecorder/transcode/mp3.js +53 -0
- package/dist/components/MediaRecorder/transcode/wav.d.ts +8 -0
- package/dist/components/MediaRecorder/transcode/wav.d.ts.map +1 -0
- package/dist/components/MediaRecorder/transcode/wav.js +117 -0
- package/dist/components/MessageInput/AttachmentPreviewList.d.ts +2 -1
- package/dist/components/MessageInput/AttachmentPreviewList.d.ts.map +1 -1
- package/dist/components/MessageInput/AttachmentPreviewList.js +66 -20
- package/dist/components/MessageInput/CooldownTimer.d.ts.map +1 -1
- package/dist/components/MessageInput/CooldownTimer.js +4 -17
- package/dist/components/MessageInput/MessageInput.d.ts +10 -0
- 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 +31 -9
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputSmall.js +3 -2
- package/dist/components/MessageInput/SendButton.d.ts +8 -0
- package/dist/components/MessageInput/SendButton.d.ts.map +1 -0
- package/dist/components/MessageInput/SendButton.js +9 -0
- package/dist/components/MessageInput/hooks/useAttachments.d.ts +5 -2
- package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useAttachments.js +87 -3
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +12 -2
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +22 -7
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputState.js +31 -5
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useSubmitHandler.js +15 -6
- package/dist/components/MessageInput/hooks/useTimeElapsed.d.ts +10 -0
- package/dist/components/MessageInput/hooks/useTimeElapsed.d.ts.map +1 -0
- package/dist/components/MessageInput/hooks/useTimeElapsed.js +30 -0
- package/dist/components/MessageInput/hooks/useTimer.d.ts +4 -0
- package/dist/components/MessageInput/hooks/useTimer.d.ts.map +1 -0
- package/dist/components/MessageInput/hooks/useTimer.js +20 -0
- package/dist/components/MessageInput/icons.d.ts +5 -6
- package/dist/components/MessageInput/icons.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.js +13 -10
- 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 +36 -1
- package/dist/components/MessageInput/types.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/types.d.ts +1 -0
- package/dist/components/ReactFileUtilities/types.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/utils.d.ts +9 -1
- package/dist/components/ReactFileUtilities/utils.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/utils.js +25 -0
- package/dist/components/Reactions/utils/utils.d.ts +2 -1
- package/dist/components/Reactions/utils/utils.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/context/ComponentContext.d.ts +7 -4
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.d.ts +4 -1
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- package/dist/i18n/Streami18n.d.ts +13 -0
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/de.json +13 -0
- package/dist/i18n/en.json +13 -0
- package/dist/i18n/es.json +13 -0
- package/dist/i18n/fr.json +13 -0
- package/dist/i18n/hi.json +13 -0
- package/dist/i18n/it.json +13 -0
- package/dist/i18n/ja.json +13 -0
- package/dist/i18n/ko.json +13 -0
- package/dist/i18n/nl.json +13 -0
- package/dist/i18n/pt.json +13 -0
- package/dist/i18n/ru.json +13 -0
- package/dist/i18n/tr.json +13 -0
- package/dist/index.cjs.js +22 -3
- package/dist/utils/mergeDeep.d.ts +4 -0
- package/dist/utils/mergeDeep.d.ts.map +1 -0
- package/dist/utils/mergeDeep.js +5 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -1
- package/dist/components/MessageInput/hooks/useFileState.d.ts +0 -7
- package/dist/components/MessageInput/hooks/useFileState.d.ts.map +0 -1
- package/dist/components/MessageInput/hooks/useFileState.js +0 -8
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { EnrichURLsController } from './useLinkPreviews';
|
|
3
|
+
import { RecordingController } from '../../MediaRecorder/hooks/useMediaRecorder';
|
|
4
|
+
import { LocalAttachment, SetLinkPreviewMode } from '../types';
|
|
2
5
|
import type { FileLike } from '../../ReactFileUtilities';
|
|
3
|
-
import type {
|
|
6
|
+
import type { Message, UserResponse } from 'stream-chat';
|
|
4
7
|
import type { MessageInputProps } from '../MessageInput';
|
|
5
8
|
import type { CustomTrigger, DefaultStreamChatGenerics, SendMessageOptions } from '../../../types/types';
|
|
6
|
-
import { EnrichURLsController } from './useLinkPreviews';
|
|
7
9
|
import type { FileUpload, ImageUpload, LinkPreviewMap } from '../types';
|
|
8
|
-
import { SetLinkPreviewMode } from '../types';
|
|
9
10
|
export type MessageInputState<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
10
|
-
attachments:
|
|
11
|
+
attachments: LocalAttachment<StreamChatGenerics>[];
|
|
11
12
|
fileOrder: string[];
|
|
12
13
|
fileUploads: Record<string, FileUpload>;
|
|
13
14
|
imageOrder: string[];
|
|
@@ -17,6 +18,14 @@ export type MessageInputState<StreamChatGenerics extends DefaultStreamChatGeneri
|
|
|
17
18
|
setText: (text: string) => void;
|
|
18
19
|
text: string;
|
|
19
20
|
};
|
|
21
|
+
type UpsertAttachmentAction = {
|
|
22
|
+
attachment: LocalAttachment;
|
|
23
|
+
type: 'upsertAttachment';
|
|
24
|
+
};
|
|
25
|
+
type RemoveAttachmentAction = {
|
|
26
|
+
id: string;
|
|
27
|
+
type: 'removeAttachment';
|
|
28
|
+
};
|
|
20
29
|
type SetTextAction = {
|
|
21
30
|
getNewText: (currentStateText: string) => string;
|
|
22
31
|
type: 'setText';
|
|
@@ -57,19 +66,22 @@ type AddMentionedUserAction<StreamChatGenerics extends DefaultStreamChatGenerics
|
|
|
57
66
|
type: 'addMentionedUser';
|
|
58
67
|
user: UserResponse<StreamChatGenerics>;
|
|
59
68
|
};
|
|
60
|
-
export type MessageInputReducerAction<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = SetTextAction | ClearAction | SetImageUploadAction | SetFileUploadAction | SetLinkPreviewsAction | RemoveImageUploadAction | RemoveFileUploadAction | AddMentionedUserAction<StreamChatGenerics
|
|
69
|
+
export type MessageInputReducerAction<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = SetTextAction | ClearAction | SetImageUploadAction | SetFileUploadAction | SetLinkPreviewsAction | RemoveImageUploadAction | RemoveFileUploadAction | AddMentionedUserAction<StreamChatGenerics> | UpsertAttachmentAction | RemoveAttachmentAction;
|
|
61
70
|
export type MessageInputHookProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = EnrichURLsController & {
|
|
62
71
|
handleChange: React.ChangeEventHandler<HTMLTextAreaElement>;
|
|
63
|
-
handleSubmit: (event
|
|
72
|
+
handleSubmit: (event?: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>>, options?: SendMessageOptions) => void;
|
|
64
73
|
insertText: (textToInsert: string) => void;
|
|
65
74
|
isUploadEnabled: boolean;
|
|
66
75
|
maxFilesLeft: number;
|
|
67
76
|
numberOfUploads: number;
|
|
68
77
|
onPaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => void;
|
|
69
78
|
onSelectUser: (item: UserResponse<StreamChatGenerics>) => void;
|
|
79
|
+
recordingController: RecordingController;
|
|
80
|
+
removeAttachment: (id: string) => void;
|
|
70
81
|
removeFile: (id: string) => void;
|
|
71
82
|
removeImage: (id: string) => void;
|
|
72
83
|
textareaRef: React.MutableRefObject<HTMLTextAreaElement | null | undefined>;
|
|
84
|
+
uploadAttachment: (attachment: LocalAttachment<StreamChatGenerics>) => Promise<LocalAttachment<StreamChatGenerics>>;
|
|
73
85
|
uploadFile: (id: string) => void;
|
|
74
86
|
uploadImage: (id: string) => void;
|
|
75
87
|
uploadNewFiles: (files: FileList | File[]) => void;
|
|
@@ -89,16 +101,19 @@ export type MentionsListState = {
|
|
|
89
101
|
*/
|
|
90
102
|
export declare const useMessageInputState: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(props: MessageInputProps<StreamChatGenerics, V>) => MessageInputState<StreamChatGenerics> & EnrichURLsController & {
|
|
91
103
|
handleChange: React.ChangeEventHandler<HTMLTextAreaElement>;
|
|
92
|
-
handleSubmit: (event
|
|
104
|
+
handleSubmit: (event?: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>> | undefined, options?: SendMessageOptions) => void;
|
|
93
105
|
insertText: (textToInsert: string) => void;
|
|
94
106
|
isUploadEnabled: boolean;
|
|
95
107
|
maxFilesLeft: number;
|
|
96
108
|
numberOfUploads: number;
|
|
97
109
|
onPaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => void;
|
|
98
110
|
onSelectUser: (item: UserResponse<StreamChatGenerics>) => void;
|
|
111
|
+
recordingController: RecordingController;
|
|
112
|
+
removeAttachment: (id: string) => void;
|
|
99
113
|
removeFile: (id: string) => void;
|
|
100
114
|
removeImage: (id: string) => void;
|
|
101
115
|
textareaRef: React.MutableRefObject<HTMLTextAreaElement | null | undefined>;
|
|
116
|
+
uploadAttachment: (attachment: LocalAttachment<StreamChatGenerics>) => Promise<LocalAttachment<StreamChatGenerics>>;
|
|
102
117
|
uploadFile: (id: string) => void;
|
|
103
118
|
uploadImage: (id: string) => void;
|
|
104
119
|
uploadNewFiles: (files: FileList | File[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMessageInputState.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useMessageInputState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useMessageInputState.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useMessageInputState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
1
|
+
import { __assign, __spreadArray } from "tslib";
|
|
2
2
|
import { useCallback, useReducer, useState } from 'react';
|
|
3
3
|
import { nanoid } from 'nanoid';
|
|
4
4
|
import { useChannelStateContext } from '../../../context/ChannelStateContext';
|
|
5
5
|
import { useAttachments } from './useAttachments';
|
|
6
|
+
import { useLinkPreviews } from './useLinkPreviews';
|
|
6
7
|
import { useMessageInputText } from './useMessageInputText';
|
|
7
8
|
import { useSubmitHandler } from './useSubmitHandler';
|
|
8
9
|
import { usePasteHandler } from './usePasteHandler';
|
|
9
|
-
import {
|
|
10
|
+
import { useMediaRecorder } from '../../MediaRecorder/hooks/useMediaRecorder';
|
|
10
11
|
import { LinkPreviewState, SetLinkPreviewMode } from '../types';
|
|
12
|
+
import { mergeDeep } from '../../../utils/mergeDeep';
|
|
11
13
|
var makeEmptyMessageInputState = function () { return ({
|
|
12
14
|
attachments: [],
|
|
13
15
|
fileOrder: [],
|
|
@@ -79,6 +81,8 @@ var initState = function (message) {
|
|
|
79
81
|
var attachments = ((_g = message.attachments) === null || _g === void 0 ? void 0 : _g.filter(function (_a) {
|
|
80
82
|
var type = _a.type;
|
|
81
83
|
return type !== 'file' && type !== 'image';
|
|
84
|
+
}).map(function (att) {
|
|
85
|
+
return (__assign(__assign({}, att), { $internal: { id: nanoid(), uploadState: 'finished' } }));
|
|
82
86
|
})) || [];
|
|
83
87
|
var mentioned_users = message.mentioned_users || [];
|
|
84
88
|
return {
|
|
@@ -98,11 +102,25 @@ var initState = function (message) {
|
|
|
98
102
|
*/
|
|
99
103
|
var messageInputReducer = function (state, action) {
|
|
100
104
|
var _a, _b;
|
|
105
|
+
var _c;
|
|
101
106
|
switch (action.type) {
|
|
102
107
|
case 'setText':
|
|
103
108
|
return __assign(__assign({}, state), { text: action.getNewText(state.text) });
|
|
104
109
|
case 'clear':
|
|
105
110
|
return makeEmptyMessageInputState();
|
|
111
|
+
case 'upsertAttachment': {
|
|
112
|
+
var attachmentIndex = state.attachments.findIndex(function (att) { var _a, _b, _c; return ((_a = att.$internal) === null || _a === void 0 ? void 0 : _a.id) && ((_b = att.$internal) === null || _b === void 0 ? void 0 : _b.id) === ((_c = action.attachment.$internal) === null || _c === void 0 ? void 0 : _c.id); });
|
|
113
|
+
var upsertedAttachment = mergeDeep((_c = state.attachments[attachmentIndex]) !== null && _c !== void 0 ? _c : {}, action.attachment);
|
|
114
|
+
var attachments = __spreadArray([], state.attachments, true);
|
|
115
|
+
attachments.splice(attachmentIndex, 1, upsertedAttachment);
|
|
116
|
+
return __assign(__assign({}, state), { attachments: attachments });
|
|
117
|
+
}
|
|
118
|
+
case 'removeAttachment': {
|
|
119
|
+
var attachmentIndex = state.attachments.findIndex(function (att) { var _a, _b; return ((_a = att.$internal) === null || _a === void 0 ? void 0 : _a.id) && ((_b = att.$internal) === null || _b === void 0 ? void 0 : _b.id) === action.id; });
|
|
120
|
+
if (attachmentIndex === -1)
|
|
121
|
+
return state;
|
|
122
|
+
return __assign(__assign({}, state), { attachments: __spreadArray([], state.attachments.splice(attachmentIndex, 1), true) });
|
|
123
|
+
}
|
|
106
124
|
case 'setImageUpload': {
|
|
107
125
|
var imageAlreadyExists = state.imageUploads[action.id];
|
|
108
126
|
if (!imageAlreadyExists && !action.file)
|
|
@@ -172,7 +190,7 @@ var messageInputReducer = function (state, action) {
|
|
|
172
190
|
*/
|
|
173
191
|
export var useMessageInputState = function (props) {
|
|
174
192
|
var _a;
|
|
175
|
-
var additionalTextareaProps = props.additionalTextareaProps, getDefaultValue = props.getDefaultValue, message = props.message, urlEnrichmentConfig = props.urlEnrichmentConfig;
|
|
193
|
+
var additionalTextareaProps = props.additionalTextareaProps, asyncMessagesMultiSendEnabled = props.asyncMessagesMultiSendEnabled, audioRecordingConfig = props.audioRecordingConfig, audioRecordingEnabled = props.audioRecordingEnabled, getDefaultValue = props.getDefaultValue, message = props.message, urlEnrichmentConfig = props.urlEnrichmentConfig;
|
|
176
194
|
var _b = useChannelStateContext('useMessageInputState'), _c = _b.channelCapabilities, channelCapabilities = _c === void 0 ? {} : _c, channelConfig = _b.channelConfig, enrichURLForPreviewChannelContext = _b.enrichURLForPreview;
|
|
177
195
|
var defaultValue = (getDefaultValue === null || getDefaultValue === void 0 ? void 0 : getDefaultValue()) || (additionalTextareaProps === null || additionalTextareaProps === void 0 ? void 0 : additionalTextareaProps.defaultValue);
|
|
178
196
|
var initialStateValue = message ||
|
|
@@ -200,8 +218,16 @@ export var useMessageInputState = function (props) {
|
|
|
200
218
|
setShowMentionsList(true);
|
|
201
219
|
};
|
|
202
220
|
var closeMentionsList = function () { return setShowMentionsList(false); };
|
|
203
|
-
var _h = useAttachments(props, state, dispatch, textareaRef), maxFilesLeft = _h.maxFilesLeft, numberOfUploads = _h.numberOfUploads, removeFile = _h.removeFile, removeImage = _h.removeImage, uploadFile = _h.uploadFile, uploadImage = _h.uploadImage, uploadNewFiles = _h.uploadNewFiles;
|
|
221
|
+
var _h = useAttachments(props, state, dispatch, textareaRef), maxFilesLeft = _h.maxFilesLeft, numberOfUploads = _h.numberOfUploads, removeAttachment = _h.removeAttachment, removeFile = _h.removeFile, removeImage = _h.removeImage, uploadAttachment = _h.uploadAttachment, uploadFile = _h.uploadFile, uploadImage = _h.uploadImage, uploadNewFiles = _h.uploadNewFiles;
|
|
204
222
|
var handleSubmit = useSubmitHandler(props, state, dispatch, numberOfUploads, enrichURLsController).handleSubmit;
|
|
223
|
+
var recordingController = useMediaRecorder({
|
|
224
|
+
asyncMessagesMultiSendEnabled: asyncMessagesMultiSendEnabled,
|
|
225
|
+
enabled: !!audioRecordingEnabled,
|
|
226
|
+
handleSubmit: handleSubmit,
|
|
227
|
+
recordingConfig: audioRecordingConfig,
|
|
228
|
+
uploadAttachment: uploadAttachment,
|
|
229
|
+
});
|
|
230
|
+
// todo: remove the check for channelConfig?.uploads
|
|
205
231
|
var isUploadEnabled = (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.uploads) !== false && channelCapabilities['upload-file'] !== false;
|
|
206
232
|
var onPaste = usePasteHandler(uploadNewFiles, insertText, isUploadEnabled, enrichURLsController.findAndEnqueueURLsToEnrich).onPaste;
|
|
207
233
|
var onSelectUser = useCallback(function (item) {
|
|
@@ -210,5 +236,5 @@ export var useMessageInputState = function (props) {
|
|
|
210
236
|
var setText = useCallback(function (text) {
|
|
211
237
|
dispatch({ getNewText: function () { return text; }, type: 'setText' });
|
|
212
238
|
}, []);
|
|
213
|
-
return __assign(__assign(__assign({}, state), enrichURLsController), { closeCommandsList: closeCommandsList, closeMentionsList: closeMentionsList, handleChange: handleChange, handleSubmit: handleSubmit, insertText: insertText, isUploadEnabled: isUploadEnabled, maxFilesLeft: maxFilesLeft, numberOfUploads: numberOfUploads, onPaste: onPaste, onSelectUser: onSelectUser, openCommandsList: openCommandsList, openMentionsList: openMentionsList, removeFile: removeFile, removeImage: removeImage, setText: setText, showCommandsList: showCommandsList, showMentionsList: showMentionsList, textareaRef: textareaRef, uploadFile: uploadFile, uploadImage: uploadImage, uploadNewFiles: uploadNewFiles });
|
|
239
|
+
return __assign(__assign(__assign({}, state), enrichURLsController), { closeCommandsList: closeCommandsList, closeMentionsList: closeMentionsList, handleChange: handleChange, handleSubmit: handleSubmit, insertText: insertText, isUploadEnabled: isUploadEnabled, maxFilesLeft: maxFilesLeft, numberOfUploads: numberOfUploads, onPaste: onPaste, onSelectUser: onSelectUser, openCommandsList: openCommandsList, openMentionsList: openMentionsList, recordingController: recordingController, removeAttachment: removeAttachment, removeFile: removeFile, removeImage: removeImage, setText: setText, showCommandsList: showCommandsList, showMentionsList: showMentionsList, textareaRef: textareaRef, uploadAttachment: uploadAttachment, uploadFile: uploadFile, uploadImage: uploadImage, uploadNewFiles: uploadNewFiles });
|
|
214
240
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Message } from 'stream-chat';
|
|
2
2
|
import type { MessageInputReducerAction, MessageInputState } from './useMessageInputState';
|
|
3
3
|
import type { MessageInputProps } from '../MessageInput';
|
|
4
|
-
import type { CustomTrigger, DefaultStreamChatGenerics } from '../../../types/types';
|
|
4
|
+
import type { CustomTrigger, DefaultStreamChatGenerics, SendMessageOptions } from '../../../types/types';
|
|
5
5
|
import type { EnrichURLsController } from './useLinkPreviews';
|
|
6
6
|
export declare const useSubmitHandler: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(props: MessageInputProps<StreamChatGenerics, V>, state: MessageInputState<StreamChatGenerics>, dispatch: import("react").Dispatch<MessageInputReducerAction<StreamChatGenerics>>, numberOfUploads: number, enrichURLsController: EnrichURLsController) => {
|
|
7
|
-
handleSubmit: (event
|
|
7
|
+
handleSubmit: (event?: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>> | undefined, options?: SendMessageOptions) => Promise<void>;
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=useSubmitHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSubmitHandler.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useSubmitHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSubmitHandler.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useSubmitHandler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAc,OAAO,EAAkB,MAAM,aAAa,CAAC;AAEvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAQ9D,eAAO,MAAM,gBAAgB,iUAOV,MAAM,wBACD,oBAAoB;2BAkFhC,MAAM,kBAAkB,kFAEtB,kBAAkB;CAkJ/B,CAAC"}
|
|
@@ -65,14 +65,20 @@ export var useSubmitHandler = function (props, state, dispatch, numberOfUploads,
|
|
|
65
65
|
title: upload.file.name,
|
|
66
66
|
type: getAttachmentTypeFromMime(upload.file.type || ''),
|
|
67
67
|
}); });
|
|
68
|
-
|
|
68
|
+
var otherAttachments = attachments
|
|
69
|
+
.filter(function (att) { var _a; return ((_a = att.$internal) === null || _a === void 0 ? void 0 : _a.uploadState) !== 'failed'; })
|
|
70
|
+
.map(function (localAttachment) {
|
|
71
|
+
var _ = localAttachment.$internal, attachment = __rest(localAttachment, ["$internal"]);
|
|
72
|
+
return attachment;
|
|
73
|
+
});
|
|
74
|
+
return __spreadArray(__spreadArray(__spreadArray([], otherAttachments, true), imageAttachments, true), fileAttachments, true);
|
|
69
75
|
};
|
|
70
|
-
var handleSubmit = function (event, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
|
|
76
|
+
var handleSubmit = function (event, customMessageData, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
71
77
|
var trimmedMessage, isEmptyMessage, someAttachmentsUploading, attachmentsFromUploads, attachmentsFromLinkPreviews, someLinkPreviewsLoading, someLinkPreviewsDismissed, newAttachments, actualMentionedUsers, updatedMessage, linkPreviewsEnabled, skip_enrich_url, sendOptions, err_1, err_2;
|
|
72
78
|
return __generator(this, function (_a) {
|
|
73
79
|
switch (_a.label) {
|
|
74
80
|
case 0:
|
|
75
|
-
event.preventDefault();
|
|
81
|
+
event === null || event === void 0 ? void 0 : event.preventDefault();
|
|
76
82
|
trimmedMessage = text.trim();
|
|
77
83
|
isEmptyMessage = trimmedMessage === '' ||
|
|
78
84
|
trimmedMessage === '>' ||
|
|
@@ -82,10 +88,11 @@ export var useSubmitHandler = function (props, state, dispatch, numberOfUploads,
|
|
|
82
88
|
trimmedMessage === '____' ||
|
|
83
89
|
trimmedMessage === '__' ||
|
|
84
90
|
trimmedMessage === '****';
|
|
85
|
-
if (isEmptyMessage && numberOfUploads === 0)
|
|
91
|
+
if (isEmptyMessage && numberOfUploads === 0 && attachments.length === 0)
|
|
86
92
|
return [2 /*return*/];
|
|
87
93
|
someAttachmentsUploading = Object.values(imageUploads).some(function (upload) { return upload.state === 'uploading'; }) ||
|
|
88
|
-
Object.values(fileUploads).some(function (upload) { return upload.state === 'uploading'; })
|
|
94
|
+
Object.values(fileUploads).some(function (upload) { return upload.state === 'uploading'; }) ||
|
|
95
|
+
attachments.some(function (att) { var _a; return ((_a = att.$internal) === null || _a === void 0 ? void 0 : _a.uploadState) === 'uploading'; });
|
|
89
96
|
if (someAttachmentsUploading) {
|
|
90
97
|
return [2 /*return*/, addNotification(t('Wait until all attachments have uploaded'), 'error')];
|
|
91
98
|
}
|
|
@@ -127,7 +134,9 @@ export var useSubmitHandler = function (props, state, dispatch, numberOfUploads,
|
|
|
127
134
|
skip_enrich_url = linkPreviewsEnabled &&
|
|
128
135
|
((!someLinkPreviewsLoading && attachmentsFromLinkPreviews.length > 0) ||
|
|
129
136
|
someLinkPreviewsDismissed);
|
|
130
|
-
sendOptions = linkPreviewsEnabled
|
|
137
|
+
sendOptions = linkPreviewsEnabled || options
|
|
138
|
+
? Object.assign(linkPreviewsEnabled ? { skip_enrich_url: skip_enrich_url } : {}, options !== null && options !== void 0 ? options : {})
|
|
139
|
+
: undefined;
|
|
131
140
|
if (!(message && message.type !== 'error')) return [3 /*break*/, 5];
|
|
132
141
|
delete message.i18n;
|
|
133
142
|
_a.label = 1;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type UseTimeElapsedParams = {
|
|
2
|
+
startOnMount?: boolean;
|
|
3
|
+
};
|
|
4
|
+
export declare const useTimeElapsed: ({ startOnMount }?: UseTimeElapsedParams) => {
|
|
5
|
+
secondsElapsed: number;
|
|
6
|
+
startCounter: () => void;
|
|
7
|
+
stopCounter: () => void;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=useTimeElapsed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimeElapsed.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useTimeElapsed.ts"],"names":[],"mappings":"AAEA,KAAK,oBAAoB,GAAG;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAGF,eAAO,MAAM,cAAc,sBAAsB,oBAAoB;;;;CA6BpE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
// todo: provide start timestamp
|
|
3
|
+
export var useTimeElapsed = function (_a) {
|
|
4
|
+
var _b = _a === void 0 ? {} : _a, startOnMount = _b.startOnMount;
|
|
5
|
+
var _c = useState(0), secondsElapsed = _c[0], setSecondsElapsed = _c[1];
|
|
6
|
+
var updateInterval = useRef();
|
|
7
|
+
var startCounter = useCallback(function () {
|
|
8
|
+
updateInterval.current = setInterval(function () {
|
|
9
|
+
setSecondsElapsed(function (prev) { return prev + 1; });
|
|
10
|
+
}, 1000);
|
|
11
|
+
}, []);
|
|
12
|
+
var stopCounter = useCallback(function () {
|
|
13
|
+
clearInterval(updateInterval.current);
|
|
14
|
+
}, []);
|
|
15
|
+
useEffect(function () {
|
|
16
|
+
if (!startOnMount)
|
|
17
|
+
return;
|
|
18
|
+
updateInterval.current = setInterval(function () {
|
|
19
|
+
setSecondsElapsed(function (prev) { return prev + 1; });
|
|
20
|
+
}, 1000);
|
|
21
|
+
return function () {
|
|
22
|
+
stopCounter();
|
|
23
|
+
};
|
|
24
|
+
}, [startOnMount, stopCounter]);
|
|
25
|
+
return {
|
|
26
|
+
secondsElapsed: secondsElapsed,
|
|
27
|
+
startCounter: startCounter,
|
|
28
|
+
stopCounter: stopCounter,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimer.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/useTimer.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;eAAgC,MAAM;wBAoB1D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
export var useTimer = function (_a) {
|
|
3
|
+
var startFrom = _a.startFrom;
|
|
4
|
+
var _b = useState(), secondsLeft = _b[0], setSecondsLeft = _b[1];
|
|
5
|
+
useEffect(function () {
|
|
6
|
+
var countdownTimeout;
|
|
7
|
+
if (typeof secondsLeft === 'number' && secondsLeft > 0) {
|
|
8
|
+
countdownTimeout = setTimeout(function () {
|
|
9
|
+
setSecondsLeft(secondsLeft - 1);
|
|
10
|
+
}, 1000);
|
|
11
|
+
}
|
|
12
|
+
return function () {
|
|
13
|
+
clearTimeout(countdownTimeout);
|
|
14
|
+
};
|
|
15
|
+
}, [secondsLeft]);
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
setSecondsLeft(startFrom !== null && startFrom !== void 0 ? startFrom : 0);
|
|
18
|
+
}, [startFrom]);
|
|
19
|
+
return secondsLeft;
|
|
20
|
+
};
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { Message } from 'stream-chat';
|
|
3
|
-
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
4
2
|
export declare const EmojiIconLarge: () => React.JSX.Element;
|
|
5
3
|
export declare const EmojiIconSmall: () => React.JSX.Element;
|
|
6
4
|
export declare const EmojiPickerIcon: () => React.JSX.Element;
|
|
@@ -16,8 +14,9 @@ export declare const DownloadIcon: () => React.JSX.Element;
|
|
|
16
14
|
export declare const LinkIcon: () => React.JSX.Element;
|
|
17
15
|
export declare const SendIconV1: () => React.JSX.Element;
|
|
18
16
|
export declare const SendIconV2: () => React.JSX.Element;
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
export declare const
|
|
17
|
+
export declare const MicIcon: () => React.JSX.Element;
|
|
18
|
+
export declare const BinIcon: () => React.JSX.Element;
|
|
19
|
+
export declare const PauseIcon: () => React.JSX.Element;
|
|
20
|
+
export declare const PlayIcon: () => React.JSX.Element;
|
|
21
|
+
export declare const CheckSignIcon: () => React.JSX.Element;
|
|
23
22
|
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,eAAO,MAAM,cAAc,yBAW1B,CAAC;AAEF,eAAO,MAAM,cAAc,yBAW1B,CAAC;AAGF,eAAO,MAAM,eAAe,yBAW3B,CAAC;AAEF,eAAO,MAAM,cAAc,yBAY1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,yBAY9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;uBA0BhC,CAAC;AAGF,eAAO,MAAM,UAAU,yBAqBtB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAcrB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAcrB,CAAC;AAEF,eAAO,MAAM,YAAY,yBAcxB,CAAC;AAEF,eAAO,MAAM,QAAQ,yBASpB,CAAC;AAEF,eAAO,MAAM,UAAU,yBAYtB,CAAC;AAEF,eAAO,MAAM,UAAU,yBAetB,CAAC;AAEF,eAAO,MAAM,OAAO,yBAKnB,CAAC;AAEF,eAAO,MAAM,OAAO,yBAInB,CAAC;AAEF,eAAO,MAAM,SAAS,yBAIrB,CAAC;AAEF,eAAO,MAAM,QAAQ,yBAIpB,CAAC;AAEF,eAAO,MAAM,aAAa,yBAIzB,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { __assign, __rest } from "tslib";
|
|
2
1
|
import React, { useMemo } from 'react';
|
|
3
2
|
import { nanoid } from 'nanoid';
|
|
4
3
|
import { useTranslationContext } from '../../context/TranslationContext';
|
|
5
|
-
import { useChatContext } from '../../context/ChatContext';
|
|
6
4
|
export var EmojiIconLarge = function () {
|
|
7
5
|
var t = useTranslationContext('EmojiIconLarge').t;
|
|
8
6
|
return (React.createElement("svg", { height: '28', viewBox: '0 0 28 28', width: '28', xmlns: 'http://www.w3.org/2000/svg' },
|
|
@@ -67,13 +65,18 @@ export var SendIconV1 = function () {
|
|
|
67
65
|
};
|
|
68
66
|
export var SendIconV2 = function () {
|
|
69
67
|
var t = useTranslationContext('SendButton').t;
|
|
70
|
-
return (React.createElement("svg", { "data-testid": 'send', fill: '
|
|
68
|
+
return (React.createElement("svg", { "data-testid": 'send', fill: 'currentColor', height: '24', viewBox: '0 0 24 24', width: '24', xmlns: 'http://www.w3.org/2000/svg' },
|
|
71
69
|
React.createElement("title", null, t('Send')),
|
|
72
|
-
React.createElement("path", { d: 'M4.00952 22L24 12L4.00952 2L4 9.77778L18.2857 12L4 14.2222L4.00952 22Z'
|
|
73
|
-
};
|
|
74
|
-
export var SendButton = function (_a) {
|
|
75
|
-
var sendMessage = _a.sendMessage, rest = __rest(_a, ["sendMessage"]);
|
|
76
|
-
var themeVersion = useChatContext('SendButton').themeVersion;
|
|
77
|
-
var t = useTranslationContext('SendButton').t;
|
|
78
|
-
return (React.createElement("button", __assign({ "aria-label": t('aria/Send'), className: 'str-chat__send-button', "data-testid": 'send-button', onClick: sendMessage, type: 'button' }, rest), themeVersion === '2' ? React.createElement(SendIconV2, null) : React.createElement(SendIconV1, null)));
|
|
70
|
+
React.createElement("path", { d: 'M4.00952 22L24 12L4.00952 2L4 9.77778L18.2857 12L4 14.2222L4.00952 22Z' })));
|
|
79
71
|
};
|
|
72
|
+
export var MicIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 14 20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
73
|
+
React.createElement("path", { d: 'M7 12.5C8.66 12.5 10 11.16 10 9.5V3.5C10 1.84 8.66 0.5 7 0.5C5.34 0.5 4 1.84 4 3.5V9.5C4 11.16 5.34 12.5 7 12.5Z' }),
|
|
74
|
+
React.createElement("path", { d: 'M12 9.5C12 12.26 9.76 14.5 7 14.5C4.24 14.5 2 12.26 2 9.5H0C0 13.03 2.61 15.93 6 16.42V19.5H8V16.42C11.39 15.93 14 13.03 14 9.5H12Z' }))); };
|
|
75
|
+
export var BinIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 32 32', xmlns: 'http://www.w3.org/2000/svg' },
|
|
76
|
+
React.createElement("path", { d: 'M8.00033 25.3333C8.00033 26.8 9.20033 28 10.667 28H21.3337C22.8003 28 24.0003 26.8 24.0003 25.3333V12C24.0003 10.5333 22.8003 9.33333 21.3337 9.33333H10.667C9.20033 9.33333 8.00033 10.5333 8.00033 12V25.3333ZM24.0003 5.33333H20.667L19.7203 4.38667C19.4803 4.14667 19.1337 4 18.787 4H13.2137C12.867 4 12.5203 4.14667 12.2803 4.38667L11.3337 5.33333H8.00033C7.26699 5.33333 6.66699 5.93333 6.66699 6.66667C6.66699 7.4 7.26699 8 8.00033 8H24.0003C24.7337 8 25.3337 7.4 25.3337 6.66667C25.3337 5.93333 24.7337 5.33333 24.0003 5.33333Z' }))); };
|
|
77
|
+
export var PauseIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 16 20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
78
|
+
React.createElement("path", { d: 'M0 19.3333H5.33333V0.666626H0V19.3333ZM10.6667 0.666626V19.3333H16V0.666626H10.6667Z' }))); };
|
|
79
|
+
export var PlayIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 14 18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
80
|
+
React.createElement("path", { d: 'M0.236328 2.09338V15.9067C0.236328 16.9601 1.39633 17.6001 2.28966 17.0267L13.143 10.1201C13.9697 9.60005 13.9697 8.40005 13.143 7.86672L2.28966 0.973385C1.39633 0.400051 0.236328 1.04005 0.236328 2.09338Z' }))); };
|
|
81
|
+
export var CheckSignIcon = function () { return (React.createElement("svg", { fill: 'currentColor', viewBox: '0 0 18 14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
82
|
+
React.createElement("path", { d: 'M5.79457 10.875L2.32457 7.40502C1.93457 7.01502 1.30457 7.01502 0.91457 7.40502C0.52457 7.79502 0.52457 8.42502 0.91457 8.81502L5.09457 12.995C5.48457 13.385 6.11457 13.385 6.50457 12.995L17.0846 2.41502C17.4746 2.02502 17.4746 1.39502 17.0846 1.00502C16.6946 0.615024 16.0646 0.615024 15.6746 1.00502L5.79457 10.875Z' }))); };
|
|
@@ -9,6 +9,7 @@ export * from './MessageInput';
|
|
|
9
9
|
export * from './MessageInputFlat';
|
|
10
10
|
export * from './MessageInputSmall';
|
|
11
11
|
export * from './QuotedMessagePreview';
|
|
12
|
+
export * from './SendButton';
|
|
12
13
|
export * from './UploadsPreview';
|
|
13
14
|
export * from './types';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Attachment, OGAttachment } from 'stream-chat';
|
|
1
|
+
import type { Attachment, DefaultGenerics, ExtendableGenerics, OGAttachment } from 'stream-chat';
|
|
2
2
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
3
3
|
type AttachmentLoadingState = 'uploading' | 'finished' | 'failed';
|
|
4
4
|
export type FileUpload = {
|
|
@@ -53,5 +53,40 @@ export declare enum SetLinkPreviewMode {
|
|
|
53
53
|
REMOVE = 2
|
|
54
54
|
}
|
|
55
55
|
export type LinkPreviewMap = Map<LinkURL, LinkPreview>;
|
|
56
|
+
export type VoiceRecordingAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
|
|
57
|
+
asset_url: string;
|
|
58
|
+
type: 'voiceRecording';
|
|
59
|
+
duration?: number;
|
|
60
|
+
file_size?: number;
|
|
61
|
+
mime_type?: string;
|
|
62
|
+
title?: string;
|
|
63
|
+
waveform_data?: Array<number>;
|
|
64
|
+
};
|
|
65
|
+
export type AudioAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
|
|
66
|
+
asset_url: string;
|
|
67
|
+
type: 'audio';
|
|
68
|
+
file_size?: number;
|
|
69
|
+
mime_type?: string;
|
|
70
|
+
title?: string;
|
|
71
|
+
};
|
|
72
|
+
export type VideoAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
|
|
73
|
+
asset_url: string;
|
|
74
|
+
type: 'video';
|
|
75
|
+
mime_type?: string;
|
|
76
|
+
thumb_url?: string;
|
|
77
|
+
title?: string;
|
|
78
|
+
};
|
|
79
|
+
export type AttachmentInternalMetadata = {
|
|
80
|
+
id: string;
|
|
81
|
+
file?: File;
|
|
82
|
+
uploadState?: AttachmentLoadingState;
|
|
83
|
+
};
|
|
84
|
+
type LocalAttachmentCast<T> = T & {
|
|
85
|
+
$internal: AttachmentInternalMetadata;
|
|
86
|
+
};
|
|
87
|
+
export type LocalVoiceRecordingAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = LocalAttachmentCast<VoiceRecordingAttachment<StreamChatGenerics>>;
|
|
88
|
+
export type LocalAudioAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = LocalAttachmentCast<AudioAttachment<StreamChatGenerics>>;
|
|
89
|
+
export type LocalVideoAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = LocalAttachmentCast<VideoAttachment<StreamChatGenerics>>;
|
|
90
|
+
export type LocalAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = LocalAttachmentCast<Attachment<StreamChatGenerics>> | LocalAudioAttachment<StreamChatGenerics> | LocalVideoAttachment<StreamChatGenerics> | LocalVoiceRecordingAttachment<StreamChatGenerics>;
|
|
56
91
|
export {};
|
|
57
92
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,KAAK,sBAAsB,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,sBAAsB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,MAAM,WAAW,CACrB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,sBAAsB,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CACN,UAAU,CAAC,kBAAkB,CAAC,EAC9B,eAAe,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,CAClE,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,yFAAyF;IACzF,SAAS,cAAc;IACvB,4EAA4E;IAC5E,MAAM,WAAW;IACjB,kDAAkD;IAClD,MAAM,WAAW;IACjB,6DAA6D;IAC7D,OAAO,YAAY;IACnB,6CAA6C;IAC7C,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,oBAAY,kBAAkB;IAC5B,MAAM,IAAA;IACN,GAAG,IAAA;IACH,MAAM,IAAA;CACP;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,wBAAwB,CAClC,kBAAkB,SAAS,kBAAkB,GAAG,eAAe,IAC7D,UAAU,CAAC,kBAAkB,CAAC,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,kBAAkB,SAAS,kBAAkB,GAAG,eAAe,IAC7D,UAAU,CAAC,kBAAkB,CAAC,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,kBAAkB,SAAS,kBAAkB,GAAG,eAAe,IAC7D,UAAU,CAAC,kBAAkB,CAAC,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,SAAS,EAAE,0BAA0B,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,6BAA6B,CACvC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,mBAAmB,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEtE,MAAM,MAAM,oBAAoB,CAC9B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,mBAAmB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAE7D,MAAM,MAAM,oBAAoB,CAC9B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,mBAAmB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAE7D,MAAM,MAAM,eAAe,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAE9E,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,GACnD,oBAAoB,CAAC,kBAAkB,CAAC,GACxC,oBAAoB,CAAC,kBAAkB,CAAC,GACxC,6BAA6B,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ReactFileUtilities/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,GAAG,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ReactFileUtilities/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,GAAG,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,CAAC"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FileLike, RecordedMediaType } from './types';
|
|
2
2
|
import { ChangeEvent } from 'react';
|
|
3
3
|
export declare const useHandleFileChangeWrapper: (resetOnChange?: boolean, handler?: ((files: Array<File>) => void) | undefined) => ({ currentTarget }: ChangeEvent<HTMLInputElement>) => void;
|
|
4
4
|
export declare function dataTransferItemsHaveFiles(items?: DataTransferItem[]): boolean;
|
|
5
5
|
export declare function dataTransferItemsToFiles(items?: DataTransferItem[]): Promise<FileLike[]>;
|
|
6
|
+
export declare const createFileFromBlobs: ({ blobsArray, fileName, mimeType, }: {
|
|
7
|
+
blobsArray: Blob[];
|
|
8
|
+
fileName: string;
|
|
9
|
+
mimeType: string;
|
|
10
|
+
}) => File;
|
|
11
|
+
export declare const getExtensionFromMimeType: (mimeType: string) => string | null;
|
|
12
|
+
export declare const getRecordedMediaTypeFromMimeType: (mimeType: string) => RecordedMediaType | null;
|
|
13
|
+
export declare const readFileAsArrayBuffer: (file: File) => Promise<ArrayBuffer>;
|
|
6
14
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/ReactFileUtilities/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/ReactFileUtilities/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,WAAW,EAAe,MAAM,OAAO,CAAC;AAEjD,eAAO,MAAM,0BAA0B,+CAEnB,MAAM,IAAI,CAAC,KAAK,IAAI,sCAGhB,YAAY,gBAAgB,CAAC,SAclD,CAAC;AAEJ,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAU9E;AAED,wBAAsB,wBAAwB,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA+B9F;AAiCD,eAAO,MAAM,mBAAmB;gBAKlB,IAAI,EAAE;cACR,MAAM;cACN,MAAM;UAIjB,CAAC;AAEF,eAAO,MAAM,wBAAwB,aAAc,MAAM,kBAGxD,CAAC;AAEF,eAAO,MAAM,gCAAgC,aAAc,MAAM,KAAG,iBAAiB,GAAG,IAGvF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,IAAI,KAAG,QAAQ,WAAW,CAYlE,CAAC"}
|
|
@@ -121,3 +121,28 @@ var extractImageSources = function (s) {
|
|
|
121
121
|
var imageTags = new DOMParser().parseFromString(s, 'text/html').getElementsByTagName('img');
|
|
122
122
|
return Array.from(imageTags, function (tag) { return tag.src; }).filter(function (tag) { return tag; });
|
|
123
123
|
};
|
|
124
|
+
export var createFileFromBlobs = function (_a) {
|
|
125
|
+
var blobsArray = _a.blobsArray, fileName = _a.fileName, mimeType = _a.mimeType;
|
|
126
|
+
var concatenatedBlob = new Blob(blobsArray, { type: mimeType });
|
|
127
|
+
return new File([concatenatedBlob], fileName, { type: concatenatedBlob.type });
|
|
128
|
+
};
|
|
129
|
+
export var getExtensionFromMimeType = function (mimeType) {
|
|
130
|
+
var match = mimeType.match(/\/([^/;]+)/);
|
|
131
|
+
return match && match[1];
|
|
132
|
+
};
|
|
133
|
+
export var getRecordedMediaTypeFromMimeType = function (mimeType) {
|
|
134
|
+
var match = mimeType.match(/^(audio|video)\/.*$/);
|
|
135
|
+
return match && match[1];
|
|
136
|
+
};
|
|
137
|
+
export var readFileAsArrayBuffer = function (file) {
|
|
138
|
+
return new Promise(function (resolve, reject) {
|
|
139
|
+
var fileReader = new FileReader();
|
|
140
|
+
fileReader.onload = function () {
|
|
141
|
+
resolve(fileReader.result);
|
|
142
|
+
};
|
|
143
|
+
fileReader.onerror = function () {
|
|
144
|
+
reject(fileReader.error);
|
|
145
|
+
};
|
|
146
|
+
fileReader.readAsArrayBuffer(file);
|
|
147
|
+
});
|
|
148
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ForwardedRef, MutableRefObject } from 'react';
|
|
2
|
+
export declare const isMutableRef: <T>(ref: ForwardedRef<T>) => ref is MutableRefObject<T>;
|
|
2
3
|
export declare const getImageDimensions: (source: string) => Promise<[number, number]>;
|
|
3
4
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/Reactions/utils/utils.
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/Reactions/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAEvD,eAAO,MAAM,YAAY,yDAKxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,MAAM,8BAiB7C,CAAC"}
|
|
@@ -18,6 +18,7 @@ export * from './Gallery';
|
|
|
18
18
|
export * from './InfiniteScrollPaginator';
|
|
19
19
|
export * from './Loading';
|
|
20
20
|
export * from './LoadMore';
|
|
21
|
+
export * from './MediaRecorder';
|
|
21
22
|
export * from './Message';
|
|
22
23
|
export * from './MessageActions';
|
|
23
24
|
export * from './MessageInput';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -18,6 +18,7 @@ export * from './Gallery';
|
|
|
18
18
|
export * from './InfiniteScrollPaginator';
|
|
19
19
|
export * from './Loading';
|
|
20
20
|
export * from './LoadMore';
|
|
21
|
+
export * from './MediaRecorder';
|
|
21
22
|
export * from './Message';
|
|
22
23
|
export * from './MessageActions';
|
|
23
24
|
export * from './MessageInput';
|