Skip to content

Commit ad90f33

Browse files
Turn off channel updates when message thread shown
1 parent 8a59308 commit ad90f33

File tree

4 files changed

+7
-1
lines changed

4 files changed

+7
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
66
### 🔄 Changed
77
- Video and giphy attachments now use `makeMessageViewModifier`
88
- Updated scalling of avatar images
9+
- Turn off channel updates when message thread shown
910

1011
### 🐞 Fixed
1112
- `AttachmentTextView` respects configured body font

Sources/StreamChatSwiftUI/ChatChannel/ChatChannelViewModel.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ open class ChatChannelViewModel: ObservableObject, MessagesDataSource {
8888
if threadMessageShown == false {
8989
threadMessage = nil
9090
}
91+
utils.messageCachingUtils.messageThreadShown = threadMessageShown
9192
}
9293
}
9394

Sources/StreamChatSwiftUI/ChatChannelList/ChatChannelListViewModel.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,9 @@ open class ChatChannelListViewModel: ObservableObject, ChatChannelListController
377377
}
378378

379379
private func updateChannelsIfNeeded() {
380-
if utils.messageListConfig.updateChannelsFromMessageList && ((selectedChannelIndex ?? 0) < 8) {
380+
if utils.messageListConfig.updateChannelsFromMessageList
381+
&& ((selectedChannelIndex ?? 0) < 8)
382+
&& !utils.messageCachingUtils.messageThreadShown {
381383
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in
382384
self?.handleChannelAppearance()
383385
}

Sources/StreamChatSwiftUI/Utils/MessageCachingUtils.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class MessageCachingUtils {
1717
private var quotedMessageMapping = [String: ChatMessage]()
1818

1919
var scrollOffset: CGFloat = 0
20+
var messageThreadShown = false
2021

2122
func authorId(for message: ChatMessage) -> String {
2223
if let userDisplayInfo = userDisplayInfo(for: message) {
@@ -85,6 +86,7 @@ class MessageCachingUtils {
8586
func clearCache() {
8687
log.debug("Clearing cached message data")
8788
scrollOffset = 0
89+
messageThreadShown = false
8890
messageAuthorMapping = [String: String]()
8991
messageAuthors = [String: UserDisplayInfo]()
9092
messageAttachments = [String: Bool]()

0 commit comments

Comments
 (0)