Skip to content

Feat #572: add emoji reactions to messages (desktop)#3265

Open
franciscommmarques wants to merge 4 commits into
TryQuiet:developfrom
franciscommmarques:feat/emoji-reactions-clean
Open

Feat #572: add emoji reactions to messages (desktop)#3265
franciscommmarques wants to merge 4 commits into
TryQuiet:developfrom
franciscommmarques:feat/emoji-reactions-clean

Conversation

@franciscommmarques

Copy link
Copy Markdown

Users had no way to react to messages with emojis. This feature was listed in the project backlog and had an associated Figma design file that guided the implementation.

Reactions are stored as ChannelMessage entries with a new MessageType.Reaction type, requiring no changes to the backend, OrbitDB layer, or socket events. The state-manager aggregates raw reaction entries into grouped state via a new Redux slice and selector.

The desktop UI adds a MessageReactionBar component below each message:

  • Reaction pills with counters and tooltips showing who reacted
  • Shown on hover when no reactions exist, always visible otherwise
  • Quick picker with 6 curated emojis and a button for the full picker
  • Excess reactions beyond 5 collapsed into a "+N" expandable indicator

Unit tests were added to verify that reaction messages are correctly extracted from the incoming message pipeline, that non-reaction messages are not affected, and that the toggle (add/remove) logic works as expected.

Closes #572

Pull Request Checklist

  • I have linked this PR to a related GitHub issue.
  • I have added a description of the change (and Github issue number, if any) to the root CHANGELOG.md.

franciscommmarques and others added 3 commits June 2, 2026 23:19
Users had no way to react to messages with emojis. This feature was
listed in the project backlog and had an associated Figma design file
that guided the implementation.

Reactions are stored as ChannelMessage entries with a new
MessageType.Reaction type, requiring no changes to the backend,
OrbitDB layer, or socket events. The state-manager aggregates raw
reaction entries into grouped state via a new Redux slice and selector.

The desktop UI adds a MessageReactionBar component below each message:
- Reaction pills with counters and tooltips showing who reacted
- Shown on hover when no reactions exist, always visible otherwise
- Quick picker with 6 curated emojis and a button for the full picker
- Excess reactions beyond 5 collapsed into a "+N" expandable indicator

Unit tests were added to verify that reaction messages are correctly
extracted from the incoming message pipeline, that non-reaction
messages are not affected, and that the toggle (add/remove) logic
works as expected.
@franciscommmarques

Copy link
Copy Markdown
Author

Hi @holmesworcester,

Just wanted to check in on this PR whenever you get a chance to take a look. Let me know if there's anything you'd like me to change.

Thanks!

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.

User should be able to add reactions to messages

1 participant