Keyboard shortcuts/Keymaps not working
You were right, it wasn't React or GrapesJS. Event propagation was being stopped by the rc-drawer component I was using. @artf thanks for your help, this has been an issue from day one.
Read full answer below βQuestion
Version: 0.17.22 Are you able to reproduce the bug from the demo?[ ] Yes[X] No I can't reproduce it in a demo however you can see it for yourself if log into Documint using the following credentials:Email: [email protected]: demo then make a change to the template and try using ctrl+z What is the expected behavior? Should be able to use mapped keyboard shortcuts (ie. ctrl+z) but they don't work. What is the current behavior? The keymaps are registered but they don't work. When I run keymaps.getAll() I get a list of all of the default keymaps. When I listen for a keymap to be emitted I get no...
Answers (4)
You were right, it wasn't React or GrapesJS. Event propagation was being stopped by the rc-drawer component I was using. @artf thanks for your help, this has been an issue from day one.
Hey @Joshmamroud we have this code that propagates keydown keyup keypress events to the parent document, this allows keymaps to work, ensure to not contain any code/component which prevents the propagation of those events.
Hey @artf, I believe it may be blocked by React. Any suggestions on how to re-bind these event listeners? Not even sure if that is the right solution or path.
Thanks for reporting this, @Joshmamroud. The issue with Keyboard shortcuts/Keymaps not working appears to be a race condition or state management timing problem. This typically happens when component lifecycle events and DOM modifications overlap, creating an inconsistent state. What to try: Add a...
Related Questions and Answers
Continue research with similar issue discussions.
Issue #3731
Text element not able to be selected twice after extended with events
Version: 0.17.25 Are you able to reproduce the bug from the demo?[ ] Yes[x] No What is the expected behavior? Update a existing component o...
Issue #4416
Can't parse trait values using Template literals(String Interpolation)
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome v103.0.5060.53 Reproducible demo li...
Issue #6695
Prevent default not working for edge
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? Edge 144.0.3719.92 Reproducible demo link...
Issue #5159
Can't add placeholders drop down to text field drop down options with CKEditor enabled
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? ChromeReproducible demo link https://codepen...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.
Browse free plugins βPremium plugins ship with support, regular updates, and production-ready features β save days of integration work.
Browse premium plugins βRelated tutorials
In-depth guides on the same topic.
Tutorial
How to Build an AI-Powered Page Builder with GrapesJS in 2026
What we learned building GJSDocs β from simple AI text generation to structured, context-aware visual editing
Tutorial
How Much Does It Cost to Build a SaaS Page Builder in 2026?
How much does it cost to build a SaaS page builder in 2026? Explore realistic development costs, timelines, features, and how using GrapesJS can reduce
Tutorial
UnStudio for GrapesJS: 4 Plugins to Build Better Visual Editors
Meet UnStudio, a new GrapesJS plugin studio with four tools, safer and better editor: Command Palette, Responsive Pack, Autosave & Restore, and Autofill
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.