stream-chat-react 11.17.0 → 11.18.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 (120) hide show
  1. package/dist/{Window-5a6bf944.js → Window-5802024e.js} +275 -150
  2. package/dist/assets/icons/stream-chat-icons.eot +0 -0
  3. package/dist/assets/icons/stream-chat-icons.svg +46 -0
  4. package/dist/assets/icons/stream-chat-icons.ttf +0 -0
  5. package/dist/assets/icons/stream-chat-icons.woff +0 -0
  6. package/dist/assets/icons/stream-chat-icons.woff2 +0 -0
  7. package/dist/browser.full-bundle.js +278 -151
  8. package/dist/browser.full-bundle.js.map +1 -1
  9. package/dist/browser.full-bundle.min.js +4 -4
  10. package/dist/browser.full-bundle.min.js.map +1 -1
  11. package/dist/components/Attachment/AttachmentContainer.js +1 -1
  12. package/dist/components/Attachment/UnsupportedAttachment.d.ts.map +1 -1
  13. package/dist/components/Attachment/UnsupportedAttachment.js +7 -7
  14. package/dist/components/Attachment/utils.d.ts +9 -4
  15. package/dist/components/Attachment/utils.d.ts.map +1 -1
  16. package/dist/components/Attachment/utils.js +17 -2
  17. package/dist/components/Emojis/index.cjs.js +1 -1
  18. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +1 -1
  19. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts +9 -8
  20. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts.map +1 -1
  21. package/dist/components/MediaRecorder/classes/MediaRecorderController.js +4 -4
  22. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts +3 -3
  23. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts.map +1 -1
  24. package/dist/components/Message/MessageSimple.d.ts.map +1 -1
  25. package/dist/components/Message/MessageSimple.js +2 -1
  26. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts +16 -0
  27. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts.map +1 -0
  28. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js +37 -0
  29. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts +13 -0
  30. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts.map +1 -0
  31. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js +19 -0
  32. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts +7 -0
  33. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts.map +1 -0
  34. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.js +23 -0
  35. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts +7 -0
  36. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts.map +1 -0
  37. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.js +22 -0
  38. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.d.ts +12 -0
  39. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.d.ts.map +1 -0
  40. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.js +61 -0
  41. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts +7 -0
  42. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts.map +1 -0
  43. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js +27 -0
  44. package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts +7 -0
  45. package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts.map +1 -0
  46. package/dist/components/MessageInput/AttachmentPreviewList/index.js +1 -0
  47. package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts +8 -0
  48. package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts.map +1 -0
  49. package/dist/components/MessageInput/AttachmentPreviewList/types.js +1 -0
  50. package/dist/components/MessageInput/hooks/useAttachments.d.ts +4 -2
  51. package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
  52. package/dist/components/MessageInput/hooks/useAttachments.js +73 -33
  53. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  54. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +5 -3
  55. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +18 -16
  56. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  57. package/dist/components/MessageInput/hooks/useMessageInputState.js +19 -15
  58. package/dist/components/MessageInput/hooks/useSubmitHandler.js +3 -3
  59. package/dist/components/MessageInput/index.d.ts +1 -0
  60. package/dist/components/MessageInput/index.d.ts.map +1 -1
  61. package/dist/components/MessageInput/types.d.ts +33 -10
  62. package/dist/components/MessageInput/types.d.ts.map +1 -1
  63. package/dist/context/ChannelStateContext.d.ts +1 -1
  64. package/dist/context/ComponentContext.d.ts +2 -1
  65. package/dist/context/ComponentContext.d.ts.map +1 -1
  66. package/dist/context/MessageInputContext.d.ts +4 -3
  67. package/dist/context/MessageInputContext.d.ts.map +1 -1
  68. package/dist/css/v2/index.css +2 -2
  69. package/dist/css/v2/index.layout.css +2 -2
  70. package/dist/i18n/Streami18n.d.ts +1 -0
  71. package/dist/i18n/Streami18n.d.ts.map +1 -1
  72. package/dist/i18n/de.json +1 -0
  73. package/dist/i18n/en.json +1 -0
  74. package/dist/i18n/es.json +1 -0
  75. package/dist/i18n/fr.json +1 -0
  76. package/dist/i18n/hi.json +1 -0
  77. package/dist/i18n/it.json +1 -0
  78. package/dist/i18n/ja.json +1 -0
  79. package/dist/i18n/ko.json +1 -0
  80. package/dist/i18n/nl.json +1 -0
  81. package/dist/i18n/pt.json +1 -0
  82. package/dist/i18n/ru.json +1 -0
  83. package/dist/i18n/tr.json +1 -0
  84. package/dist/index.cjs.js +7 -2
  85. package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +38 -1
  86. package/dist/scss/v2/AttachmentList/AttachmentList-theme.scss +8 -0
  87. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-layout.scss +9 -1
  88. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-theme.scss +13 -0
  89. package/dist/scss/v2/Avatar/Avatar-layout.scss +46 -0
  90. package/dist/scss/v2/Channel/Channel-layout.scss +1 -0
  91. package/dist/scss/v2/Channel/Channel-theme.scss +1 -0
  92. package/dist/scss/v2/ChannelList/ChannelList-layout.scss +2 -2
  93. package/dist/scss/v2/ChannelList/ChannelList-theme.scss +4 -2
  94. package/dist/scss/v2/ChannelPreview/ChannelPreview-layout.scss +2 -0
  95. package/dist/scss/v2/ChannelPreview/ChannelPreview-theme.scss +1 -0
  96. package/dist/scss/v2/Icon/Icon-layout.scss +87 -0
  97. package/dist/scss/v2/Icon/Icon-theme.scss +13 -0
  98. package/dist/scss/v2/ImageCarousel/ImageCarousel-layout.scss +1 -0
  99. package/dist/scss/v2/ImageCarousel/ImageCarousel-theme.scss +1 -0
  100. package/dist/scss/v2/LoadingIndicator/LoadingIndicator-layout.scss +10 -1
  101. package/dist/scss/v2/LoadingIndicator/LoadingIndicator-theme.scss +6 -4
  102. package/dist/scss/v2/Message/Message-layout.scss +6 -0
  103. package/dist/scss/v2/Message/Message-theme.scss +6 -0
  104. package/dist/scss/v2/MessageInput/MessageInput-layout.scss +4 -1
  105. package/dist/scss/v2/MessageInput/MessageInput-theme.scss +3 -0
  106. package/dist/scss/v2/MessageList/MessageList-theme.scss +2 -0
  107. package/dist/scss/v2/Modal/Modal-layout.scss +1 -0
  108. package/dist/scss/v2/Modal/Modal-theme.scss +6 -0
  109. package/dist/scss/v2/_base.scss +3 -2
  110. package/dist/scss/v2/_emoji-replacement.scss +4 -2
  111. package/dist/scss/v2/_icons.scss +24 -2
  112. package/dist/scss/v2/_variables.scss +2 -0
  113. package/dist/scss/v2/index.layout.scss +1 -0
  114. package/dist/scss/v2/index.scss +1 -0
  115. package/dist/version.d.ts +1 -1
  116. package/dist/version.js +1 -1
  117. package/package.json +2 -2
  118. package/dist/components/MessageInput/AttachmentPreviewList.d.ts +0 -9
  119. package/dist/components/MessageInput/AttachmentPreviewList.d.ts.map +0 -1
  120. package/dist/components/MessageInput/AttachmentPreviewList.js +0 -112
@@ -9,7 +9,7 @@ import { VoiceRecording as DefaultVoiceRecording } from './VoiceRecording';
9
9
  import { Gallery as DefaultGallery, ImageComponent as DefaultImage } from '../Gallery';
10
10
  import { Card as DefaultCard } from './Card';
11
11
  import { FileAttachment as DefaultFile } from './FileAttachment';
12
- import { NullComponent as DefaultUnsupportedAttachment } from './UnsupportedAttachment';
12
+ import { UnsupportedAttachment as DefaultUnsupportedAttachment } from './UnsupportedAttachment';
13
13
  import { isGalleryAttachmentType, isSvgAttachment, } from './utils';
14
14
  import { useChannelStateContext } from '../../context/ChannelStateContext';
15
15
  export var AttachmentWithinContainer = function (_a) {
@@ -1 +1 @@
1
- {"version":3,"file":"UnsupportedAttachment.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/UnsupportedAttachment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,0BAA0B,CACpC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,qBAAqB,0KAWjC,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,CAAC"}
1
+ {"version":3,"file":"UnsupportedAttachment.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/UnsupportedAttachment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,0BAA0B,CACpC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,qBAAqB,0KAmBjC,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
+ import { FileIcon } from '../ReactFileUtilities';
3
+ import { useTranslationContext } from '../../context';
2
4
  export var UnsupportedAttachment = function (_a) {
3
- var _b;
4
5
  var attachment = _a.attachment;
5
- return (React.createElement("div", null,
6
- React.createElement("div", null,
7
- "Unsupported attachment type ",
8
- React.createElement("strong", null, (_b = attachment.type) !== null && _b !== void 0 ? _b : 'unknown')),
9
- React.createElement("code", null, JSON.stringify(attachment, null, 4)),
10
- ";"));
6
+ var t = useTranslationContext('UnsupportedAttachment').t;
7
+ return (React.createElement("div", { className: 'str-chat__message-attachment-unsupported', "data-testid": 'attachment-unsupported' },
8
+ React.createElement(FileIcon, { className: 'str-chat__file-icon', version: '2' }),
9
+ React.createElement("div", { className: 'str-chat__message-attachment-unsupported__metadata' },
10
+ React.createElement("div", { className: 'str-chat__message-attachment-unsupported__title', "data-testid": 'unsupported-attachment-title' }, attachment.title || t('Unsupported attachment')))));
11
11
  };
12
12
  export var NullComponent = function () { return null; };
@@ -1,8 +1,8 @@
1
1
  import React, { PropsWithChildren, ReactNode } from 'react';
2
2
  import type { Attachment } from 'stream-chat';
3
3
  import type { ATTACHMENT_GROUPS_ORDER, AttachmentProps } from './Attachment';
4
- import type { DefaultStreamChatGenerics } from '../../types/types';
5
- import type { LocalAttachment, VoiceRecordingAttachment } from '../MessageInput';
4
+ import type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';
5
+ import type { LocalAttachment, LocalAudioAttachment, LocalFileAttachment, LocalImageAttachment, LocalVideoAttachment, LocalVoiceRecordingAttachment, VoiceRecordingAttachment } from '../MessageInput';
6
6
  export declare const SUPPORTED_VIDEO_FORMATS: string[];
7
7
  export type AttachmentComponentType = typeof ATTACHMENT_GROUPS_ORDER[number];
8
8
  export type GroupedRenderedAttachment = Record<AttachmentComponentType, ReactNode[]>;
@@ -20,14 +20,19 @@ export type RenderAttachmentProps<StreamChatGenerics extends DefaultStreamChatGe
20
20
  export type RenderGalleryProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Omit<AttachmentProps<StreamChatGenerics>, 'attachments'> & {
21
21
  attachment: GalleryAttachment<StreamChatGenerics>;
22
22
  };
23
+ export declare const isLocalAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: UnknownType) => attachment is LocalAttachment<StreamChatGenerics>;
23
24
  export declare const isScrapedContent: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics>) => string | undefined;
24
25
  export declare const isUploadedImage: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics>) => boolean;
26
+ export declare const isLocalImageAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => attachment is LocalImageAttachment<StreamChatGenerics, Record<string, unknown>>;
25
27
  export declare const isGalleryAttachmentType: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(output: Attachment<StreamChatGenerics> | GalleryAttachment<StreamChatGenerics>) => output is GalleryAttachment<StreamChatGenerics>;
26
28
  export declare const isAudioAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => boolean;
29
+ export declare const isLocalAudioAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => attachment is LocalAudioAttachment<StreamChatGenerics, Record<string, unknown>>;
27
30
  export declare const isVoiceRecordingAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => attachment is VoiceRecordingAttachment<import("stream-chat").DefaultGenerics>;
28
- export declare const isLocalAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: LocalAttachment<StreamChatGenerics>) => attachment is LocalAttachment<StreamChatGenerics>;
29
- export declare const isFileAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics>) => boolean | "" | undefined;
31
+ export declare const isLocalVoiceRecordingAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => attachment is LocalVoiceRecordingAttachment<StreamChatGenerics, Record<string, unknown>>;
32
+ export declare const isFileAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => boolean;
33
+ export declare const isLocalFileAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => attachment is LocalFileAttachment<StreamChatGenerics, Record<string, unknown>>;
30
34
  export declare const isMediaAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => boolean;
35
+ export declare const isLocalMediaAttachment: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(attachment: Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>) => attachment is LocalVideoAttachment<StreamChatGenerics, Record<string, unknown>>;
31
36
  export declare const isSvgAttachment: (attachment: Attachment) => boolean;
32
37
  /**
33
38
  * @deprecated will be removed in the next major release,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAU5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,eAAO,MAAM,uBAAuB,UAA8D,CAAC;AAEnG,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,uBAAuB,EAAE,SAAS,EAAE,CAAC,CAAC;AAErF,MAAM,MAAM,iBAAiB,CAC3B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACzC,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACnF,aAAa,EAAE,uBAAuB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,GAAG;IAC7D,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,GAAG;IAC7D,UAAU,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,gBAAgB,sJAIyB,CAAC;AAEvD,eAAO,MAAM,eAAe,2IAIqC,CAAC;AAElE,eAAO,MAAM,uBAAuB,uNAI8C,CAAC;AAEnF,eAAO,MAAM,iBAAiB,iLAIE,CAAC;AAEjC,eAAO,MAAM,0BAA0B,uPAI0C,CAAC;AAElF,eAAO,MAAM,iBAAiB,0LAIgD,CAAC;AAE/E,eAAO,MAAM,gBAAgB,4JAQG,CAAC;AAEjC,eAAO,MAAM,iBAAiB,iLAMD,CAAC;AAE9B,eAAO,MAAM,eAAe,eAAgB,UAAU,YAGrD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,uLA2B3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,kKAmBnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,wJAYzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,2JAyBvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,2JAyBtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,kKActB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,2JAgBvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,2JA8CvB,CAAC;AAEF,eAAO,MAAM,MAAM,QAAS,MAAM,WAAW,MAAM,aAA+C,CAAC;AAEnG,eAAO,MAAM,eAAe,kBAAmB,MAAM,WAapD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/utils.tsx"],"names":[],"mappings":"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"}
@@ -8,22 +8,37 @@ import { Card as DefaultCard } from './Card';
8
8
  import { FileAttachment as DefaultFile } from './FileAttachment';
9
9
  import { Gallery as DefaultGallery, ImageComponent as DefaultImage } from '../Gallery';
10
10
  export var SUPPORTED_VIDEO_FORMATS = ['video/mp4', 'video/ogg', 'video/webm', 'video/quicktime'];
11
+ export var isLocalAttachment = function (attachment) { var _a; return !!((_a = attachment.localMetadata) === null || _a === void 0 ? void 0 : _a.id); };
11
12
  export var isScrapedContent = function (attachment) { return attachment.og_scrape_url || attachment.title_link; };
12
13
  export var isUploadedImage = function (attachment) { return attachment.type === 'image' && !isScrapedContent(attachment); };
14
+ export var isLocalImageAttachment = function (attachment) {
15
+ return isUploadedImage(attachment) && isLocalAttachment(attachment);
16
+ };
13
17
  export var isGalleryAttachmentType = function (output) { return Array.isArray(output.images); };
14
18
  export var isAudioAttachment = function (attachment) { return attachment.type === 'audio'; };
19
+ export var isLocalAudioAttachment = function (attachment) {
20
+ return isAudioAttachment(attachment) && isLocalAttachment(attachment);
21
+ };
15
22
  export var isVoiceRecordingAttachment = function (attachment) { return attachment.type === 'voiceRecording'; };
16
- export var isLocalAttachment = function (attachment) { return !!attachment.$internal; };
23
+ export var isLocalVoiceRecordingAttachment = function (attachment) {
24
+ return isVoiceRecordingAttachment(attachment) && isLocalAttachment(attachment);
25
+ };
17
26
  export var isFileAttachment = function (attachment) {
18
27
  return attachment.type === 'file' ||
19
- (attachment.mime_type &&
28
+ !!(attachment.mime_type &&
20
29
  SUPPORTED_VIDEO_FORMATS.indexOf(attachment.mime_type) === -1 &&
21
30
  attachment.type !== 'video');
22
31
  };
32
+ export var isLocalFileAttachment = function (attachment) {
33
+ return isFileAttachment(attachment) && isLocalAttachment(attachment);
34
+ };
23
35
  export var isMediaAttachment = function (attachment) {
24
36
  return (attachment.mime_type && SUPPORTED_VIDEO_FORMATS.indexOf(attachment.mime_type) !== -1) ||
25
37
  attachment.type === 'video';
26
38
  };
39
+ export var isLocalMediaAttachment = function (attachment) {
40
+ return isMediaAttachment(attachment) && isLocalAttachment(attachment);
41
+ };
27
42
  export var isSvgAttachment = function (attachment) {
28
43
  var filename = attachment.fallback || '';
29
44
  return filename.toLowerCase().endsWith('.svg');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Window = require('../../Window-5a6bf944.js');
5
+ var Window = require('../../Window-5802024e.js');
6
6
  var React = require('react');
7
7
  var Picker = require('@emoji-mart/react');
8
8
  require('dayjs');
@@ -7,7 +7,7 @@ import { useMessageInputContext } from '../../../context';
7
7
  export var AudioRecorder = function () {
8
8
  var _a, _b;
9
9
  var _c = useMessageInputContext().recordingController, completeRecording = _c.completeRecording, recorder = _c.recorder, recording = _c.recording, recordingState = _c.recordingState;
10
- var isUploadingFile = ((_a = recording === null || recording === void 0 ? void 0 : recording.$internal) === null || _a === void 0 ? void 0 : _a.uploadState) === 'uploading';
10
+ var isUploadingFile = ((_a = recording === null || recording === void 0 ? void 0 : recording.localMetadata) === null || _a === void 0 ? void 0 : _a.uploadState) === 'uploading';
11
11
  var state = useMemo(function () { return ({
12
12
  paused: recordingState === MediaRecordingState.PAUSED,
13
13
  recording: recordingState === MediaRecordingState.RECORDING,
@@ -4,6 +4,7 @@ import { BehaviorSubject, Subject } from '../observable';
4
4
  import { RecordedMediaType } from '../../ReactFileUtilities';
5
5
  import { TranslationContextValue } from '../../../context';
6
6
  import type { LocalVoiceRecordingAttachment } from '../../MessageInput';
7
+ import type { DefaultStreamChatGenerics } from '../../../types';
7
8
  export declare const POSSIBLE_TRANSCODING_MIME_TYPES: readonly ["audio/wav", "audio/mp3"];
8
9
  export declare const DEFAULT_MEDIA_RECORDER_CONFIG: MediaRecorderConfig;
9
10
  export declare const DEFAULT_AUDIO_TRANSCODER_CONFIG: TranscoderConfig;
@@ -31,7 +32,7 @@ export declare enum MediaRecordingState {
31
32
  export declare enum RecordingAttachmentType {
32
33
  VOICE_RECORDING = "voiceRecording"
33
34
  }
34
- export declare class MediaRecorderController {
35
+ export declare class MediaRecorderController<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> {
35
36
  permission: BrowserPermission;
36
37
  mediaRecorder: MediaRecorder | undefined;
37
38
  amplitudeRecorder: AmplitudeRecorder | undefined;
@@ -43,9 +44,9 @@ export declare class MediaRecorderController {
43
44
  recordedData: Blob[];
44
45
  recordingUri: string | undefined;
45
46
  mediaType: RecordedMediaType;
46
- signalRecordingReady: ((r: LocalVoiceRecordingAttachment) => void) | undefined;
47
+ signalRecordingReady: ((r: LocalVoiceRecordingAttachment<StreamChatGenerics>) => void) | undefined;
47
48
  recordingState: BehaviorSubject<MediaRecordingState | undefined>;
48
- recording: BehaviorSubject<LocalVoiceRecordingAttachment<import("../../..").DefaultStreamChatGenerics> | undefined>;
49
+ recording: BehaviorSubject<LocalVoiceRecordingAttachment<StreamChatGenerics, Record<string, unknown>> | undefined>;
49
50
  error: Subject<Error | undefined>;
50
51
  notification: Subject<{
51
52
  text: string;
@@ -57,13 +58,13 @@ export declare class MediaRecorderController {
57
58
  get durationMs(): number;
58
59
  generateRecordingTitle: (mimeType: string) => string;
59
60
  makeVoiceRecording: () => Promise<{
60
- $internal: {
61
- file: File;
62
- id: string;
63
- };
64
61
  asset_url: string;
65
62
  duration: number;
66
63
  file_size: number;
64
+ localMetadata: {
65
+ file: File;
66
+ id: string;
67
+ };
67
68
  mime_type: string;
68
69
  title: string;
69
70
  type: RecordingAttachmentType;
@@ -76,7 +77,7 @@ export declare class MediaRecorderController {
76
77
  start: () => Promise<void>;
77
78
  pause: () => void;
78
79
  resume: () => void;
79
- stop: () => Promise<undefined> | Promise<LocalVoiceRecordingAttachment<import("../../..").DefaultStreamChatGenerics>>;
80
+ stop: () => Promise<undefined> | Promise<LocalVoiceRecordingAttachment<StreamChatGenerics, Record<string, unknown>>>;
80
81
  cancel: () => void;
81
82
  }
82
83
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"MediaRecorderController.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/classes/MediaRecorderController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaRecorderController.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/classes/MediaRecorderController.ts"],"names":[],"mappings":"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"}
@@ -97,13 +97,13 @@ var MediaRecorderController = /** @class */ (function () {
97
97
  mimeType: blob.type,
98
98
  });
99
99
  return [2 /*return*/, {
100
- $internal: {
101
- file: file,
102
- id: nanoid(),
103
- },
104
100
  asset_url: this.recordingUri,
105
101
  duration: this.durationMs / 1000,
106
102
  file_size: blob.size,
103
+ localMetadata: {
104
+ file: file,
105
+ id: nanoid(),
106
+ },
107
107
  mime_type: blob.type,
108
108
  title: file.name,
109
109
  type: RecordingAttachmentType.VOICE_RECORDING,
@@ -3,11 +3,11 @@ import { AudioRecorderConfig, MediaRecorderController, MediaRecordingState } fro
3
3
  import type { LocalVoiceRecordingAttachment } from '../../MessageInput';
4
4
  import type { DefaultStreamChatGenerics } from '../../../types';
5
5
  export type CustomAudioRecordingConfig = Partial<AudioRecorderConfig>;
6
- export type RecordingController = {
6
+ export type RecordingController<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
7
7
  completeRecording: () => void;
8
8
  permissionState?: PermissionState;
9
9
  recorder?: MediaRecorderController;
10
- recording?: LocalVoiceRecordingAttachment;
10
+ recording?: LocalVoiceRecordingAttachment<StreamChatGenerics>;
11
11
  recordingState?: MediaRecordingState;
12
12
  };
13
13
  type UseMediaRecorderParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Pick<MessageInputContextValue<StreamChatGenerics>, 'asyncMessagesMultiSendEnabled' | 'handleSubmit' | 'uploadAttachment'> & {
@@ -15,6 +15,6 @@ type UseMediaRecorderParams<StreamChatGenerics extends DefaultStreamChatGenerics
15
15
  generateRecordingTitle?: (mimeType: string) => string;
16
16
  recordingConfig?: CustomAudioRecordingConfig;
17
17
  };
18
- export declare const useMediaRecorder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ asyncMessagesMultiSendEnabled, enabled, generateRecordingTitle, handleSubmit, recordingConfig, uploadAttachment, }: UseMediaRecorderParams<StreamChatGenerics>) => RecordingController;
18
+ export declare const useMediaRecorder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ asyncMessagesMultiSendEnabled, enabled, generateRecordingTitle, handleSubmit, recordingConfig, uploadAttachment, }: UseMediaRecorderParams<StreamChatGenerics>) => RecordingController<StreamChatGenerics>;
19
19
  export {};
20
20
  //# sourceMappingURL=useMediaRecorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaRecorder.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/hooks/useMediaRecorder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAyB,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,SAAS,CAAC,EAAE,6BAA6B,CAAC;IAC1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,KAAK,sBAAsB,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CACN,wBAAwB,CAAC,kBAAkB,CAAC,EAC5C,+BAA+B,GAAG,cAAc,GAAG,kBAAkB,CACtE,GAAG;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,0PASmB,mBA6D/C,CAAC"}
1
+ {"version":3,"file":"useMediaRecorder.d.ts","sourceRoot":"","sources":["../../../../src/components/MediaRecorder/hooks/useMediaRecorder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAyB,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEtE,MAAM,MAAM,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,SAAS,CAAC,EAAE,6BAA6B,CAAC,kBAAkB,CAAC,CAAC;IAC9D,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,KAAK,sBAAsB,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CACN,wBAAwB,CAAC,kBAAkB,CAAC,EAC5C,+BAA+B,GAAG,cAAc,GAAG,kBAAkB,CACtE,GAAG;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,iSAsE5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageSimple.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageSimple.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgCxC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA6NnE;;GAEG;AACH,eAAO,MAAM,aAAa,kKAQzB,CAAC"}
1
+ {"version":3,"file":"MessageSimple.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageSimple.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgCxC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA8NnE;;GAEG;AACH,eAAO,MAAM,aAAa,kKAQzB,CAAC"}
@@ -66,8 +66,9 @@ var MessageSimpleWithContext = function (props) {
66
66
  'str-chat__message--has-attachment': hasAttachment,
67
67
  'str-chat__message--highlighted': highlighted,
68
68
  'str-chat__message--pinned pinned-message': message.pinned,
69
- 'str-chat__message--with-reactions str-chat__message-with-thread-link': canShowReactions,
69
+ 'str-chat__message--with-reactions': canShowReactions,
70
70
  'str-chat__message-send-can-be-retried': (message === null || message === void 0 ? void 0 : message.status) === 'failed' && (message === null || message === void 0 ? void 0 : message.errorStatusCode) !== 403,
71
+ 'str-chat__message-with-thread-link': showReplyCountButton,
71
72
  'str-chat__virtual-message__wrapper--end': endOfGroup,
72
73
  'str-chat__virtual-message__wrapper--first': firstOfGroup,
73
74
  'str-chat__virtual-message__wrapper--group': groupedByUser,
@@ -0,0 +1,16 @@
1
+ import React, { ComponentType } from 'react';
2
+ import { UnsupportedAttachmentPreviewProps } from './UnsupportedAttachmentPreview';
3
+ import { VoiceRecordingPreviewProps } from './VoiceRecordingPreview';
4
+ import { FileAttachmentPreviewProps } from './FileAttachmentPreview';
5
+ import { ImageAttachmentPreviewProps } from './ImageAttachmentPreview';
6
+ import type { DefaultStreamChatGenerics } from '../../../types';
7
+ export type AttachmentPreviewListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
8
+ AudioAttachmentPreview?: ComponentType<FileAttachmentPreviewProps>;
9
+ FileAttachmentPreview?: ComponentType<FileAttachmentPreviewProps>;
10
+ ImageAttachmentPreview?: ComponentType<ImageAttachmentPreviewProps<StreamChatGenerics>>;
11
+ UnsupportedAttachmentPreview?: ComponentType<UnsupportedAttachmentPreviewProps<StreamChatGenerics>>;
12
+ VideoAttachmentPreview?: ComponentType<FileAttachmentPreviewProps>;
13
+ VoiceRecordingPreview?: ComponentType<VoiceRecordingPreviewProps<StreamChatGenerics>>;
14
+ };
15
+ export declare const AttachmentPreviewList: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ AudioAttachmentPreview, FileAttachmentPreview, ImageAttachmentPreview, UnsupportedAttachmentPreview, VideoAttachmentPreview, VoiceRecordingPreview, }: AttachmentPreviewListProps<StreamChatGenerics>) => React.JSX.Element;
16
+ //# sourceMappingURL=AttachmentPreviewList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreviewList.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAEL,iCAAiC,EAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAWlC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,0BAA0B,CACpC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,sBAAsB,CAAC,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;IACnE,qBAAqB,CAAC,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;IAClE,sBAAsB,CAAC,EAAE,aAAa,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACxF,4BAA4B,CAAC,EAAE,aAAa,CAC1C,iCAAiC,CAAC,kBAAkB,CAAC,CACtD,CAAC;IACF,sBAAsB,CAAC,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;IACnE,qBAAqB,CAAC,EAAE,aAAa,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,CAAC,CAAC;CACvF,CAAC;AAEF,eAAO,MAAM,qBAAqB,kTA2FjC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { UnsupportedAttachmentPreview as DefaultUnknownAttachmentPreview, } from './UnsupportedAttachmentPreview';
3
+ import { VoiceRecordingPreview as DefaultVoiceRecordingPreview, } from './VoiceRecordingPreview';
4
+ import { FileAttachmentPreview as DefaultFilePreview, } from './FileAttachmentPreview';
5
+ import { FileUploadPreviewAdapter, ImageUploadPreviewAdapter } from './UploadPreviewItem';
6
+ import { ImageAttachmentPreview as DefaultImagePreview, } from './ImageAttachmentPreview';
7
+ import { isLocalAttachment, isLocalAudioAttachment, isLocalFileAttachment, isLocalImageAttachment, isLocalMediaAttachment, isLocalVoiceRecordingAttachment, } from '../../Attachment';
8
+ import { useMessageInputContext } from '../../../context';
9
+ export var AttachmentPreviewList = function (_a) {
10
+ var _b = _a.AudioAttachmentPreview, AudioAttachmentPreview = _b === void 0 ? DefaultFilePreview : _b, _c = _a.FileAttachmentPreview, FileAttachmentPreview = _c === void 0 ? DefaultFilePreview : _c, _d = _a.ImageAttachmentPreview, ImageAttachmentPreview = _d === void 0 ? DefaultImagePreview : _d, _e = _a.UnsupportedAttachmentPreview, UnsupportedAttachmentPreview = _e === void 0 ? DefaultUnknownAttachmentPreview : _e, _f = _a.VideoAttachmentPreview, VideoAttachmentPreview = _f === void 0 ? DefaultFilePreview : _f, _g = _a.VoiceRecordingPreview, VoiceRecordingPreview = _g === void 0 ? DefaultVoiceRecordingPreview : _g;
11
+ var _h = useMessageInputContext('AttachmentPreviewList'), attachments = _h.attachments, fileOrder = _h.fileOrder, imageOrder = _h.imageOrder, removeAttachments = _h.removeAttachments, uploadAttachment = _h.uploadAttachment;
12
+ return (React.createElement("div", { className: 'str-chat__attachment-preview-list' },
13
+ React.createElement("div", { className: 'str-chat__attachment-list-scroll-container', "data-testid": 'attachment-list-scroll-container' },
14
+ attachments.map(function (attachment) {
15
+ if (isLocalVoiceRecordingAttachment(attachment)) {
16
+ return (React.createElement(VoiceRecordingPreview, { attachment: attachment, handleRetry: uploadAttachment, key: attachment.localMetadata.id || attachment.asset_url, removeAttachments: removeAttachments }));
17
+ }
18
+ else if (isLocalAudioAttachment(attachment)) {
19
+ return (React.createElement(AudioAttachmentPreview, { attachment: attachment, handleRetry: uploadAttachment, key: attachment.localMetadata.id || attachment.asset_url, removeAttachments: removeAttachments }));
20
+ }
21
+ else if (isLocalMediaAttachment(attachment)) {
22
+ return (React.createElement(VideoAttachmentPreview, { attachment: attachment, handleRetry: uploadAttachment, key: attachment.localMetadata.id || attachment.asset_url, removeAttachments: removeAttachments }));
23
+ }
24
+ else if (isLocalImageAttachment(attachment)) {
25
+ return (React.createElement(ImageAttachmentPreview, { attachment: attachment, handleRetry: uploadAttachment, key: attachment.localMetadata.id || attachment.image_url, removeAttachments: removeAttachments }));
26
+ }
27
+ else if (isLocalFileAttachment(attachment)) {
28
+ return (React.createElement(FileAttachmentPreview, { attachment: attachment, handleRetry: uploadAttachment, key: attachment.localMetadata.id || attachment.asset_url, removeAttachments: removeAttachments }));
29
+ }
30
+ else if (isLocalAttachment(attachment)) {
31
+ return (React.createElement(UnsupportedAttachmentPreview, { attachment: attachment, handleRetry: uploadAttachment, key: attachment.localMetadata.id, removeAttachments: removeAttachments }));
32
+ }
33
+ return null;
34
+ }),
35
+ imageOrder.map(function (id) { return (React.createElement(ImageUploadPreviewAdapter, { id: id, key: id, Preview: ImageAttachmentPreview })); }),
36
+ fileOrder.map(function (id) { return (React.createElement(FileUploadPreviewAdapter, { id: id, key: id, Preview: FileAttachmentPreview })); }))));
37
+ };
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { AttachmentPreviewProps } from './types';
3
+ import { LocalAttachmentCast, LocalAttachmentUploadMetadata } from '../types';
4
+ import type { DefaultStreamChatGenerics } from '../../../types';
5
+ type FileLikeAttachment = {
6
+ asset_url?: string;
7
+ mime_type?: string;
8
+ title?: string;
9
+ };
10
+ export type FileAttachmentPreviewProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = AttachmentPreviewProps<LocalAttachmentCast<FileLikeAttachment, LocalAttachmentUploadMetadata & CustomLocalMetadata>, StreamChatGenerics>;
11
+ export declare const FileAttachmentPreview: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ attachment, handleRetry, removeAttachments, }: FileAttachmentPreviewProps<StreamChatGenerics, Record<string, unknown>>) => React.JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=FileAttachmentPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileAttachmentPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,CACpC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3C,sBAAsB,CACxB,mBAAmB,CAAC,kBAAkB,EAAE,6BAA6B,GAAG,mBAAmB,CAAC,EAC5F,kBAAkB,CACnB,CAAC;AAEF,eAAO,MAAM,qBAAqB,mOAmDjC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { FileIcon } from '../../ReactFileUtilities';
3
+ import { CloseIcon, DownloadIcon, LoadingIndicatorIcon, RetryIcon } from '../icons';
4
+ export var FileAttachmentPreview = function (_a) {
5
+ var _b, _c, _d, _e;
6
+ var attachment = _a.attachment, handleRetry = _a.handleRetry, removeAttachments = _a.removeAttachments;
7
+ return (React.createElement("div", { className: 'str-chat__attachment-preview-file', "data-testid": 'attachment-preview-file' },
8
+ React.createElement("div", { className: 'str-chat__attachment-preview-file-icon' },
9
+ React.createElement(FileIcon, { filename: attachment.title, mimeType: attachment.mime_type, version: '2' })),
10
+ React.createElement("button", { className: 'str-chat__attachment-preview-delete', "data-testid": 'file-preview-item-delete-button', disabled: ((_b = attachment.localMetadata) === null || _b === void 0 ? void 0 : _b.uploadState) === 'uploading', onClick: function () { var _a, _b; return ((_a = attachment.localMetadata) === null || _a === void 0 ? void 0 : _a.id) && removeAttachments([(_b = attachment.localMetadata) === null || _b === void 0 ? void 0 : _b.id]); } },
11
+ React.createElement(CloseIcon, null)),
12
+ ((_c = attachment.localMetadata) === null || _c === void 0 ? void 0 : _c.uploadState) === 'failed' && !!handleRetry && (React.createElement("button", { className: 'str-chat__attachment-preview-error str-chat__attachment-preview-error-file', "data-testid": 'file-preview-item-retry-button', onClick: function () { return handleRetry(attachment); } },
13
+ React.createElement(RetryIcon, null))),
14
+ React.createElement("div", { className: 'str-chat__attachment-preview-file-end' },
15
+ React.createElement("div", { className: 'str-chat__attachment-preview-file-name', title: attachment.title }, attachment.title),
16
+ ((_d = attachment.localMetadata) === null || _d === void 0 ? void 0 : _d.uploadState) === 'finished' && !!attachment.asset_url && (React.createElement("a", { className: 'str-chat__attachment-preview-file-download', download: true, href: attachment.asset_url, rel: 'noreferrer', target: '_blank' },
17
+ React.createElement(DownloadIcon, null))),
18
+ ((_e = attachment.localMetadata) === null || _e === void 0 ? void 0 : _e.uploadState) === 'uploading' && React.createElement(LoadingIndicatorIcon, { size: 17 }))));
19
+ };
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { AttachmentPreviewProps } from './types';
3
+ import type { LocalImageAttachment } from '../types';
4
+ import type { DefaultStreamChatGenerics } from '../../../types';
5
+ export type ImageAttachmentPreviewProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = AttachmentPreviewProps<LocalImageAttachment<StreamChatGenerics, CustomLocalMetadata>, StreamChatGenerics>;
6
+ export declare const ImageAttachmentPreview: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ attachment, handleRetry, removeAttachments, }: ImageAttachmentPreviewProps<StreamChatGenerics, Record<string, unknown>>) => React.JSX.Element;
7
+ //# sourceMappingURL=ImageAttachmentPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageAttachmentPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,2BAA2B,CACrC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3C,sBAAsB,CACxB,oBAAoB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,EAC7D,kBAAkB,CACnB,CAAC;AAEF,eAAO,MAAM,sBAAsB,oOAyDlC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import clsx from 'clsx';
2
+ import { CloseIcon, LoadingIndicatorIcon, RetryIcon } from '../icons';
3
+ import React, { useCallback, useState } from 'react';
4
+ import { BaseImage as DefaultBaseImage } from '../../Gallery';
5
+ import { useComponentContext } from '../../../context';
6
+ export var ImageAttachmentPreview = function (_a) {
7
+ var _b;
8
+ var attachment = _a.attachment, handleRetry = _a.handleRetry, removeAttachments = _a.removeAttachments;
9
+ var _c = useComponentContext('ImagePreview').BaseImage, BaseImage = _c === void 0 ? DefaultBaseImage : _c;
10
+ var _d = useState(false), previewError = _d[0], setPreviewError = _d[1];
11
+ var _e = (_b = attachment.localMetadata) !== null && _b !== void 0 ? _b : {}, id = _e.id, uploadState = _e.uploadState;
12
+ var handleLoadError = useCallback(function () { return setPreviewError(true); }, []);
13
+ return (React.createElement("div", { className: clsx('str-chat__attachment-preview-image', {
14
+ 'str-chat__attachment-preview-image--error': previewError,
15
+ }), "data-testid": 'attachment-preview-image' },
16
+ React.createElement("button", { className: 'str-chat__attachment-preview-delete', "data-testid": 'image-preview-item-delete-button', disabled: uploadState === 'uploading', onClick: function () { return id && removeAttachments([id]); } },
17
+ React.createElement(CloseIcon, null)),
18
+ uploadState === 'failed' && (React.createElement("button", { className: 'str-chat__attachment-preview-error str-chat__attachment-preview-error-image', "data-testid": 'image-preview-item-retry-button', onClick: function () { return handleRetry(attachment); } },
19
+ React.createElement(RetryIcon, null))),
20
+ uploadState === 'uploading' && (React.createElement("div", { className: 'str-chat__attachment-preview-image-loading' },
21
+ React.createElement(LoadingIndicatorIcon, { size: 17 }))),
22
+ attachment.image_url && (React.createElement(BaseImage, { alt: attachment.title, className: 'str-chat__attachment-preview-thumbnail', onError: handleLoadError, src: attachment.image_url, title: attachment.title }))));
23
+ };
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { AttachmentPreviewProps } from './types';
3
+ import type { AnyLocalAttachment } from '../types';
4
+ import type { DefaultStreamChatGenerics } from '../../../types';
5
+ export type UnsupportedAttachmentPreviewProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = AttachmentPreviewProps<AnyLocalAttachment<StreamChatGenerics, CustomLocalMetadata>, StreamChatGenerics>;
6
+ export declare const UnsupportedAttachmentPreview: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ attachment, handleRetry, removeAttachments, }: UnsupportedAttachmentPreviewProps<StreamChatGenerics, Record<string, unknown>>) => React.JSX.Element;
7
+ //# sourceMappingURL=UnsupportedAttachmentPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedAttachmentPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,iCAAiC,CAC3C,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3C,sBAAsB,CACxB,kBAAkB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,EAC3D,kBAAkB,CACnB,CAAC;AAEF,eAAO,MAAM,4BAA4B,0OA4DxC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { CloseIcon, DownloadIcon, LoadingIndicatorIcon, RetryIcon } from '../icons';
3
+ import { FileIcon } from '../../ReactFileUtilities';
4
+ import { useTranslationContext } from '../../../context';
5
+ export var UnsupportedAttachmentPreview = function (_a) {
6
+ var _b, _c, _d, _e, _f;
7
+ var attachment = _a.attachment, handleRetry = _a.handleRetry, removeAttachments = _a.removeAttachments;
8
+ var t = useTranslationContext('UnsupportedAttachmentPreview').t;
9
+ var title = (_b = attachment.title) !== null && _b !== void 0 ? _b : t('Unsupported attachment');
10
+ return (React.createElement("div", { className: 'str-chat__attachment-preview-unsupported', "data-testid": 'attachment-preview-unknown' },
11
+ React.createElement("div", { className: 'str-chat__attachment-preview-file-icon' },
12
+ React.createElement(FileIcon, { filename: title, mimeType: attachment.mime_type, version: '2' })),
13
+ React.createElement("button", { className: 'str-chat__attachment-preview-delete', "data-testid": 'file-preview-item-delete-button', disabled: ((_c = attachment.localMetadata) === null || _c === void 0 ? void 0 : _c.uploadState) === 'uploading', onClick: function () { var _a, _b; return ((_a = attachment.localMetadata) === null || _a === void 0 ? void 0 : _a.id) && removeAttachments([(_b = attachment.localMetadata) === null || _b === void 0 ? void 0 : _b.id]); } },
14
+ React.createElement(CloseIcon, null)),
15
+ ((_d = attachment.localMetadata) === null || _d === void 0 ? void 0 : _d.uploadState) === 'failed' && !!handleRetry && (React.createElement("button", { className: 'str-chat__attachment-preview-error str-chat__attachment-preview-error-file', "data-testid": 'file-preview-item-retry-button', onClick: function () { return handleRetry(attachment); } },
16
+ React.createElement(RetryIcon, null))),
17
+ React.createElement("div", { className: 'str-chat__attachment-preview-metadata' },
18
+ React.createElement("div", { className: 'str-chat__attachment-preview-title', title: title }, title),
19
+ ((_e = attachment.localMetadata) === null || _e === void 0 ? void 0 : _e.uploadState) === 'finished' && !!attachment.asset_url && (React.createElement("a", { className: 'str-chat__attachment-preview-file-download', download: true, href: attachment.asset_url, rel: 'noreferrer', target: '_blank' },
20
+ React.createElement(DownloadIcon, null))),
21
+ ((_f = attachment.localMetadata) === null || _f === void 0 ? void 0 : _f.uploadState) === 'uploading' && (React.createElement(LoadingIndicatorIcon, { size: 17 })))));
22
+ };
@@ -0,0 +1,12 @@
1
+ import React, { ComponentType } from 'react';
2
+ import { FileAttachmentPreviewProps } from './FileAttachmentPreview';
3
+ import { ImageAttachmentPreviewProps } from './ImageAttachmentPreview';
4
+ import type { DefaultStreamChatGenerics } from '../../../types';
5
+ type PreviewAdapterProps<P> = {
6
+ id: string;
7
+ Preview?: ComponentType<P>;
8
+ };
9
+ export declare const ImageUploadPreviewAdapter: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ id, Preview, }: PreviewAdapterProps<ImageAttachmentPreviewProps<StreamChatGenerics, Record<string, unknown>>>) => React.JSX.Element | null;
10
+ export declare const FileUploadPreviewAdapter: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ id, Preview, }: PreviewAdapterProps<FileAttachmentPreviewProps>) => React.JSX.Element | null;
11
+ export {};
12
+ //# sourceMappingURL=UploadPreviewItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadPreviewItem.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAwB,MAAM,OAAO,CAAC;AACnE,OAAO,EAAyB,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAA0B,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAG/F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AACzE,eAAO,MAAM,yBAAyB,iOA8CrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,uGAKlC,oBAAoB,0BAA0B,CAAC,6BA6CjD,CAAC"}
@@ -0,0 +1,61 @@
1
+ import React, { useCallback, useMemo } from 'react';
2
+ import { FileAttachmentPreview } from './FileAttachmentPreview';
3
+ import { ImageAttachmentPreview } from './ImageAttachmentPreview';
4
+ import { useMessageInputContext } from '../../../context';
5
+ export var ImageUploadPreviewAdapter = function (_a) {
6
+ var id = _a.id, _b = _a.Preview, Preview = _b === void 0 ? ImageAttachmentPreview : _b;
7
+ var _c = useMessageInputContext('ImageUploadPreviewAdapter'), imageUploads = _c.imageUploads, removeImage = _c.removeImage, uploadImage = _c.uploadImage;
8
+ var removeAttachments = useCallback(function (ids) { return removeImage(ids[0]); }, [removeImage]);
9
+ var handleRetry = useCallback(function (attachment) {
10
+ return attachment.localMetadata && uploadImage(attachment.localMetadata.id);
11
+ }, [uploadImage]);
12
+ var image = imageUploads[id];
13
+ var attachment = useMemo(function () {
14
+ var _a;
15
+ // do not display scraped attachments
16
+ return !image || image.og_scrape_url
17
+ ? undefined
18
+ : {
19
+ image_url: (_a = image.previewUri) !== null && _a !== void 0 ? _a : image.url,
20
+ localMetadata: {
21
+ file: image.file,
22
+ id: id,
23
+ uploadState: image.state,
24
+ },
25
+ title: image.file.name,
26
+ type: 'image',
27
+ };
28
+ }, [id, image]);
29
+ if (!attachment)
30
+ return null;
31
+ return (React.createElement(Preview, { attachment: attachment, handleRetry: handleRetry, removeAttachments: removeAttachments }));
32
+ };
33
+ export var FileUploadPreviewAdapter = function (_a) {
34
+ var id = _a.id, _b = _a.Preview, Preview = _b === void 0 ? FileAttachmentPreview : _b;
35
+ var _c = useMessageInputContext('FileUploadPreviewAdapter'), fileUploads = _c.fileUploads, removeFile = _c.removeFile, uploadFile = _c.uploadFile;
36
+ var removeAttachments = useCallback(function (ids) {
37
+ removeFile(ids[0]);
38
+ }, [removeFile]);
39
+ var handleRetry = useCallback(function (attachment) {
40
+ return attachment.localMetadata && uploadFile(attachment.localMetadata.id);
41
+ }, [uploadFile]);
42
+ var file = fileUploads[id];
43
+ var attachment = useMemo(function () {
44
+ return !file
45
+ ? undefined
46
+ : {
47
+ asset_url: file.url,
48
+ localMetadata: {
49
+ file: file.file,
50
+ id: id,
51
+ uploadState: file.state,
52
+ },
53
+ mime_type: file.file.type,
54
+ title: file.file.name,
55
+ type: 'file',
56
+ };
57
+ }, [file, id]);
58
+ if (!attachment)
59
+ return null;
60
+ return (React.createElement(Preview, { attachment: attachment, handleRetry: handleRetry, removeAttachments: removeAttachments }));
61
+ };
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { AttachmentPreviewProps } from './types';
3
+ import type { LocalVoiceRecordingAttachment } from '../types';
4
+ import type { DefaultStreamChatGenerics } from '../../../types';
5
+ export type VoiceRecordingPreviewProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = AttachmentPreviewProps<LocalVoiceRecordingAttachment<StreamChatGenerics, CustomLocalMetadata>, StreamChatGenerics>;
6
+ export declare const VoiceRecordingPreview: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ attachment, handleRetry, removeAttachments, }: VoiceRecordingPreviewProps<StreamChatGenerics, Record<string, unknown>>) => React.JSX.Element;
7
+ //# sourceMappingURL=VoiceRecordingPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoiceRecordingPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,0BAA0B,CACpC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3C,sBAAsB,CACxB,6BAA6B,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,EACtE,kBAAkB,CACnB,CAAC;AAEF,eAAO,MAAM,qBAAqB,mOA0DjC,CAAC"}