BUG: When Style Manager is in another div, the message "Select an element before using Style Manager" is not showing
Question
Version: 0.16.34
What is the expected behavior?
When the editor is initialized, no element is selected, so the style manager should say "Select an element before using Style Manager" like it does when not using "appendTo" in the editor configuration.
What is the current behavior?
When using "appendTo" in the editor config like this :
var editor = grapesjs.init({
...
styleManager: {
appendTo: "#styles"
},
...
}
the style manager starts with all the sectors showing although no element is selected
Demo
The same behavior can be seen in the example from https://grapesjs.com/docs/getting-started.html#style-manager
Answers (3)
I used this code to solve it:
const showStylesSector = editor => {
const stylesButton = editor.Panels.getButton('panel-sidebar-header', 'show-styles');
const layersButton = editor.Panels.getButton('panel-sidebar-header', 'show-layers');
// Disable this feature if the layers manager is active.
if (!layersButton.attributes.active) {
stylesButton.set('active', 1);
}
};
editor.on('component:selected', () => {
showStylesSector(editor);
});
This is not what I want, my issue is before any element is selected so before the event "component:selected" is trigerred. I temporarily fixed it by selecting an element on editor load but it is not what I really want
editor.on('load', () => {
editor.select(editor.getWrapper().find('#entry-point')[0])
});
If you're using the StyleManager in a custom element you have to handle that state on your own.
<div class="sm-wrapper">
<div id="styles"></div><!-- here is where you append the style manager -->
<div class="sm-empty-state">
Select an element
</div>
</div>
// use `component:toggled` as `component:selected` is not triggered if the selection is empty
editor.on('component:toggled', () => {
if (editor.getSelected()) {
// show style manager, hide empty state
} else {
// show empty state, hide style manager
}
});
Related Questions and Answers
Continue research with similar issue discussions.
Issue #869
[Question] Should traits be disabled / hidden when no component is selected?
The style manager seems to have a nice solution for when no component is selected by showing a "Select an element before using Style Manage...
Issue #3002
BUG: CSS Properties are not correctly loaded if style manager panel is not active at initialization
Hi @artf! Let me describe the issue Version: 16.22 What is the expected behavior? The css property values and visibility settings should ta...
Issue #3081
BUG: Style Manager setTarget does not work
Version: 0.16.22 What is the expected behavior? setTarget allows styling a CSS rule different from the selected component Describe the bug...
Issue #3005
BUG: Layer manager appendTo is duplicating the layers every time grapesjs is init
Version: 0.16.18 and up (The issue was introduced somewhere after 0.15.3, not sure when) Are you able to reproduce the bug from the demo? [...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.