iachat/app/javascript/dashboard/components/widgets
Sivin Varghese 28d4432152
feat: Dynamically show Shift key in shortcut modal for QWERTZ layout (#9888)
# Pull Request Template

## Description

This PR includes UI changes to dynamically add the `Shift` key to the
key set `Alt+KeyP` and `Alt+KeyL` in the keyboard shortcut modal for the
`QWERTZ` layout.

**Context**
Previously, the `Alt+L` shortcut for toggling the reply editor
conflicted with the `@` symbol on the QWERTZ layout in macOS. The new
`useDetectLayout` composable checks the active keyboard layout. If
`QWERTZ` is detected, the shortcuts are modified to `Shift+Alt+KeyP` and
`Shift+Alt+KeyL`.

[PR with the functionality
changes](https://github.com/chatwoot/chatwoot/pull/9831#event-13764407813)

Fixes
https://linear.app/chatwoot/issue/PR-1095/typing-a-in-private-note-switches-to-reply-tab-with-german-keyboard

## Type of change

- [x] Breaking change (fix or feature that would cause existing
functionality not to work as expected)

## How Has This Been Tested?

**Loom video**

https://www.loom.com/share/35b741c5afc64bc58bd4e7dc5dad012d?sid=f66ca0bf-b6a7-40fc-8972-ff0cd0196a16

## 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
- [ ] 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
2024-08-06 16:17:43 +05:30
..
chart feat: Update reports UI to make it better (#7544) 2023-07-19 12:12:15 -07:00
conversation feat: Rewrite keyboardEventListener mixin to a composable (#9831) 2024-08-05 18:59:47 +05:30
DashboardApp feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
FilterInput feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
forms feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
mentions feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
modal feat: Dynamically show Shift key in shortcut modal for QWERTZ layout (#9888) 2024-08-06 16:17:43 +05:30
stories feat: Add component for grouped thumbnails (#5796) 2022-11-03 22:38:45 -07:00
WootWriter feat: Rewrite keyboardEventListener mixin to a composable (#9831) 2024-08-05 18:59:47 +05:30
AIAssistanceButton.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
AIAssistanceCTAButton.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
AIAssistanceModal.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
AICTAModal.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
AILoader.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
AttachmentsPreview.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
AutomationActionInput.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
AutomationActionTeamMessageInput.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
AutomationFileInput.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
Avatar.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
BackButton.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
ChannelItem.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
ChatTypeTabs.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
ColorPicker.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
EmptyState.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
FeatureToggle.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
InboxDropdownItem.stories.js feat: Adds new inbox selector with more info for new message modal [cw-1358] (#6823) 2023-04-19 23:02:50 +05:30
InboxDropdownItem.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
InboxName.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
LabelSelector.stories.js feat: Ability to add label for contact page (#2350) 2021-06-14 10:36:00 +05:30
LabelSelector.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
LoadingState.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
SettingIntroBanner.stories.js chore: Cleanup page-top-bar style conflicts (#2407) 2021-06-10 09:35:15 +05:30
SettingIntroBanner.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
ShowMore.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
TableFooter.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
TableFooterPagination.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
TableFooterResults.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
TableHeaderCell.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
Thumbnail.spec.js feat: Improve image loading for thumbnails (#5823) 2022-11-08 21:05:13 -08:00
Thumbnail.stories.js feat: Support square variants of thumbnail and avatar components (#5003) 2022-07-09 14:03:55 +05:30
Thumbnail.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
ThumbnailGroup.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
UserAvatarWithName.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
VideoCallButton.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30