Skip to content

Add +N overflow for read receipt - #56

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

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

Conversation

@Avi0n

@Avi0n Avi0n commented Feb 27, 2026

Copy link
Copy Markdown
Contributor

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

@viktorstrate

Copy link
Copy Markdown
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

Avi0n commented Feb 27, 2026

Copy link
Copy Markdown
Contributor Author

I'll give it a go!

@Avi0n

Avi0n commented Feb 27, 2026

Copy link
Copy Markdown
Contributor Author

@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
Copy Markdown
Owner

Looks great, thank you!

@viktorstrate
viktorstrate merged commit 5945b77 into viktorstrate:main Mar 1, 2026
2 checks passed
@Avi0n
Avi0n deleted the read-receipt-overflow branch March 24, 2026 05:18
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