Skip to content

Releases: GetStream/stream-chat-swift

4.29.0

17 Mar 13:04
Compare
Choose a tag to compare

March 17, 2023

StreamChat

✅ Added

  • Add support for loading messages around a given message id in a Channel #2464
  • Add support for bidirectional scrolling in a Channel #2464

🐞 Fixed

  • Fix ephemeral message disappearing after leaving channel #2464
  • Fix ephemeral message appearing in channel preview #2464
  • Fix issue when using in or notIn operators with auto-filtering enabled. #2531

StreamChatUI

🔄 Changed

  • Deprecated setScrollToLatestMessageButton(visible:animated:) -> updateScrollToBottomButtonVisibility(animated:)
  • Replaces messageContentViewDidTapOnQuotedMessage(_ indexPath: IndexPath?) -> messageContentViewDidTapOnQuotedMessage(_ quotedMessage: ChatMessage)
    • This one is a breaking change, but a required one. The previous API was not working as intended.

✅ Added

  • Mark as unread: Now you can mark a message as unread when you are inside a channel #2519 #2526
  • Now you can easily configure your own Decorations(headers and/or footers) around messages #2507
  • There is a new ChatThreadRepliesCountDecorationView component that should be used to display the number of replies in a thread. Read here for more details.
  • Add support for jumping to a quoted message #2464
  • Add support for jumping to a message which is not in the message list (only channel view) #2464
  • Add bidirectional scrolling in the Channel view #2464

4.28.0

28 Feb 11:37
Compare
Choose a tag to compare

February 28, 2023

StreamChat

🔄 Changed

  • Remove [URLQueryItem] public conformance of ExpressibleByDictionaryLiteral #2505

🐞 Fixed

  • Fix messages appearing sooner in Thread pagination #2470
  • Fix messages disappearing from the Message List when quoting a message #2470
  • Fix Markdown formatting hanging with edge case pattern #2513
  • Fix "In" Filter only returning results when all values match #2514

4.27.1

20 Feb 17:35
Compare
Choose a tag to compare

February 20, 2023

StreamChat

🐞 Fixed

  • Fix channel auto-filtering when the filter contains the type key #2497

✅ Added

  • Add support for skip_enrich_url when sending a message #2498

4.27.0

17 Feb 12:57
Compare
Choose a tag to compare

February 16, 2023

StreamChat

✅ Added

  • Add UploadedAttachmentPostProcessor in ChatClientConfig to allow changing custom attachment payloads after an attachment has been uploaded #2457
  • Add AnyAttachmentPayload(localFileURL:customPayload:) initializer to allow creating custom attachments without a remote URL #2457
  • Add skip push support when sending a message #2486
  • Add support for automatically filtering channels in the Channel List #2488
  • Add isChannelAutomaticFilteringEnabled in ChatClientConfig to allow changing whether the Channels in ChannelList will be automatically filtered #2488

🔄 Changed

  • Remove unused ReactionNotificationContent #2485

🐞 Fixed

  • Fix channel unread count not updating when in foreground and notification extension is saving messages #2481

StreamChatUI

🔄 Changed

  • Deprecates ChatMessageGalleryView.UploadingOverlay in favor of UploadingOverlayView (Renaming) #2457
  • Deprecates Components.default.imageUploadingOverlay in favor of Components.default.uploadingOverlayView (Renaming) #2457

🐞 Fixed

  • Fix message cell not updated when custom attachment data is different #2454

4.26.0

13 Jan 12:34
Compare
Choose a tag to compare

January 11, 2023

StreamChat

🔄 Changed

  • Offline mode now only fetches the first page of the Channel List and Message List. This is a short coming right now until we support offline pagination. #2434

🐞 Fixed

  • Fix Channel List pagination gaps #2420
  • Fix truncated channels being moved to the bottom of the channel list #2420
  • Fix reactions not insantly updating when enforce unique is true #2421
  • Fix not being able to delete messages in pendingSend state #2432
  • Fix messages intermittently disappearing when first opening the channel #2434
  • Fix first page not being loaded from the cache when using a lower messagesLimit in Channel List Query #2434
  • Fix inaccuracies in for channel unread count #2433

StreamChatUI

✅ Added

  • Add Components.default.isUniqueReactionsEnabled to easily configure unique reactions #2421

🐞 Fixed

  • Fix Reaction Picker not updating when reaction added with enforce unique #2421

4.25.1

06 Jan 16:24
Compare
Choose a tag to compare

January 06, 2023

StreamChat

🐞 Fixed

  • Fix UserInfo not being updated on connect #2438

4.25.0

16 Dec 16:03
Compare
Choose a tag to compare

December 15, 2022

StreamChat

🔄 Changed

  • logOut and disconnect methods are now asynchronous. Its sync versions are deprecated #2386

✅ Added

  • Add support for hiding connection status with isInvisible #2373
  • Add .withAttachments in MessageSearchFilterScope to filter messages with attachments only #2417
  • Add .withoutAttachments in MessageSearchFilterScope to filter messages without any attachments #2417
  • Add retries mechanism to AuthenticationRepository #2414

🐞 Fixed

  • Fix connecting user with non-expiring tokens (ex: development token) #2393
  • Fix crash when calling addDevice() from background thread #2398

StreamChatUI

🐞 Fixed

  • Fix message actions popup in cached thread replies #2415

4.24.1

24 Nov 07:31
30caff3
Compare
Choose a tag to compare

November 23, 2022

StreamChat

🐞 Fixed

  • Avoid double completion calls when getting/fetching tokens #2387

4.24.0

16 Nov 13:29
Compare
Choose a tag to compare

November 15, 2022

StreamChat

🔄 Changed

  • channelController.uploadFile() and channelController.uploadImage() are deprecated in favour of channelController.uploadAttachment() #2369
  • imageAttachmentPayload.imagePreviewURL is deprecated since it was misleading, it was basically using the original imageURL #2369

✅ Added

  • Added new AttachmentUploader to allow changing attachment info with custom CDN #2369

🐞 Fixed

  • Add timeout for token/connectionId providers so that ChatClient.connect() completes even in edge cases where we cannot get the needed data #2361
  • Stop spamming the console with "Socket is not connected" error when token is being refreshed #2361
  • Update documentation around CurrentUserController.currentUser to state that a non-nil value does not mean there is a valid authentication #2361
  • Allow flow where ChatClient.setToken() is called before ChatClient.connect() #2361
  • Properly recover from a missing/expired token on the first execution of TokenProvider #2361
  • Fix data races created by AsyncOperation looped execution when refreshing tokens #2361

StreamChatUI

🐞 Fixed

  • Fix issue where cell content would not be updated when order changes in Channel List #2371

4.23.0

27 Oct 14:54
Compare
Choose a tag to compare

October 27, 2022

StreamChat

✅ Added

  • Added support for Stream's Image CDN v2 #2339
  • Expose EntityChange.item #2351

🐞 Fixed

  • Fix CurrentChatUserController+Combine initialValue hard coded to .noUnread instead of using the initial value from the current user data model #2334
  • Allow Message Search pagination when using sort parameters #2347
  • Fix TokenProvider sometimes being invoked two times when token is expired #2337

StreamChatUI

✅ Added

  • Uses Stream's Image CDN v2 to reduce the memory footprint #2339
  • Make ChatMessageListVC.tableView(heightForRowAt:) open #2342

🐞 Fixed

  • Fix message text not dynamically scalable with content size category changes #2328

🚨 Minor Breaking Changes

Although we don't usually ship breaking changes in minor releases, in some cases where they are minimal and important, we have to do them to keep improving the SDK long-term. Either way, these changes are for advanced customizations which won't affect most of the customers.

  • The ImageCDN protocol has some minor breaking changes that were needed to support the new Stream CDN v2 and to make it more scalable in the future.
    • urlRequest(forImage:) -> urlRequest(forImageUrl:resize:).
    • cachingKey(forImage:) -> cachingKey(forImageUrl:).
    • Removed thumbnail(originalURL:preferreSize:). This is now handled by urlRequest(forImageUrl:resize:) as well. If your CDN does not support resizing, you can ignore the resize parameter.