Skip to content

Commit 94f7253

Browse files
authored
fix(ui): hide mark as unread for own messages (#2590)
* hide mark as unread for own messages * tweak + test * doc comment
1 parent 4c796f4 commit 94f7253

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

packages/stream_chat_flutter/lib/src/message_action/message_actions_builder.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ class StreamMessageActionsBuilder {
148148
);
149149
}
150150

151-
if (canReceiveReadEvents) {
151+
// Mark unread action is only available for other users' messages.
152+
if (canReceiveReadEvents && !isSentByCurrentUser) {
152153
StreamContextMenuAction<MessageAction> markUnreadAction() {
153154
return StreamContextMenuAction(
154155
value: MarkUnread(message: message),
@@ -164,7 +165,7 @@ class StreamMessageActionsBuilder {
164165
}
165166
// If the message is in the channel view, only other user messages can be
166167
// marked unread.
167-
else if (!isSentByCurrentUser && (!isThreadMessage || canShowInChannel)) {
168+
else if (!isThreadMessage || canShowInChannel) {
168169
messageActions.add(markUnreadAction());
169170
}
170171
}

packages/stream_chat_flutter/test/src/message_action/message_actions_builder_test.dart

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,37 @@ void main() {
488488
reason: 'Mark unread unavailable without read events capability',
489489
);
490490
});
491+
492+
testWidgets(
493+
'excludes mark unread action for own messages even if parent message',
494+
(tester) async {
495+
final context = await _getContext(tester);
496+
497+
final channelWithReadEvents = _getChannelWithCapabilities([
498+
ChannelCapability.sendMessage,
499+
ChannelCapability.sendReply,
500+
ChannelCapability.readEvents,
501+
]);
502+
503+
final ownParentMessage = createTestMessage(
504+
userId: currentUser.id,
505+
replyCount: 5,
506+
);
507+
508+
final actions = StreamMessageActionsBuilder.buildActions(
509+
context: context,
510+
message: ownParentMessage,
511+
channel: channelWithReadEvents,
512+
currentUser: currentUser,
513+
);
514+
515+
actions.notExpects<MarkUnread>(
516+
reason:
517+
'Mark unread should not be available for own messages, '
518+
'even if it is a parent message',
519+
);
520+
},
521+
);
491522
});
492523

493524
group('buildBouncedErrorActions', () {

0 commit comments

Comments
 (0)