Cannot select + SHIFT to select bulk text
I believe I have tracked this down to being a conflict with the ability to select multiple blocks at the same time. Commenting out on line 539 in /src/editor/model/Editor.ts seems to prevent the selected text from clearing. I'm now looking for a way to permanently fix this.
Read full answer below βQuestion
GrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
Chrome Version 131.0.6778.109 (Official Build) (64-bit)
Reproducible demo link
https://grapesjs.com/demo-newsletter-editor
Describe the bug
How to reproduce the bug?
- Place the mouse pointer at the starting position of the text you want to select.
- Press and hold the SHIFT key.
- Move the mouse pointer to the desired endpoint of the text selection.
What is the expected behavior? The selected text should automatically have a highlighted background indicating it has been selected.
What is the current behavior? The selected text does not have a highlighted background.
Code of Conduct
- I agree to follow this project's Code of Conduct
Answers (2)
I believe I have tracked this down to being a conflict with the ability to select multiple blocks at the same time. Commenting out
this.clearSelection(this.Canvas.getWindow());
on line 539 in /src/editor/model/Editor.ts seems to prevent the selected text from clearing.
I'm now looking for a way to permanently fix this.
Thanks for reporting this, @VanTranTrucPhuong.
Great question about Cannot select + SHIFT to select bulk text. The recommended approach with GrapesJS is to use the event-driven API.
Start here:
- Check the GrapesJS documentation for your specific module
- Look for the
on()event listener method - Most operations can be achieved by listening to editor and component events
Common patterns:
// Listen for changes
editor.on('change', () => console.log('something changed'));
// Component lifecycle
editor.on('component:mount', (c) => console.log('component ready', c));
editor.on('component:update', (c) => console.log('component updated', c));
If you're still stuck:
- Share a minimal CodeSandbox reproduction
- Include what you've already tried
- Mention your GrapesJS version
- The community is here to help!
Related Questions and Answers
Continue research with similar issue discussions.
Issue #4333
Uncaught TypeError: Cannot read properties of null (reading 'ownerDocument')
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chromium 101.0.4951.64 (Official Build) sn...
Issue #3861
JS error when press "s" or "w" key - Cannot read properties of undefined (reading 'indexOf')
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome Version 94.0.4606.81 (Official Buil...
Issue #4440
Extending text component breaks textable blocks
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? Version 102.0.5005.115 (Official Build) (64-...
Issue #4000
Pasting a component in root body layer throws TypeError
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome v89 Reproducible demo link https://...
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 a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
Tutorial
Big Updates: TinyMCE 8 and Placeholder 2.0 for GrapesJS
In May we shipped major updates to two of our most popular GrapesJS plugins β TinyMCE Inline Text Editor and Placeholder.
Tutorial
Find the Right GrapesJS Plugin in Seconds: Smarter Discovery Is Live
We're shipping a set of discovery upgrades. New label filters, a proper compatibility switch for GrapesJS vs Studio, one-click and a smarter sort bar.
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.