File tree Expand file tree Collapse file tree
packages/stream_chat_flutter Expand file tree Collapse file tree Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff 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' , () {
You can’t perform that action at this time.
0 commit comments