How we can hide RTE for editable components ?
I allow myself to add what I think might be closer to what OP's trying to achieve, from @artf's answer: Toggling the disableRte property allows to hide the RTE toolbar, while keeping the text editable, on a per-component basis. Hope this helps :)
Read full answer below ↓Question
HI We have a requirement, where we don't want to show rte on editable components. how we can achieve that ?
Answers (4)
I allow myself to add what I think might be closer to what OP's trying to achieve, from @artf's answer:
editor.DomComponents.addType('text', {
extendFnView: ['onActive'],
model: {
defaults: {
disableRte: false
}
},
view: {
onActive() {
if (this.model.get('disableRte')) {
this.rte.getToolbarEl().style.display = 'none';
}
}
}
}
Toggling the disableRte property allows to hide the RTE toolbar, while keeping the text editable, on a per-component basis.
Hope this helps :)
editor.on('component:selected', cmp => {
cmp.set({
editable: false,
propagate: ['editable']
})
})
We don't want to make component non editable, component needs to be editable, we just don't want to show rte tool bar on that component.
Thanks for reporting this, @pankajsharma89.
Great question about [Question] - How we can hide RTE for editable components ?. The recommended approach with ProseMirror 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 #3213
How to save the dynamically added traits
Hi, @artf, I have a custom component that has a button trait. When the button is pressed, I am adding a custom trait dynamically using comp...
Issue #6263
Duplicated links are added using rte
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? ChromeReproducible demo link https://codepen...
Issue #5245
Contents of component with editable:false are still editable
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome 114.0.5735.198 Reproducible demo li...
Issue #3399
Convert JSON to HTML server-side
So first of all, thank you @artf for this amazing project. I have a question: Is it possible to easily convert the components-JSON to HTML...
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.