Preserve pinned chat order

This commit is contained in:
Elaine 2025-02-27 12:46:29 -07:00 committed by GitHub
parent c3d05b5d17
commit 4c31aa574d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -88,19 +88,22 @@ public class CLVLoader {
)
}
var pinnedThreadUniqueIdsForRender = [String]()
var pinnedThreadUniqueIdsToRender = Set<String>()
var unpinnedThreadUniqueIdsForRender = [String]()
for threadUniqueId in visibleThreadUniqueIds {
if !isViewingArchive && pinnedThreadUniqueIds.contains(threadUniqueId) {
pinnedThreadUniqueIdsForRender.append(threadUniqueId)
pinnedThreadUniqueIdsToRender.insert(threadUniqueId)
} else {
unpinnedThreadUniqueIdsForRender.append(threadUniqueId)
}
}
// Preserve the order from pinnedThreadUniqueIds
let orderedPinnedThreadUniqueIdsForRender = pinnedThreadUniqueIds.filter(pinnedThreadUniqueIdsToRender.contains(_:))
return CLVRenderState(
viewInfo: viewInfo,
pinnedThreadUniqueIds: pinnedThreadUniqueIdsForRender,
pinnedThreadUniqueIds: orderedPinnedThreadUniqueIdsForRender,
unpinnedThreadUniqueIds: unpinnedThreadUniqueIdsForRender
)
}