iachat/app/javascript/dashboard/components
Sivin Varghese 70a65e2c34
fix: Prevent mentions menu from triggering on reply mode change (#11264)
# Pull Request Template

## Description

**Issue:** When typing "@" in reply mode and then switching to private
note mode, the user mentions menu remains visible and cannot be
dismissed.

**Cause:** The Prose Mirror suggestion plugin for "@" was active in both
reply modes (normal and private). When triggered in normal reply mode
and then switching to private note mode, the menu would remain open and
couldn't be dismissed.

**Solution**
```
createSuggestionPlugin({
  trigger: '@',
  showMenu: showUserMentions,
  searchTerm: mentionSearchKey,
  isAllowed: () => props.isPrivate, // Only allow @ mentions in private note mode
}),
```
1. By setting `isAllowed: () => props.isPrivate`, the @ mention trigger
will only activate when in private note mode
2. In normal reply mode, the plugin won't activate at all since
`isAllowed` returns false
3. This prevents the menu from being triggered in the wrong context and
fix the scenario where the menu gets stuck.

## Type of change

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

## How Has This Been Tested?

### Loom video

**Before**

https://www.loom.com/share/5333f0c6498d4a9ea4d220b1de1b608c?sid=1425f24f-2c6f-4ff5-aab3-23c3203d2e05

**After**

https://www.loom.com/share/9f183c76d6a94b618a7c2aaed280b780?sid=19ef08b8-2b70-434b-ad5a-267410212e11

## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] 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
- [ ] 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
2025-04-09 15:25:46 +05:30
..
Accordion chore: Remove old buttons from Vue2 design (#11159) 2025-03-31 17:51:38 -07:00
app chore: Update buttons in dashboard (#11145) 2025-03-31 17:21:32 -07:00
base feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
buttons chore: Remove old buttons from Vue2 design (#11159) 2025-03-31 17:51:38 -07:00
copilot feat: allow copilot use without connecting an inbox (#10992) 2025-02-28 15:20:39 -08:00
layout chore: Remove old buttons from Vue2 design (#11159) 2025-03-31 17:51:38 -07:00
specs chore: Update buttons in dashboard (#11145) 2025-03-31 17:21:32 -07:00
table feat: Add per-page support for agent and team overview report pagination (#11110) 2025-03-19 16:45:59 +05:30
ui chore: Update buttons in dashboard (#11145) 2025-03-31 17:21:32 -07:00
widgets fix: Prevent mentions menu from triggering on reply mode change (#11264) 2025-04-09 15:25:46 +05:30
ChannelSelector.vue feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
ChatList.vue feat: Add support for frontend filtering of conversations (#11111) 2025-03-24 19:39:04 -07:00
ChatListHeader.vue feat: update colors for v4 (#10660) 2025-01-15 17:13:03 +05:30
Code.vue feat: update colors for v4 (#10660) 2025-01-15 17:13:03 +05:30
ConversationItem.vue fix: Usability issues in conversation card context menu (#10971) 2025-02-25 16:48:04 +05:30
CustomAttribute.vue chore: Update buttons in conversation screens(#11132) 2025-03-21 14:47:28 +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
FormSection.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
index.js chore: Remove old buttons from Vue2 design (#11159) 2025-03-31 17:51:38 -07:00
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: fix circleci on vite build (#10214) 2024-10-07 15:27:41 +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: Update styles in settings pages (#11070) 2025-03-18 14:40:02 -07:00
SidemenuIcon.vue chore: Update buttons in dashboard (#11145) 2025-03-31 17:21:32 -07:00
Snackbar.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
SnackbarContainer.vue feat: update notification settings (#10529) 2024-12-05 19:05:04 +05:30