Skip to content

Conversation

@AlirezaMrtz
Copy link
Contributor

Fixes: #29893

What:

This PR adds a “Quote” option to the MessageContextMenu component, allowing users to quote a partial selection of text from a message.

Why:

This feature makes quoting selected text from a message quicker and more convenient by adding a dedicated option to the context menu.

Before:

There was no built-in way to quote a message from the context menu — users needed to copy the text manually and add a > at the beginning to create a quote.

After:

A new “Quote” option appears in the message context menu. When users select text in a message and click “Quote”, the selected text is automatically inserted into the composer with the correct > formatting.

Testing:

Added unit tests for the new context menu option and quoting behavior.

Steps to test:

  1. Open any room and select a partial text inside a single message.
  2. Right-click the selected text and open the context menu.
  3. Click the “Quote” option.
  4. Confirm the selected text appears in the composer with > formatting.
  5. Send the message and verify the quote displays correctly.

Checklist

  • Tests written for new code (and old code if feasible).
  • New or updated public/exported symbols have accurate TSDoc documentation.
  • Linter and other CI checks pass.
  • I have licensed the changes to Element by completing the Contributor License Agreement (CLA)

Copy link
Member

@dbkr dbkr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I probably would expect a new line inserted after the quoted text though, so you're ready to type your message - wdyt?

@AlirezaMrtz
Copy link
Contributor Author

Looks good! I probably would expect a new line inserted after the quoted text though, so you're ready to type your message - wdyt?

You're right! its done.
Thanks for the feedback.

@dbkr dbkr added this pull request to the merge queue Jul 17, 2025
Merged via the queue into element-hq:develop with commit 3e11a62 Jul 17, 2025
33 checks passed
@AlirezaMrtz AlirezaMrtz deleted the feature/message-context-menu-quote branch July 18, 2025 12:43
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Sep 6, 2025
Changes in [1.11.110](https://github.com/element-hq/element-web/releases/tag/v1.11.110) (2025-08-27)
====================================================================================================

* Hide recovery key when re-entering it while creating or changing it ([#30499](element-hq/element-web#30499)). Contributed by @andybalaam.
* Add `?no_universal_links=true` to OIDC url so EX doesn't try to handle it ([#29439](element-hq/element-web#29439)). Contributed by @t3chguy.
* Show a blue lock for unencrypted rooms and hide the grey shield for encrypted rooms ([#30440](element-hq/element-web#30440)). Contributed by @langleyd.
* Add support for Module API 1.4 ([#30185](element-hq/element-web#30185)). Contributed by @t3chguy.
* MVVM - Introduce some helpers for snapshot management ([#30398](element-hq/element-web#30398)). Contributed by @MidhunSureshR.

* A11y: move focus to right panel when opened ([#30553](element-hq/element-web#30553)). Contributed by @florianduros.
* Fix e2e warning icon should be white ([#30539](element-hq/element-web#30539)). Contributed by @florianduros.
* Remove NoOneHere disabled reason. ([#30524](element-hq/element-web#30524)). Contributed by @toger5.
* Fix downloading files with authenticated media API ([#30520](element-hq/element-web#30520)). Contributed by @t3chguy.
* Fix call permissions check confusion around element call ([#30521](element-hq/element-web#30521)). Contributed by @t3chguy.
* Fix line wrap around emoji verification ([#30523](element-hq/element-web#30523)). Contributed by @t3chguy.
* Don't highlight redacted events ([#30519](element-hq/element-web#30519)). Contributed by @t3chguy.
* Fix matrix.to links not being handled in the app ([#30522](element-hq/element-web#30522)). Contributed by @t3chguy.
* Fix issue of new room list taking up the full width ([#30459](element-hq/element-web#30459)). Contributed by @langleyd.
* Fix widget persistence in React development mode ([#30509](element-hq/element-web#30509)). Contributed by @robintown.
* Fix widget initialization in React development mode ([#30463](element-hq/element-web#30463)). Contributed by @robintown.

Changes in [1.11.109](https://github.com/element-hq/element-web/releases/tag/v1.11.109) (2025-08-11)
====================================================================================================
This release supports the upcoming v12 ("hydra") Matrix room version and is necessary to view and participate in these rooms.

* [Backport staging] Allow /upgraderoom command without developer mode enabled ([#30529](element-hq/element-web#30529)). Contributed by @RiotRobot.
* [Backport staging] Support for creator/owner power level ([#30526](element-hq/element-web#30526)). Contributed by @RiotRobot.
* New room list: change icon and label of menu item for to start a DM ([#30470](element-hq/element-web#30470)). Contributed by @florianduros.
* Implement the member list with virtuoso ([#29869](element-hq/element-web#29869)). Contributed by @langleyd.
* Add labs option for history sharing on invite ([#30313](element-hq/element-web#30313)). Contributed by @richvdh.
* Bump wysiwyg to 2.39.0 adding support for pasting rich text content in the Rich Text Edtior ([#30421](element-hq/element-web#30421)). Contributed by @langleyd.
* Support `EventShieldReason.MISMATCHED_SENDER` ([#30403](element-hq/element-web#30403)). Contributed by @richvdh.
* Change unencrypted and public pills to blue ([#30399](element-hq/element-web#30399)). Contributed by @florianduros.
* Change color of public room icon ([#30390](element-hq/element-web#30390)). Contributed by @florianduros.
* Script for updating storybook screenshots ([#30340](element-hq/element-web#30340)). Contributed by @dbkr.
* Add toggle to hide empty state in devtools ([#30352](element-hq/element-web#30352)). Contributed by @toger5.

* [Backport staging] Use userId to filter users in non-federated rooms when showing the InviteDialog ([#30537](element-hq/element-web#30537)). Contributed by @RiotRobot.
* [Backport staging] Catch error when encountering invalid m.room.pinned\_events event ([#30536](element-hq/element-web#30536)). Contributed by @RiotRobot.
* Update for compatibility with v12 rooms ([#30452](element-hq/element-web#30452)). Contributed by @dbkr.
* New room list: fix tooltip on presence ([#30474](element-hq/element-web#30474)). Contributed by @florianduros.
* New room list: add tooltip for presence and room status ([#30472](element-hq/element-web#30472)). Contributed by @florianduros.
* Fix: Clicking on an item in the member list causes it to scroll to the top rather than show the profile view ([#30455](element-hq/element-web#30455)). Contributed by @langleyd.
* Put the 'decrypting' tooltip back ([#30446](element-hq/element-web#30446)). Contributed by @dbkr.
* Use server name explicitly for via. ([#30362](element-hq/element-web#30362)). Contributed by @Half-Shot.
* fix: replace hardcoded string in poll history dialog ([#30402](element-hq/element-web#30402)). Contributed by @florianduros.
* fix: replace hardcoded string on qr code back button ([#30401](element-hq/element-web#30401)). Contributed by @florianduros.
* Fix color of icon button with outline ([#30361](element-hq/element-web#30361)). Contributed by @florianduros.

Changes in [1.11.108](https://github.com/element-hq/element-web/releases/tag/v1.11.108) (2025-07-30)
====================================================================================================

* [Backport staging] Fix downloaded attachments not being decrypted ([#30434](element-hq/element-web#30434)). Contributed by @RiotRobot.

Changes in [1.11.107](https://github.com/element-hq/element-web/releases/tag/v1.11.107) (2025-07-29)
====================================================================================================

* Message preview should show tooltip with the full message on hover ([#30265](element-hq/element-web#30265)). Contributed by @MidhunSureshR.
* Support rendering notification badges on platforms that do their own icon overlays ([#30315](element-hq/element-web#30315)). Contributed by @Half-Shot.
* Add SubscriptionViewModel base class ([#30297](element-hq/element-web#30297)). Contributed by @dbkr.
* Enhancement: Save image on CTRL+S ([#30330](element-hq/element-web#30330)). Contributed by @ioalexander.
* Add quote functionality to MessageContextMenu (#29893) ([#30323](element-hq/element-web#30323)). Contributed by @AlirezaMrtz.
* Initial structure for shared component views ([#30216](element-hq/element-web#30216)). Contributed by @dbkr.

* [Backport staging] Fix e2e shield being invisible in white mode for encrypted room ([#30411](element-hq/element-web#30411)). Contributed by @RiotRobot.
* Force ED titlebar color for new room list ([#30332](element-hq/element-web#30332)). Contributed by @florianduros.
* Add a background color to left panel for macos titlebar in element desktop ([#30328](element-hq/element-web#30328)). Contributed by @florianduros.
* Fix: Prevent page refresh on Enter key in right panel member search ([#30312](element-hq/element-web#30312)). Contributed by @AlirezaMrtz.
Dileep9999 pushed a commit to hemanth-nag/element-web that referenced this pull request Oct 8, 2025
…ment-hq#30323)

* Add quote functionality to MessageContextMenu (element-hq#29893)

* Remove unused import of getSelectedText from strings utility in EventTile component

* Add space after quoted text in ComposerInsert action

* Add space after quoted text in MessageContextMenu test

* add new line before and after the formated text
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-Enhancement Z-Community-PR Issue is solved by a community member's PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Easy replying to a partial selection of a message

3 participants