chatwoot/app/javascript/dashboard/components
Aakash Bakhle b103747584
fix: skip Enter key submission during IME composition in AI inputs (#13779)
# Pull Request Template

## Description

CJK language users (Chinese, Japanese, Korean, etc.) use IME where Enter
confirms character selection. AI input components were intercepting
Enter unconditionally, making them unusable for IME users.

Add `event.isComposing` check to CopilotEditor, CopilotInput, and
AssistantPlayground so Enter during active IME composition is ignored.


## Type of change

Please delete options that are not relevant.

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

## How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration.

Before:

Add a Japenese keyboard, then go to AI follow-ups, type some word,
selecting it with enter submits the follow up. So CJK users cannot use
follow-ups.



https://github.com/user-attachments/assets/53517432-d97b-47fc-a802-81675e31d5c9



After:

Type a word, press enter to choose it, press enter again to unselect it
and enter again to send


https://github.com/user-attachments/assets/6c2a420b-7ee6-4c71-82a6-d9f1d7bbf31a



## 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
- [x] Any dependent changes have been merged and published in downstream
modules

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 10:26:51 +05:30
..
Accordion chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
app fix: Conditionally fetch limits and assistants for enterprise/cloud (#12099) 2025-08-04 15:06:58 -07:00
auth feat: Add the frontend support for MFA (#12372) 2025-09-18 21:16:06 +05:30
base feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
buttons feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
copilot chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
table chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
ui fix: Conversation list overlay issue with Virtua virtualizer (#13648) 2026-02-25 20:18:34 +05:30
widgets fix: skip Enter key submission during IME composition in AI inputs (#13779) 2026-03-13 10:26:51 +05:30
ChannelSelector.vue fix: search header overlap with new conversation form (#13548) 2026-02-20 11:24:37 +05:30
ChatList.vue fix: Conversation list overlay issue with Virtua virtualizer (#13648) 2026-02-25 20:18:34 +05:30
ChatListHeader.vue chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
Code.vue fix: Code component style issue (#12022) 2025-07-23 13:20:46 +04:00
ConversationItem.vue fix: Conversation list overlay issue with Virtua virtualizer (#13648) 2026-02-25 20:18:34 +05:30
CustomAttribute.vue fix: Issues with custom attributes in conversation sidebar (#11476) 2025-05-16 15:22:18 +05:30
CustomBrandPolicyWrapper.vue style: apply fixes for eslint issues [cw-3590] (#10210) 2024-10-03 15:02:12 +05:30
CustomSnoozeModal.vue chore: Update buttons in conversation screens(#11132) 2025-03-21 14:47:28 +05:30
index.js chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
IntersectionObserver.vue feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
Modal.vue chore: Update buttons in conversation screens(#11132) 2025-03-21 14:47:28 +05:30
ModalHeader.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
NetworkNotification.vue chore: Update buttons in conversation screens - 2 (#11134) 2025-03-21 21:54:54 +05:30
policy.vue feat: Add visibility checks for installation types (#10773) 2025-02-21 14:48:31 -08:00
SettingsSection.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
Snackbar.vue fix: Snackbar notifications hidden behind modal dialogs (#11616) 2025-05-29 12:49:38 +05:30
SnackbarContainer.vue fix: Snackbar notifications hidden behind modal dialogs (#11616) 2025-05-29 12:49:38 +05:30