iachat/app/javascript/dashboard/components
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
..
Accordion feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
app feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
base feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
buttons feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
layout feat: Rewrite keyboardEventListener mixin to a composable (#9831) 2024-08-05 18:59:47 +05:30
specs feat: Use vitest instead of jest, run all the specs anywhere in app/ folder in the CI (#9722) 2024-07-10 08:32:16 -07:00
ui feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
widgets feat: Dynamically show Shift key in shortcut modal for QWERTZ layout (#9888) 2024-08-06 16:17:43 +05:30
ChannelSelector.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
ChatList.vue feat: Rewrite keyboardEventListener mixin to a composable (#9831) 2024-08-05 18:59:47 +05:30
ChatListHeader.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
Code.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
ConversationItem.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
CustomAttribute.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
CustomBrandPolicyWrapper.vue feat: Update the design for integration page (#9825) 2024-07-24 16:35:40 -07:00
CustomSnoozeModal.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
FormSection.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
index.js feat: Custom date picker (#9247) 2024-04-29 14:43:57 +05:30
IntersectionObserver.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
MaskedText.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
Modal.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
ModalHeader.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
NetworkNotification.vue feat: Reconnect logic (#9453) 2024-06-03 15:54:19 +05:30
policy.vue chore: Move frontend authorization to permission based system (#9709) 2024-07-03 15:13:16 -07:00
SettingsSection.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
SidemenuIcon.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
Snackbar.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30
SnackbarContainer.vue feat: Eslint rules (#9839) 2024-08-05 14:02:16 +05:30