Skip to content

Commit 546e6c7

Browse files
authored
Fix mark unread action not removed when read events are disabled (#823)
1 parent ffe1f32 commit 546e6c7

File tree

5 files changed

+37
-5
lines changed

5 files changed

+37
-5
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
77
- Add extra data to user display info [#819](https://github.com/GetStream/stream-chat-swiftui/pull/819)
88
### 🐞 Fixed
99
- Fix swipe to reply enabled when quoting a message is disabled [#824](https://github.com/GetStream/stream-chat-swiftui/pull/824)
10+
- Fix mark unread action not removed when read events are disabled [#823](https://github.com/GetStream/stream-chat-swiftui/pull/823)
1011

1112
# [4.78.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.78.0)
1213
_April 24, 2025_

Sources/StreamChatSwiftUI/ChatChannel/Reactions/MessageActions/DefaultMessageActions.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public extension MessageAction {
131131
)
132132
messageActions.append(markThreadUnreadAction)
133133
}
134-
} else if !message.isSentByCurrentUser {
134+
} else if !message.isSentByCurrentUser && channel.canReceiveReadEvents {
135135
if !message.isPartOfThread || message.showReplyInChannel {
136136
let markUnreadAction = markAsUnreadAction(
137137
for: message,

StreamChatSwiftUITests/Tests/ChatChannel/MessageActionsViewModel_Tests.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class MessageActionsViewModel_Tests: StreamChatTestCase {
2020
text: "test",
2121
author: .mock(id: .unique)
2222
),
23-
channel: .mockDMChannel(ownCapabilities: [.sendMessage, .uploadFile, .pinMessage]),
23+
channel: .mockDMChannel(ownCapabilities: [.sendMessage, .uploadFile, .pinMessage, .readEvents]),
2424
chatClient: chatClient,
2525
onFinish: { _ in },
2626
onError: { _ in }

StreamChatSwiftUITests/Tests/ChatChannel/MessageActions_Tests.swift

+33-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,38 @@ class MessageActions_Tests: StreamChatTestCase {
7272
XCTAssert(messageActions[4].title == "Mark Unread")
7373
XCTAssert(messageActions[5].title == "Mute User")
7474
}
75-
75+
76+
func test_messageActions_otherUserDefaultReadEventsDisabled() {
77+
// Given
78+
let channel = ChatChannel.mockDMChannel(ownCapabilities: [.sendMessage, .uploadFile, .pinMessage])
79+
let message = ChatMessage.mock(
80+
id: .unique,
81+
cid: channel.cid,
82+
text: "Test",
83+
author: .mock(id: .unique),
84+
isSentByCurrentUser: false
85+
)
86+
let factory = DefaultViewFactory.shared
87+
88+
// When
89+
let messageActions = MessageAction.defaultActions(
90+
factory: factory,
91+
for: message,
92+
channel: channel,
93+
chatClient: chatClient,
94+
onFinish: { _ in },
95+
onError: { _ in }
96+
)
97+
98+
// Then
99+
XCTAssert(messageActions.count == 5)
100+
XCTAssert(messageActions[0].title == "Reply")
101+
XCTAssert(messageActions[1].title == "Thread Reply")
102+
XCTAssert(messageActions[2].title == "Pin to conversation")
103+
XCTAssert(messageActions[3].title == "Copy Message")
104+
XCTAssert(messageActions[4].title == "Mute User")
105+
}
106+
76107
func test_messageActions_otherUserDefaultBlockingEnabled() {
77108
// Given
78109
streamChat = StreamChat(
@@ -297,7 +328,7 @@ class MessageActions_Tests: StreamChatTestCase {
297328

298329
private var mockDMChannel: ChatChannel {
299330
ChatChannel.mockDMChannel(
300-
ownCapabilities: [.sendMessage, .uploadFile, .pinMessage]
331+
ownCapabilities: [.sendMessage, .uploadFile, .pinMessage, .readEvents]
301332
)
302333
}
303334
}

StreamChatSwiftUITests/Tests/ChatChannel/ReactionsOverlayView_Tests.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ class ReactionsOverlayView_Tests: StreamChatTestCase {
136136
let view = VerticallyCenteredView {
137137
ReactionsOverlayView(
138138
factory: DefaultViewFactory.shared,
139-
channel: .mockDMChannel(ownCapabilities: [.sendMessage, .uploadFile, .pinMessage]),
139+
channel: .mockDMChannel(ownCapabilities: [.sendMessage, .uploadFile, .pinMessage, .readEvents]),
140140
currentSnapshot: self.overlayImage,
141141
messageDisplayInfo: messageDisplayInfo,
142142
onBackgroundTap: {},

0 commit comments

Comments
 (0)