-
Notifications
You must be signed in to change notification settings - Fork 280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: keep attachments array and remove file and image uploads in MessageInput state #2445
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2445 +/- ##
==========================================
- Coverage 85.34% 85.19% -0.15%
==========================================
Files 373 369 -4
Lines 8070 7890 -180
Branches 1944 1912 -32
==========================================
- Hits 6887 6722 -165
+ Misses 1091 1077 -14
+ Partials 92 91 -1 ☔ View full report in Codecov by Sentry. |
Size Change: -5.28 kB (-0.7%) Total Size: 752 kB
ℹ️ View Unchanged
|
|
||
The shortcomings of the above approach have been adjusted as follows: | ||
|
||
1. All the attachments except the link preview attachments (objects that contain `og_scrape_url` attribute) are now stored in `attachments` array of `MessageInputContext`. Array keeps order and the attachment type can be determined by the `attachment.type` property. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure if we should not include the link previews in attachments
too.
## [12.0.0-rc.3](v12.0.0-rc.2...v12.0.0-rc.3) (2024-07-10) ### ⚠ BREAKING CHANGES * MP3 audio encoder has to be explicitly imported and used as a plugin for audio recordings. The default audio recording format is audio/wav. * @breezystack/lamejs became a peer dependency and has to be installed by the integrator so that the MP3 audio encoder can work properly. * Removed fileOrder, imageOrder, fileUploads, imageUploads, uploadFile, uploadImage, removeFile, removeImage from the MessageInputContext. Use attachments, uploadAttachment, uploadNewFiles, upsertAttachments, removeAttachments instead. * Removed default values for timestamp formatting props like calendar or format for DateSeparator, EventComponent, MessageTimestamp. The formatting configuration now entirely relies on i18n translations. ### Bug Fixes * acknowledge the use of LAME ([dbce6dc](dbce6dc)) * extract MP3 encoder plugin ([#2447](#2447)) ([625196f](625196f)) * reflect Message groupStyles prop in the component memoization ([#2448](#2448)) ([251eb08](251eb08)) ### Features * keep attachments array and remove file and image uploads in MessageInput state ([#2445](#2445)) ([238e801](238e801)) * remove default timestamp formatting props from DateSeparator, EventComponent, MessageTimestamp ([#2442](#2442)) ([6431954](6431954))
🎉 This PR is included in version 12.0.0-rc.3 🎉 The release is available on: Your semantic-release bot 📦🚀 |
## [12.0.0](v11.23.9...v12.0.0) (2024-09-17) ### ⚠ BREAKING CHANGES * - own user will not anymore be filtered out of the selection list of users to mention if `mentionAllAppUsers` is enabled on MessageInput * - removes the following variables from `MessageContext`: isReactionEnabled, onReactionListClick, showDetailedReactions, reactionSelectorRef - removes prop `messageWrapperRef` from `MessageOptions` and `MessageActions` props. * ComponentContext no longer provides any defaults * removed Thread prop fullWidth, removed class str-chat__thread--full * removed Window prop hideOnThread, replaced class str-chat__main-panel--hideOnThread with str-chat__main-panel--thread-open * MP3 audio encoder has to be explicitly imported and used as a plugin for audio recordings. The default audio recording format is audio/wav. * @breezystack/lamejs became a peer dependency and has to be installed by the integrator so that the MP3 audio encoder can work properly. * Removed fileOrder, imageOrder, fileUploads, imageUploads, uploadFile, uploadImage, removeFile, removeImage from the MessageInputContext. Use attachments, uploadAttachment, uploadNewFiles, upsertAttachments, removeAttachments instead. * Removed default values for timestamp formatting props like calendar or format for DateSeparator, EventComponent, MessageTimestamp. The formatting configuration now entirely relies on i18n translations. * The VirtualizedMessageList does not provide default Footer component * The VirtualizedMessageList markup has changed as TypingIndicator is rendered as a child of MessageListMainPanel * stylesheet import path changed & v1 stylesheet has been dropped, see release guide for more information * theme v1 related markup and classNames have been removed * `themeVersion` property has been removed from `ChatContext` ### Bug Fixes * add theme to ChatView component ([#2494](#2494)) ([d477072](d477072)) * address the circular dependencies among TranslationContext and Streami18n ([#2483](#2483)) ([b91fd9a](b91fd9a)) * change platform for CJS bundle from node to browser ([#2454](#2454)) ([4bc2d35](4bc2d35)) * do not rerender on client options update ([#2465](#2465)) ([3899352](3899352)) * export typeVersions correctly for emojis and mp3-encoder ([#2449](#2449)) ([17218db](17218db)) * extract MP3 encoder plugin ([#2447](#2447)) ([625196f](625196f)) * provide both browser and node cjs bundles ([#2457](#2457)) ([273ea2a](273ea2a)) * quote replies in threads ([#2487](#2487)) ([0e4a6f1](0e4a6f1)) * remove the use of deprecated query operator $ne ([#2504](#2504)) ([09614f6](09614f6)) * render typing indicator outside the VirtualizedMessageList scroll container ([#2406](#2406)) ([d9442d2](d9442d2)) * reuse useChannelPreviewInfo for ThreadListItemUI ([#2508](#2508)) ([4bb5b7c](4bb5b7c)) * update ChannelHeader and ChannelPreview titles and images on channel.updated ([#2500](#2500)) ([f32fbb6](f32fbb6)) ### Features * add centralized dialog management ([#2489](#2489)) ([8235d45](8235d45)) * add ThreadList and ThreadProvider (Threads 2.0) ([#2407](#2407)) ([941707d](941707d)) * keep attachments array and remove file and image uploads in MessageInput state ([#2445](#2445)) ([238e801](238e801)) * remove default timestamp formatting props from DateSeparator, EventComponent, MessageTimestamp ([#2442](#2442)) ([6431954](6431954)) * remove fullWidth prop from Thread & hideOnThread prop from Window ([#2450](#2450)) ([32c8fc0](32c8fc0)) * remove legacy style components ([#2394](#2394)) ([7bf63ae](7bf63ae)) ### Chores * **deps:** bump @stream-io/stream-chat-css to version 5.0.0 ([9580a3f](9580a3f)) * **deps:** bump @stream-io/stream-chat-css to version 5.0.0-rc.1nvm ([e9cf42f](e9cf42f)) * **deps:** bump stream-chat to version 8.40.8 ([#2510](#2510)) ([5cc7a09](5cc7a09)) * **deps:** remove unused isomorphic-ws from dependencies ([853bd8b](853bd8b)) * **deps:** upgrade @stream-io/stream-chat-css to v5.0.0-rc.4 ([#2492](#2492)) ([6e30cb5](6e30cb5)) * **deps:** upgrade @stream-io/stream-chat-css to v5.0.0-rc.5 ([#2495](#2495)) ([2b8fa32](2b8fa32))
🎉 This PR is included in version 12.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
🎯 Goal
Remove the following state variables from the MessageInput state:
fileOrder
imageOrder
fileUploads
imageUploads
All the attachments except the link previews (attachment contains
og_scrape_url
attribute) are now stored inattachments
array. Array keeps order and the attachment type can be determined byattachment.type
property.Default attachment types are:
audio
file
image
video
voiceRecording
Uploaded attachments will be determined by
file
attribute asattachment.localMetadata.file
.Remove the following API from the MessageInput state
uploadFile
-> from now on, useuploadAttachment
uploadImage
-> from now on, useuploadAttachment
removeFile
-> from now on, useremoveAttachments
removeImage
-> from now on, useremoveAttachments
The function
uploadNewFiles
has been kept.So to sum up, the attachments management API in MessageInput is from now on only:
attachments
uploadAttachment
uploadNewFiles
upsertAttachments
removeAttachments
🛠 Implementation details
🎨 UI Changes
No UI changes.
BREAKING CHANGE: Removed fileOrder, imageOrder, fileUploads, imageUploads, uploadFile, uploadImage, removeFile, removeImage from the MessageInputContext.