Skip to content

Conversation

@Stream-SDK-Bot
Copy link
Collaborator

StreamChat

✅ Added

  • Add sending messages to only specific members #3595
  • Add Draft Messages Support #3588
    • Add ChatChannel.draftMessage
    • Add ChatMessage.draftReply
    • Add ChannelController:
      • updateDraftMessage()
      • deleteDraftMessage()
      • loadDraftMessage()
    • Add MessageController:
      • updateDraftReply()
      • deleteDraftReply()
      • loadDraftReply()
    • Add CurrentUserController:
      • deleteDraft()
      • loadDraftMessages()
      • loadMoreDraftMessages()

🐞 Fixed

  • Update channel's preview message when coming back to online #3574
  • Fix message transformer not being applied when editing a message #3602

StreamChatUI

✅ Added

  • Add Components.isDraftMessagesEnabled to enable Draft Messages #3588
  • Add draft preview in Channel List and Thread List if drafts are enabled #3588

testableapple and others added 18 commits February 4, 2025 13:24
* Fix message transformer not being applied when editing a message

* Update CHANGELOG.md
* Add Draft Messages Endpoint and Payloads

* Add draft messages to the local DB

* Add new API for channel controller draft messages

* Add Draft message logic to `ChatChannelVC` + `ComposerVC`

* Add draft message to channel list payload

* Add draft message APIs to `CurrentUserController`

* Add `DemoDraftMessageListVC` to the Demo App

* Delete draft message when publishing the message

* Improve the draft message cell design in the demo app

* Allow deleting drafts when swiping in the demo app

* Open the channel when tapping the draft message

* Add load, update and delete draft APIs to `MessageController`

* Add support for saving draft replies in DTOs

* Open the thread when tapping a draft reply

* Create a DB method to easily delete a draft

* Fix thread draft not updating in the thread list

* Add support for Composer to delete the draft reply

* Load draft message in the Thread

* Fix draft payload changes

* Create a different function to create a draft message so that it is easier to maintain

* Add draft previews to Thread List

* Fix trying to upload draft message attachments after coming from offline

* Fix names of message controller API

* Make sure draft message previews are updated in Channels and Threads

* Fix demo app swipe to delete drafts not working for threads

* Fix colors in Draft Message List view

* Fix Get Draft endpoint response

* Add draft events logic

* Only fetch the draft in the composer of Drafts are enabled

* Fix drafts for commands

* Allow configure the BaseURL on the Demo App

* Fix compilation of tests

* Add draft payload tests

* Make sure to save draft when text is empty but other content is not

* Add draft endpoints test coverage

* Add Draft Messages Repository Tests

* Add missing docs to isSilent

* Use itemReuseKeyPaths

* Create only one instance of Drafts Repository

* Add test coverage to Channel Controller

* Add test coverage to Message Controller

* Add current user controller test coverage

* Add test coverage to ChannelDTO

* Add MessageDTO test coverage

* Add test coverage to ThreadDTO

* Add test coverage to DraftListQuery

* Add test coverage to Draft Events

* Fix PR Remarks of draft messages repository

* Add draft message preview to Channel List Item View

* Add draft message preview to Thread List Item View

* Improve SDK size

* Fix compilation issues

* Refactor Draft messages to have a separate type

This will allow for more flexibility as well as reduce the SDK size by not introducing nested types

* Fix UI Tests

* PR feedback

* Only render draft preview if draft messages are enabled

* Use the new Draft Message model in the rest of the APIs

* Fix ChatMessage.draftReply not required to be closure

* Update CHANGELOG.md

* Update the composer if the draft is updated

* Make sure that drafts are not leaked to the regular messages

* Use the new Draft Message model in CurrentUserController

* Rename `draftMessage.parentMessageId` to `threadId`

* Rename `DraftMessage.author` to `currentUser`

* Fix parent message being used as draft in some scenarios

* Add test coverage for drafts not leaking to threads

* Fix Draft Message docs

* Add test coverage to ChatChannelVC

* Make deleting the draft optimistic so that when updating the channel or thread does not override with old draft

* Add test coverage to ChatThreadVC

* Fix draft being changed whenever channel or thread was updated

* Expose DraftMessage in the Draft Events

* Add Composer VC test coverage

* Load draft replies from Channel query instead of performing request when opening a thread

* Fix infinite loop crash when saving draft inside quoted and parent message

* Fix typo in tests

* Fix draft crashing the composer when showing command suggestions

* Draft messages request should be queued offline
@Stream-SDK-Bot Stream-SDK-Bot requested a review from a team as a code owner February 27, 2025 10:00
@github-actions
Copy link

1 Warning
⚠️ Big PR

Generated by 🚫 Danger

@Stream-SDK-Bot
Copy link
Collaborator Author

SDK Size

title previous release current release diff status
StreamChat 7.02 MB 7.35 MB +342 KB 🟡
StreamChatUI 4.77 MB 4.88 MB +114 KB 🟢

@github-actions
Copy link

Build for regression testing №123457056 has been uploaded to TestFlight 🎁

@Stream-SDK-Bot
Copy link
Collaborator Author

SDK Performance

target metric benchmark branch performance status
MessageList Hitches total duration 10 ms 8.34 ms 16.6% 🔼 🟢
Duration 2.6 s 2.55 s 1.92% 🔼 🟢
Hitch time ratio 4 ms per s 3.27 ms per s 18.25% 🔼 🟢
Frame rate 75 fps 78.42 fps 4.56% 🔼 🟢
Number of hitches 1 1.0 0.0% 🟰 🟢

@sonarqubecloud
Copy link

@laevandus
Copy link
Contributor

/merge release

@testableapple
Copy link
Contributor

Publication of the release has been launched 👍

@github-actions github-actions bot merged commit 042279f into main Feb 28, 2025
16 checks passed
@github-actions github-actions bot deleted the release/4.73.0 branch February 28, 2025 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants