Skip to content

Conversation

@laevandus
Copy link
Contributor

@laevandus laevandus commented Sep 26, 2025

🔗 Issue Links

Related: IOS-1090

🎯 Goal

Various fixes for finalising event handling migration

📝 Summary

  • Use StreamCore 0.2.0
  • Add missing properties to data structs
  • Keep results sorted and add missing events to BookmarkFolderList, BookmarkList, FeedList, MemberList
  • Update reposted activities manually
  • Remove unused code

🛠 Implementation

🎨 Showcase

🧪 Manual Testing Notes

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change should be manually QAed
  • Changelog is updated with client-facing changes
  • Changelog is updated with new localization keys
  • New code is covered by unit tests
  • Documentation has been updated in the docs-content repo

@laevandus laevandus requested a review from a team as a code owner September 26, 2025 10:19
@github-actions
Copy link

github-actions bot commented Sep 26, 2025

1 Warning
⚠️ Big PR
1 Message
📖 There seems to be app changes but CHANGELOG wasn't modified.
Please include an entry if the PR includes user-facing changes.
You can find it at CHANGELOG.md.

Generated by 🚫 Danger

@github-actions
Copy link

github-actions bot commented Sep 26, 2025

Public Interface

 public final class BookmarkFolderList: Sendable  
-   public func queryMoreBookmarkFolders(limit: Int? = nil)async throws -> [BookmarkFolderData]
+   @discardableResult public func queryMoreBookmarkFolders(limit: Int? = nil)async throws -> [BookmarkFolderData]

 public struct UserData: Identifiable, Equatable, Sendable, Hashable  
-   public let banned: Bool
+   public let avgResponseTime: Int?
-   public let blockedUserIds: [String]
+   public let banned: Bool
-   public let createdAt: Date
+   public let blockedUserIds: [String]
-   public let custom: [String: RawJSON]
+   public let createdAt: Date
-   public let deactivatedAt: Date?
+   public let custom: [String: RawJSON]
-   public let deletedAt: Date?
+   public let deactivatedAt: Date?
-   public let id: String
+   public let deletedAt: Date?
-   public let image: String?
+   public let id: String
-   public let language: String
+   public let image: String?
-   public let lastActive: Date?
+   public let language: String
-   public let name: String?
+   public let lastActive: Date?
-   public let online: Bool
+   public let name: String?
-   public let revokeTokensIssuedBefore: Date?
+   public let online: Bool
-   public let role: String
+   public let revokeTokensIssuedBefore: Date?
-   public let teams: [String]
+   public let role: String
-   public let teamsRole: [String: String]?
+   public let teams: [String]
-   public let updatedAt: Date
+   public let teamsRole: [String: String]?
-   public var imageURL: URL?
+   public let updatedAt: Date
+   public var imageURL: URL?

 public struct FeedMemberData: Equatable, Sendable  
-   public let role: String
+   public let membershipLevel: MembershipLevelResponse?
-   public let status: FeedMemberStatus
+   public let role: String
-   public let updatedAt: Date
+   public let status: FeedMemberStatus
-   public let user: UserData
+   public let updatedAt: Date
+   public let user: UserData

 public struct FeedData: Identifiable, Equatable, Sendable  
-   public let pinCount: Int
+   public let ownCapabilities: [FeedOwnCapability]?
-   public let updatedAt: Date
+   public let ownFollows: [FollowData]?
-   public let visibility: String?
+   public let ownMembership: FeedMemberData?
-   public let ownCapabilities: [FeedOwnCapability]?
+   public let pinCount: Int
+   public let updatedAt: Date
+   public let visibility: String?

 public struct FeedsReactionData: Equatable, Sendable  
-   public let createdAt: Date
+   public let commentId: String?
-   public let custom: [String: RawJSON]?
+   public let createdAt: Date
-   public let type: String
+   public let custom: [String: RawJSON]?
-   public let updatedAt: Date
+   public let type: String
-   public private var user: UserData
+   public let updatedAt: Date
+   public private var user: UserData

 public struct ActivityData: Identifiable, Equatable, Sendable  
-   public let id: String
+   public let hidden: Bool
-   public let interestTags: [String]
+   public let id: String
-   public private var latestReactions: [FeedsReactionData]
+   public let interestTags: [String]
-   public let location: ActivityLocation?
+   public private var latestReactions: [FeedsReactionData]
-   public let mentionedUsers: [UserData]
+   public let location: ActivityLocation?
-   public let moderation: ModerationV2Response?
+   public let mentionedUsers: [UserData]
-   public let notificationContext: NotificationContext?
+   public let moderation: ModerationV2Response?
-   public private var ownBookmarks: [BookmarkData]
+   public let notificationContext: NotificationContext?
-   public private var ownReactions: [FeedsReactionData]
+   public private var ownBookmarks: [BookmarkData]
-   public var parent: ActivityData?
+   public private var ownReactions: [FeedsReactionData]
-   public internal var poll: PollData?
+   public var parent: ActivityData?
-   public let popularity: Int
+   public internal var poll: PollData?
-   public private var reactionCount: Int
+   public let popularity: Int
-   public private var reactionGroups: [String: ReactionGroupData]
+   public private var reactionCount: Int
-   public let score: Float
+   public private var reactionGroups: [String: ReactionGroupData]
-   public let searchData: [String: RawJSON]
+   public let score: Float
-   public let shareCount: Int
+   public let searchData: [String: RawJSON]
-   public let text: String?
+   public let shareCount: Int
-   public let type: String
+   public let text: String?
-   public let updatedAt: Date
+   public let type: String
-   public let user: UserData
+   public let updatedAt: Date
-   public let visibility: ActivityDataVisibility
+   public let user: UserData
-   public let visibilityTag: String?
+   public let visibility: ActivityDataVisibility
+   public let visibilityTag: String?

 public final class FeedList: Sendable  
-   public func queryMoreFeeds(limit: Int? = nil)async throws -> [FeedData]
+   @discardableResult public func queryMoreFeeds(limit: Int? = nil)async throws -> [FeedData]

 public struct ActivityPinData: Equatable, Sendable  
-   public let feed: FeedId
+   public let duration: String?
-   public let updatedAt: Date
+   public let feed: FeedId
-   public let userId: String
+   public let updatedAt: Date
+   public let userId: String

 public struct ReactionGroupData: Equatable, Sendable  
+   public let sumScores: Int?

 public struct AggregatedActivityData: Identifiable, Equatable, Sendable  
-   public var id: String
+   public var userCountTruncated: Bool
+   public var id: String

 public final class BookmarkList: Sendable  
-   public func queryMoreBookmarks(limit: Int? = nil)async throws -> [BookmarkData]
+   @discardableResult public func queryMoreBookmarks(limit: Int? = nil)async throws -> [BookmarkData]

@laevandus laevandus changed the title State layer events Finalise StateLayerEventPublisher migration Sep 26, 2025
@Stream-SDK-Bot
Copy link
Collaborator

Stream-SDK-Bot commented Sep 26, 2025

SDK Size

title develop branch diff status
StreamFeeds 6.53 MB 6.75 MB +228 KB 🟢

@laevandus laevandus marked this pull request as draft September 26, 2025 10:26
@laevandus laevandus marked this pull request as ready for review September 26, 2025 11:26
@laevandus laevandus enabled auto-merge (squash) September 26, 2025 11:26
@laevandus laevandus disabled auto-merge September 26, 2025 12:28
@laevandus laevandus enabled auto-merge (squash) September 26, 2025 12:38
@laevandus laevandus merged commit 41aca6d into develop Sep 26, 2025
5 checks passed
@laevandus laevandus deleted the state-layer-events branch September 26, 2025 12:45
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.

4 participants