RocketChat / RocketChat/EmbeddedChat

Inconsistent emoji reaction behavior via picker

Open Beginner friendly
#1,245 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
JavaScript
Stars
165
Forks
381
Avg merge
1d 2h
Merged PRs (30d)
1

Description

Description:

When a user clicks an emoji in the emoji picker that they have already reacted with, nothing happens. The reaction is not removed. However, clicking the same emoji directly on the message correctly toggles the reaction. This inconsistency leads to a confusing user experience

Steps to reproduce:
  1. React to a message using the emoji picker.
  2. Click the same emoji again in the picker → reaction remains, no effect.
  3. Click the same emoji on the message → reaction is correctly removed.
Expected behavior:
  • Clicking the same emoji in the emoji picker should remove the reaction if the user already reacted, just like clicking the emoji on the message.
  • Both picker and existing message reactions should follow the same toggle logic.

https://github.com/user-attachments/assets/51aaf56b-76b9-4c37-bb73-c7726905f685

Actual behavior:
  • Clicking an emoji in the emoji picker that the user already reacted with has no effect -> the reaction is not removed.
  • Clicking the same emoji directly on the message toggles correctly (removes reaction)

https://github.com/user-attachments/assets/58181b31-5cd7-4833-95b3-35cc13aff1ab

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with the emoji picker, then locate its click-handling path and compare it with the existing message-reaction toggle behavior. Verify that selecting an emoji the user already applied removes it in both paths, and add or update a regression test if the relevant test location is found.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react
Domain
frontend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.