Skip to content

Add +N overflow for read receipt#56

Merged
viktorstrate merged 2 commits intoviktorstrate:mainfrom
Avi0n:read-receipt-overflow
Mar 1, 2026
Merged

Add +N overflow for read receipt#56
viktorstrate merged 2 commits intoviktorstrate:mainfrom
Avi0n:read-receipt-overflow

Conversation

@Avi0n
Copy link
Contributor

@Avi0n Avi0n commented Feb 27, 2026

Adds a +N overflow read status indicator with inspiration from Element Web.

1-4 receipts: All avatars are shown
More than 5 receipts: +N text + 3 most recent avatars

Screenshot 2026-02-27 at 11 31 21 AM

Tested on macOS 26.3

Closes #48

@Avi0n Avi0n force-pushed the read-receipt-overflow branch from d49db39 to 6336bff Compare February 27, 2026 19:29
@viktorstrate
Copy link
Owner

Awesome! Eventually I'd really like a popover that shows a list of all the users that has seen the given message, similar to what Element does. It can otherwise be frustrating to figure out whether a specific person has seen your message if they're a part of the +n people.

A screenshot of the popover in Element

Do you want to add this as well while you're at it? Otherwise, I'd happily merge it as is.

I think the code would look something like this:

view
.popover(isPresented: $showPopover) {
  List(users) { userId in
    Label {
      avatarImage(forUserId: userId)
    }, {
      Text(userDisplayName(forUserId: userId))
    }
  }
}

@Avi0n
Copy link
Contributor Author

Avi0n commented Feb 27, 2026

I'll give it a go!

@Avi0n
Copy link
Contributor Author

Avi0n commented Feb 27, 2026

@viktorstrate Ready for review. Used LazyVStack instead of List because List didn't automatically set its size based on the number of users in the list.

Screenshot 2026-02-27 at 2 06 14 PM

@viktorstrate
Copy link
Owner

Looks great, thank you!

@viktorstrate viktorstrate merged commit 5945b77 into viktorstrate:main Mar 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Read status on a message can overflow

2 participants