stream-chat-react 11.14.0 → 11.15.1

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.
Files changed (203) hide show
  1. package/dist/{Window-64e7e4c0.js → Window-847d5d88.js} +13829 -299
  2. package/dist/browser.full-bundle.js +48811 -35270
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +4 -4
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/Attachment/Audio.d.ts.map +1 -1
  7. package/dist/components/Attachment/Audio.js +7 -4
  8. package/dist/components/Attachment/Card.d.ts +1 -1
  9. package/dist/components/Attachment/Card.d.ts.map +1 -1
  10. package/dist/components/Attachment/Card.js +4 -2
  11. package/dist/components/Attachment/VoiceRecording.d.ts.map +1 -1
  12. package/dist/components/Attachment/VoiceRecording.js +6 -4
  13. package/dist/components/Attachment/audioSampling.d.ts +10 -0
  14. package/dist/components/Attachment/audioSampling.d.ts.map +1 -0
  15. package/dist/components/Attachment/audioSampling.js +83 -0
  16. package/dist/components/Attachment/components/WaveProgressBar.d.ts +3 -10
  17. package/dist/components/Attachment/components/WaveProgressBar.d.ts.map +1 -1
  18. package/dist/components/Attachment/components/WaveProgressBar.js +23 -90
  19. package/dist/components/Attachment/hooks/useAudioController.d.ts +11 -3
  20. package/dist/components/Attachment/hooks/useAudioController.d.ts.map +1 -1
  21. package/dist/components/Attachment/hooks/useAudioController.js +89 -26
  22. package/dist/components/Attachment/index.d.ts +1 -0
  23. package/dist/components/Attachment/index.d.ts.map +1 -1
  24. package/dist/components/Attachment/index.js +1 -0
  25. package/dist/components/Attachment/utils.d.ts +5 -3
  26. package/dist/components/Attachment/utils.d.ts.map +1 -1
  27. package/dist/components/Attachment/utils.js +1 -0
  28. package/dist/components/Channel/Channel.d.ts +5 -1
  29. package/dist/components/Channel/Channel.d.ts.map +1 -1
  30. package/dist/components/Channel/Channel.js +2 -0
  31. package/dist/components/ChannelSearch/SearchResults.d.ts +2 -2
  32. package/dist/components/ChannelSearch/SearchResults.d.ts.map +1 -1
  33. package/dist/components/ChannelSearch/SearchResults.js +1 -1
  34. package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +1 -1
  35. package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +1 -1
  36. package/dist/components/ChannelSearch/hooks/useChannelSearch.js +1 -1
  37. package/dist/components/Emojis/EmojiPicker.d.ts +2 -2
  38. package/dist/components/Emojis/index.cjs.js +2 -2
  39. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.d.ts +3 -0
  40. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.d.ts.map +1 -0
  41. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +24 -0
  42. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.d.ts +4 -0
  43. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.d.ts.map +1 -0
  44. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.js +5 -0
  45. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.d.ts +3 -0
  46. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.d.ts.map +1 -0
  47. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js +47 -0
  48. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.d.ts +8 -0
  49. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.d.ts.map +1 -0
  50. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.js +21 -0
  51. package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.d.ts +6 -0
  52. package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.d.ts.map +1 -0
  53. package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.js +9 -0
  54. package/dist/components/MediaRecorder/AudioRecorder/index.d.ts +4 -0
  55. package/dist/components/MediaRecorder/AudioRecorder/index.d.ts.map +1 -0
  56. package/dist/components/MediaRecorder/AudioRecorder/index.js +3 -0
  57. package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts +8 -0
  58. package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts.map +1 -0
  59. package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.js +21 -0
  60. package/dist/components/MediaRecorder/classes/AmplitudeRecorder.d.ts +55 -0
  61. package/dist/components/MediaRecorder/classes/AmplitudeRecorder.d.ts.map +1 -0
  62. package/dist/components/MediaRecorder/classes/AmplitudeRecorder.js +93 -0
  63. package/dist/components/MediaRecorder/classes/BrowserPermission.d.ts +23 -0
  64. package/dist/components/MediaRecorder/classes/BrowserPermission.d.ts.map +1 -0
  65. package/dist/components/MediaRecorder/classes/BrowserPermission.js +98 -0
  66. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts +83 -0
  67. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts.map +1 -0
  68. package/dist/components/MediaRecorder/classes/MediaRecorderController.js +313 -0
  69. package/dist/components/MediaRecorder/classes/index.d.ts +4 -0
  70. package/dist/components/MediaRecorder/classes/index.d.ts.map +1 -0
  71. package/dist/components/MediaRecorder/classes/index.js +2 -0
  72. package/dist/components/MediaRecorder/hooks/index.d.ts +2 -0
  73. package/dist/components/MediaRecorder/hooks/index.d.ts.map +1 -0
  74. package/dist/components/MediaRecorder/hooks/index.js +1 -0
  75. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts +20 -0
  76. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts.map +1 -0
  77. package/dist/components/MediaRecorder/hooks/useMediaRecorder.js +73 -0
  78. package/dist/components/MediaRecorder/index.d.ts +6 -0
  79. package/dist/components/MediaRecorder/index.d.ts.map +1 -0
  80. package/dist/components/MediaRecorder/index.js +5 -0
  81. package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts +11 -0
  82. package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts.map +1 -0
  83. package/dist/components/MediaRecorder/observable/BehaviorSubject.js +34 -0
  84. package/dist/components/MediaRecorder/observable/Observable.d.ts +18 -0
  85. package/dist/components/MediaRecorder/observable/Observable.d.ts.map +1 -0
  86. package/dist/components/MediaRecorder/observable/Observable.js +29 -0
  87. package/dist/components/MediaRecorder/observable/Observer.d.ts +10 -0
  88. package/dist/components/MediaRecorder/observable/Observer.d.ts.map +1 -0
  89. package/dist/components/MediaRecorder/observable/Observer.js +3 -0
  90. package/dist/components/MediaRecorder/observable/Subject.d.ts +16 -0
  91. package/dist/components/MediaRecorder/observable/Subject.d.ts.map +1 -0
  92. package/dist/components/MediaRecorder/observable/Subject.js +70 -0
  93. package/dist/components/MediaRecorder/observable/Subscription.d.ts +11 -0
  94. package/dist/components/MediaRecorder/observable/Subscription.d.ts.map +1 -0
  95. package/dist/components/MediaRecorder/observable/Subscription.js +13 -0
  96. package/dist/components/MediaRecorder/observable/index.d.ts +6 -0
  97. package/dist/components/MediaRecorder/observable/index.d.ts.map +1 -0
  98. package/dist/components/MediaRecorder/observable/index.js +5 -0
  99. package/dist/components/MediaRecorder/transcode/audioProcessing.d.ts +16 -0
  100. package/dist/components/MediaRecorder/transcode/audioProcessing.d.ts.map +1 -0
  101. package/dist/components/MediaRecorder/transcode/audioProcessing.js +51 -0
  102. package/dist/components/MediaRecorder/transcode/index.d.ts +8 -0
  103. package/dist/components/MediaRecorder/transcode/index.d.ts.map +1 -0
  104. package/dist/components/MediaRecorder/transcode/index.js +18 -0
  105. package/dist/components/MediaRecorder/transcode/mp3.d.ts +2 -0
  106. package/dist/components/MediaRecorder/transcode/mp3.d.ts.map +1 -0
  107. package/dist/components/MediaRecorder/transcode/mp3.js +53 -0
  108. package/dist/components/MediaRecorder/transcode/wav.d.ts +8 -0
  109. package/dist/components/MediaRecorder/transcode/wav.d.ts.map +1 -0
  110. package/dist/components/MediaRecorder/transcode/wav.js +117 -0
  111. package/dist/components/MessageInput/AttachmentPreviewList.d.ts +2 -1
  112. package/dist/components/MessageInput/AttachmentPreviewList.d.ts.map +1 -1
  113. package/dist/components/MessageInput/AttachmentPreviewList.js +66 -20
  114. package/dist/components/MessageInput/CooldownTimer.d.ts.map +1 -1
  115. package/dist/components/MessageInput/CooldownTimer.js +4 -17
  116. package/dist/components/MessageInput/MessageInput.d.ts +10 -0
  117. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  118. package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
  119. package/dist/components/MessageInput/MessageInputFlat.js +31 -9
  120. package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
  121. package/dist/components/MessageInput/MessageInputSmall.js +3 -2
  122. package/dist/components/MessageInput/SendButton.d.ts +8 -0
  123. package/dist/components/MessageInput/SendButton.d.ts.map +1 -0
  124. package/dist/components/MessageInput/SendButton.js +9 -0
  125. package/dist/components/MessageInput/hooks/useAttachments.d.ts +5 -2
  126. package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
  127. package/dist/components/MessageInput/hooks/useAttachments.js +87 -3
  128. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  129. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +12 -2
  130. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +22 -7
  131. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  132. package/dist/components/MessageInput/hooks/useMessageInputState.js +31 -5
  133. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts +2 -2
  134. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
  135. package/dist/components/MessageInput/hooks/useSubmitHandler.js +15 -6
  136. package/dist/components/MessageInput/hooks/useTimeElapsed.d.ts +10 -0
  137. package/dist/components/MessageInput/hooks/useTimeElapsed.d.ts.map +1 -0
  138. package/dist/components/MessageInput/hooks/useTimeElapsed.js +30 -0
  139. package/dist/components/MessageInput/hooks/useTimer.d.ts +4 -0
  140. package/dist/components/MessageInput/hooks/useTimer.d.ts.map +1 -0
  141. package/dist/components/MessageInput/hooks/useTimer.js +20 -0
  142. package/dist/components/MessageInput/icons.d.ts +5 -6
  143. package/dist/components/MessageInput/icons.d.ts.map +1 -1
  144. package/dist/components/MessageInput/icons.js +13 -10
  145. package/dist/components/MessageInput/index.d.ts +1 -0
  146. package/dist/components/MessageInput/index.d.ts.map +1 -1
  147. package/dist/components/MessageInput/index.js +1 -0
  148. package/dist/components/MessageInput/types.d.ts +36 -1
  149. package/dist/components/MessageInput/types.d.ts.map +1 -1
  150. package/dist/components/ReactFileUtilities/types.d.ts +1 -0
  151. package/dist/components/ReactFileUtilities/types.d.ts.map +1 -1
  152. package/dist/components/ReactFileUtilities/utils.d.ts +9 -1
  153. package/dist/components/ReactFileUtilities/utils.d.ts.map +1 -1
  154. package/dist/components/ReactFileUtilities/utils.js +25 -0
  155. package/dist/components/Reactions/utils/utils.d.ts +2 -1
  156. package/dist/components/Reactions/utils/utils.d.ts.map +1 -1
  157. package/dist/components/index.d.ts +1 -0
  158. package/dist/components/index.d.ts.map +1 -1
  159. package/dist/components/index.js +1 -0
  160. package/dist/context/ComponentContext.d.ts +7 -4
  161. package/dist/context/ComponentContext.d.ts.map +1 -1
  162. package/dist/context/MessageInputContext.d.ts +4 -1
  163. package/dist/context/MessageInputContext.d.ts.map +1 -1
  164. package/dist/css/v2/index.css +2 -2
  165. package/dist/css/v2/index.layout.css +2 -2
  166. package/dist/i18n/Streami18n.d.ts +13 -0
  167. package/dist/i18n/Streami18n.d.ts.map +1 -1
  168. package/dist/i18n/de.json +13 -0
  169. package/dist/i18n/en.json +13 -0
  170. package/dist/i18n/es.json +13 -0
  171. package/dist/i18n/fr.json +13 -0
  172. package/dist/i18n/hi.json +13 -0
  173. package/dist/i18n/it.json +13 -0
  174. package/dist/i18n/ja.json +13 -0
  175. package/dist/i18n/ko.json +13 -0
  176. package/dist/i18n/nl.json +13 -0
  177. package/dist/i18n/pt.json +13 -0
  178. package/dist/i18n/ru.json +13 -0
  179. package/dist/i18n/tr.json +13 -0
  180. package/dist/index.cjs.js +22 -3
  181. package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +38 -13
  182. package/dist/scss/v2/AttachmentList/AttachmentList-theme.scss +44 -0
  183. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-layout.scss +17 -10
  184. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-theme.scss +16 -0
  185. package/dist/scss/v2/AudioRecorder/AudioRecorder-layout.scss +89 -0
  186. package/dist/scss/v2/AudioRecorder/AudioRecorder-theme.scss +51 -0
  187. package/dist/scss/v2/ChannelPreview/ChannelPreview-layout.scss +19 -2
  188. package/dist/scss/v2/ChannelPreview/ChannelPreview-theme.scss +21 -0
  189. package/dist/scss/v2/Message/Message-layout.scss +2 -2
  190. package/dist/scss/v2/MessageInput/MessageInput-layout.scss +30 -1
  191. package/dist/scss/v2/MessageInput/MessageInput-theme.scss +62 -2
  192. package/dist/scss/v2/_base.scss +2 -2
  193. package/dist/scss/v2/index.layout.scss +1 -0
  194. package/dist/scss/v2/index.scss +1 -0
  195. package/dist/utils/mergeDeep.d.ts +4 -0
  196. package/dist/utils/mergeDeep.d.ts.map +1 -0
  197. package/dist/utils/mergeDeep.js +5 -0
  198. package/dist/version.d.ts +1 -1
  199. package/dist/version.js +1 -1
  200. package/package.json +6 -2
  201. package/dist/components/MessageInput/hooks/useFileState.d.ts +0 -7
  202. package/dist/components/MessageInput/hooks/useFileState.d.ts.map +0 -1
  203. 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 { Attachment, Message, UserResponse } from 'stream-chat';
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: Attachment<StreamChatGenerics>[];
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: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>>, options?: SendMessageOptions) => void;
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: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>> | undefined, options?: SendMessageOptions) => void;
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":"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"}
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 { useLinkPreviews } from './useLinkPreviews';
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: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>> | undefined) => Promise<void>;
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":"AAKA,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,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAS9D,eAAO,MAAM,gBAAgB,iUAOV,MAAM,wBACD,oBAAoB;0BA+EjC,MAAM,kBAAkB;CAgJlC,CAAC"}
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
- return __spreadArray(__spreadArray(__spreadArray([], attachments, true), imageAttachments, true), fileAttachments, true);
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 ? { skip_enrich_url: skip_enrich_url } : undefined;
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,4 @@
1
+ export declare const useTimer: ({ startFrom }: {
2
+ startFrom: number;
3
+ }) => number | undefined;
4
+ //# sourceMappingURL=useTimer.d.ts.map
@@ -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 type SendButtonProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
20
- sendMessage: (event: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>>) => void;
21
- } & React.ComponentProps<'button'>;
22
- export declare const SendButton: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ sendMessage, ...rest }: SendButtonProps<StreamChatGenerics>) => React.JSX.Element;
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;AAMvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,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,yBAkBtB,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,WAAW,EAAE,CACX,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,KACrD,IAAI,CAAC;CACX,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEnC,eAAO,MAAM,UAAU,wKAqBtB,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: 'none', height: '24', viewBox: '0 0 24 24', width: '24', xmlns: 'http://www.w3.org/2000/svg' },
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', fill: 'black' })));
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"}
@@ -9,5 +9,6 @@ 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';
@@ -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;AAC5D,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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/MessageInput/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export type RecordedMediaType = 'audio' | 'video';
1
2
  export type UploadState = 'uploading' | 'finished' | 'failed';
2
3
  export type FileLike = Blob | File;
3
4
  export type UploadInfo = {
@@ -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 type { FileLike } from './types';
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,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,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"}
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
- export declare const isMutableRef: <T>(ref: import("react").ForwardedRef<T>) => ref is import("react").MutableRefObject<T>;
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.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,yFAOxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,MAAM,8BAiB7C,CAAC"}
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"}
@@ -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';