Browse Source

Fix sector and property visibility update in Style Manager. Closes #4116

pull/4141/head
Artur Arseniev 4 years ago
parent
commit
93cc67bcad
  1. 25
      src/style_manager/index.js

25
src/style_manager/index.js

@ -362,17 +362,6 @@ export default () => {
const lastTargetParents = this.getParentRules(lastTarget, { state, component }); const lastTargetParents = this.getParentRules(lastTarget, { state, component });
let stateTarget = this.__getStateTarget(); let stateTarget = this.__getStateTarget();
// Update sectors/properties visibility
sectors.forEach(sector => {
const props = sector.getProperties();
props.forEach(prop => {
const isVisible = prop.__checkVisibility({ target: lastTarget, component, sectors });
prop.set('visible', isVisible);
});
const sectorVisible = props.some(p => p.isVisible());
sector.set('visible', sectorVisible);
});
// Handle the creation and update of the state rule, if enabled. // Handle the creation and update of the state rule, if enabled.
em.skip(() => { em.skip(() => {
if (state && lastTarget?.getState?.()) { if (state && lastTarget?.getState?.()) {
@ -388,7 +377,7 @@ export default () => {
} }
}); });
this.model.set({ targets, lastTarget, lastTargetParents, stateTarget }); this.model.set({ targets, lastTarget, lastTargetParents, stateTarget, component });
this.__upProps(opts); this.__upProps(opts);
return targets; return targets;
@ -672,6 +661,7 @@ export default () => {
const lastTarget = this.getSelected(); const lastTarget = this.getSelected();
if (!lastTarget) return; if (!lastTarget) return;
const component = this.model.get('component');
const lastTargetParents = this.getSelectedParents(); const lastTargetParents = this.getSelectedParents();
const style = lastTarget.getStyle(); const style = lastTarget.getStyle();
const parentStyles = lastTargetParents.map(p => ({ const parentStyles = lastTargetParents.map(p => ({
@ -684,6 +674,17 @@ export default () => {
this.__upProp(prop, style, parentStyles, opts); this.__upProp(prop, style, parentStyles, opts);
}); });
}); });
// Update sectors/properties visibility
sectors.forEach(sector => {
const props = sector.getProperties();
props.forEach(prop => {
const isVisible = prop.__checkVisibility({ target: lastTarget, component, sectors });
prop.set('visible', isVisible);
});
const sectorVisible = props.some(p => p.isVisible());
sector.set('visible', sectorVisible);
});
}, },
__upProp(prop, style, parentStyles, opts) { __upProp(prop, style, parentStyles, opts) {

Loading…
Cancel
Save