5.5.0 Release#4121
Conversation
Co-authored-by: Martin Mitrevski <martinmitrevski.oh@gmail.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
SDK Size
|
StreamChat XCSize
Show 67 more objects
|
StreamChatUI XCSize
|
SDK Performance
|
Generated by 🚫 Danger |
Public Interface+ public struct ChannelGroup: Sendable
+
+ public let groupKey: String
+ public let unreadChannels: Int
+ public let channels: [ChatChannel]
+ public protocol HasUnreadChannelCountsByGroup: Event
public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable
- public let query: ChannelListQuery
+ public internal var query: ChannelListQuery
- public final class NotificationMarkUnreadEvent: ChannelSpecificEvent
+ public final class NotificationMarkUnreadEvent: ChannelSpecificEvent, HasUnreadChannelCountsByGroup
- public let unreadMessagesCount: Int
+ public let unreadChannelCountsByGroup: [String: Int]?
+ public let unreadMessagesCount: Int
public struct ChannelListQuery: Encodable, Sendable, LocalConvertibleSortingQuery
-
+ case predefinedFilter = "predefined_filter"
-
+ case filterValues = "filter_values"
- public let filter: Filter<ChannelListFilterScope>
+ case sortValues = "sort_values"
- public let sort: [Sorting<ChannelListSortingKey>]
+
- public var pagination: Pagination
+
- public let messagesLimit: Int?
+ public internal var filter: Filter<ChannelListFilterScope>
- public let membersLimit: Int?
+ public internal var sort: [Sorting<ChannelListSortingKey>]
- public var options: QueryOptions
+ public var pagination: Pagination
-
+ public let messagesLimit: Int?
-
+ public let membersLimit: Int?
- public init(filter: Filter<ChannelListFilterScope>,sort: [Sorting<ChannelListSortingKey>] = [],pageSize: Int = .channelsPageSize,messagesLimit: Int? = nil,membersLimit: Int? = nil)
+ public var options: QueryOptions
-
+ public let predefinedFilter: String?
-
+ public let filterValues: [String: RawJSON]?
- public func encode(to encoder: Encoder)throws
+ public let sortValues: [String: RawJSON]?
+
+
+ public init(filter: Filter<ChannelListFilterScope>,sort: [Sorting<ChannelListSortingKey>] = [],pageSize: Int = .channelsPageSize,messagesLimit: Int? = nil,membersLimit: Int? = nil)
+ public init(predefinedFilter: String,filterValues: [String: RawJSON]? = nil,sortValues: [String: RawJSON]? = nil,pageSize: Int = .channelsPageSize,messagesLimit: Int? = nil,membersLimit: Int? = nil)
+
+
+ public func encode(to encoder: Encoder)throws
- public final class NotificationMarkReadEvent: ChannelSpecificEvent, HasUnreadCount
+ public final class NotificationMarkReadEvent: ChannelSpecificEvent, HasUnreadCount, HasUnreadChannelCountsByGroup
- public let lastReadMessageId: MessageId?
+ public let unreadChannelCountsByGroup: [String: Int]?
- public let createdAt: Date
+ public let lastReadMessageId: MessageId?
+ public let createdAt: Date
@MainActor public final class ChannelListState: ObservableObject
- public let query: ChannelListQuery
+ public internal var query: ChannelListQuery
- public final class NotificationChannelDeletedEvent: ChannelSpecificEvent
+ public final class NotificationChannelDeletedEvent: ChannelSpecificEvent, HasUnreadChannelCountsByGroup
+ public let unreadChannelCountsByGroup: [String: Int]?
- public final class MessageNewEvent: ChannelSpecificEvent, HasUnreadCount
+ public final class MessageNewEvent: ChannelSpecificEvent, HasUnreadCount, HasUnreadChannelCountsByGroup
+ public let unreadChannelCountsByGroup: [String: Int]?
public class CurrentChatUser: ChatUser, @unchecked Sendable
- public let isInvisible: Bool
+ public let unreadChannelCountsByGroup: [String: Int]?
- public let privacySettings: UserPrivacySettings
+ public let isInvisible: Bool
- public let pushPreference: PushPreference?
+ public let privacySettings: UserPrivacySettings
+ public let pushPreference: PushPreference?
public class ChatClient: @unchecked Sendable
- public func uploadAttachment(localUrl: URL,progress: (@Sendable (Double) -> Void)?,completion: @escaping @Sendable (Result<UploadedFile, Error>) -> Void)
+ @discardableResult public func queryGroupedChannels(groups: [String],limit: Int? = nil,presence: Bool = false,watch: Bool = true)async throws -> [ChannelGroup]
- public func deleteAttachment(remoteUrl: URL,completion: @escaping @Sendable (Error?) -> Void)
+ public func uploadAttachment(localUrl: URL,progress: (@Sendable (Double) -> Void)?,completion: @escaping @Sendable (Result<UploadedFile, Error>) -> Void)
+ public func deleteAttachment(remoteUrl: URL,completion: @escaping @Sendable (Error?) -> Void)
- public final class ChannelTruncatedEvent: ChannelSpecificEvent
+ public final class ChannelTruncatedEvent: ChannelSpecificEvent, HasUnreadChannelCountsByGroup
+ public let unreadChannelCountsByGroup: [String: Int]?
- public final class NotificationMessageNewEvent: ChannelSpecificEvent, HasUnreadCount
+ public final class NotificationMessageNewEvent: ChannelSpecificEvent, HasUnreadCount, HasUnreadChannelCountsByGroup
+ public let unreadChannelCountsByGroup: [String: Int]? |
|
Build for regression testing №123457146 has been uploaded to TestFlight 🎁 |
|
|
/merge release |
|
Publication of the release has been launched 👍 |



StreamChat
✅ Added
ChannelListQuery(predefinedFilter:filterValues:sortValues:)for creating channel list queries with predefined filters #4113ChatClient.queryGroupedChannels(groups:limit:presence:watch:)to fetch grouped channels with per-group unread counts #4076ChatClient.makeChannelList(with:)overload for observing a single grouped channels group in the state layer #4076unreadChannelCountsByGrouptoCurrentChatUser, observable for changes viaConnectedUser#4076