iachat/app/javascript/dashboard/components/widgets/conversation
Sivin Varghese 399c91adaa
feat: Standardize rich editor across all channels (#12600)
# Pull Request Template

## Description

This PR includes,

1. **Channel-specific formatting and menu options** for the rich reply
editor.
2. **Removal of the plain reply editor** and full **standardization** on
the rich reply editor across all channels.
3. **Fix for multiple canned responses insertion:**
* **Before:** The plain editor only allowed inserting canned responses
at the beginning of a message, making it impossible to combine multiple
canned responses in a single reply. This caused inconsistent behavior
across the app.
* **Solution:** Replaced the plain reply editor with the rich
(ProseMirror) editor to ensure a unified experience. Agents can now
insert multiple canned responses at any cursor position.
4. **Floating editor menu** for the reply box to improve accessibility
and overall user experience.
5. **New Strikethrough formatting option** added to the editor menu.

---

**Editor repo PR**:
https://github.com/chatwoot/prosemirror-schema/pull/36

Fixes https://github.com/chatwoot/chatwoot/issues/12517,
[CW-5924](https://linear.app/chatwoot/issue/CW-5924/standardize-the-editor),
[CW-5679](https://linear.app/chatwoot/issue/CW-5679/allow-inserting-multiple-canned-responses-in-a-single-message)

## Type of change

- [x] Bug fix (non-breaking change which fixes an issue)

## How Has This Been Tested?

### Screenshot
**Dark**
<img width="850" height="345" alt="image"
src="https://github.com/user-attachments/assets/47748e6c-380f-44a3-9e3b-c27e0c830bd0"
/>

**Light**
<img width="850" height="345" alt="image"
src="https://github.com/user-attachments/assets/6746cf32-bf63-4280-a5bd-bbd42c3cbe84"
/>


## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules

---------

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Pranav <pranav@chatwoot.com>
Co-authored-by: Vinay Keerthi <11478411+stonecharioteer@users.noreply.github.com>
2025-12-08 14:43:45 +05:30
..
advancedFilterItems feat: Add support for frontend filtering of conversations (#11111) 2025-03-24 19:39:04 -07:00
components chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
ContentTemplates feat: Add twilio content templates (#12277) 2025-08-29 16:13:25 +05:30
contextMenu chore: Add new tab and copy link to conversation context menu (#12089) 2025-08-04 15:22:20 -07:00
conversation chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
conversationBulkActions feat: Bulk actions for contacts (#12763) 2025-10-30 15:28:28 +05:30
conversationCardComponents chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
EmptyState chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
helpers chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
linear chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
WhatsappTemplates refactor: Consolidate WhatsApp template components and improve naming (#12299) 2025-08-26 15:20:53 +05:30
CannedResponse.vue style: apply fixes for eslint issues [cw-3590] (#10210) 2024-10-03 15:02:12 +05:30
ConversationBasicFilter.vue fix: Fix the translation issue on conversation filter reload (#11513) 2025-05-19 11:18:06 -07:00
ConversationBox.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
ConversationCard.vue feat: outbound voice call essentials (#12782) 2025-11-24 17:47:00 -08:00
ConversationHeader.vue chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
ConversationSidebar.vue chore: Improve layout styles (#12025) 2025-07-30 13:49:27 -07:00
EmailTranscriptModal.vue chore: Remove old buttons from Vue2 design (#11159) 2025-03-31 17:51:38 -07:00
FilterItem.vue chore: Update chat list header UI (#10573) 2024-12-12 10:12:07 +05:30
MessagePreview.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
MessageSignatureMissingAlert.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
MessagesView.vue fix: Reduce unnecessary label suggestion API calls (#12978) 2025-12-01 13:36:34 +05:30
MoreActions.vue fix: Update design to fix the crowded header (#11633) 2025-05-29 18:45:28 -06:00
OnboardingFeatureCard.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
OnboardingView.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
PriorityMark.vue chore(v4): Update colors (#10700) 2025-01-16 15:27:23 +05:30
QuotedEmailPreview.vue fix: Rendering on email without html content (#12561) 2025-10-01 13:43:05 +05:30
ReplyBox.vue feat: Standardize rich editor across all channels (#12600) 2025-12-08 14:43:45 +05:30
ReplyBoxBanner.vue feat: APIs to assign agents_bots as assignee in conversations (#12836) 2025-11-18 18:20:58 -08:00
ReplyEmailHead.vue chore: Update styles in settings pages (#11070) 2025-03-18 14:40:02 -07:00
ReplyToMessage.vue chore: Update buttons in conversation screens - 2 (#11134) 2025-03-21 21:54:54 +05:30
ShopifyOrderItem.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
ShopifyOrdersList.vue feat(apps): Shopify Integration (#11101) 2025-03-19 15:37:55 -07:00
TagAgents.vue feat: Add the ability to mention team in private message (#11758) 2025-07-02 19:57:59 +05:30
TagTools.vue feat: New Scenarios page (#11975) 2025-07-30 19:34:27 +05:30
VariableList.vue fix: Variable search item not showing after braces/commas (#11864) 2025-07-03 19:39:36 +05:30
VoiceCallStatus.vue feat: outbound voice call essentials (#12782) 2025-11-24 17:47:00 -08:00