From 3a347c09cb5f96cd2dbca7f4698f5bb72ea02973 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Wed, 10 Oct 2018 08:10:07 +0200 Subject: [PATCH] Update setTarget in StyleManager --- src/selector_manager/view/ClassTagsView.js | 2 +- src/style_manager/view/PropertyView.js | 6 +++++- src/style_manager/view/SectorsView.js | 8 ++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/selector_manager/view/ClassTagsView.js b/src/selector_manager/view/ClassTagsView.js index 895c1fa90..e19fca77a 100644 --- a/src/selector_manager/view/ClassTagsView.js +++ b/src/selector_manager/view/ClassTagsView.js @@ -191,7 +191,7 @@ module.exports = Backbone.View.extend({ const state = selected.get('state'); const coll = collection; - let result = coll.getFullString(coll.getStyleable()); + let result = coll.getFullString(selected.getSelectors().getStyleable()); result = result || selected.get('selectorsAdd') || diff --git a/src/style_manager/view/PropertyView.js b/src/style_manager/view/PropertyView.js index b9a0cc25b..b43374c1b 100644 --- a/src/style_manager/view/PropertyView.js +++ b/src/style_manager/view/PropertyView.js @@ -68,7 +68,11 @@ module.exports = Backbone.View.extend({ em && em.on(`update:component:style:${this.property}`, this.targetUpdated); //em && em.on(`styleable:change:${this.property}`, this.targetUpdated); - this.listenTo(this.propTarget, 'update', this.targetUpdated); + this.listenTo( + this.propTarget, + 'update styleManager:update', + this.targetUpdated + ); this.listenTo(model, 'destroy remove', this.remove); this.listenTo(model, 'change:value', this.modelValueChanged); this.listenTo(model, 'targetUpdated', this.targetUpdated); diff --git a/src/style_manager/view/SectorsView.js b/src/style_manager/view/SectorsView.js index a404102dc..333f4045d 100644 --- a/src/style_manager/view/SectorsView.js +++ b/src/style_manager/view/SectorsView.js @@ -94,17 +94,20 @@ module.exports = Backbone.View.extend({ setTarget(target, opts = {}) { const em = this.target; const config = em.get('Config'); + const { targetIsClass, stylable } = opts; let model = target; if (isString(target)) { let rule; const rules = em.get('CssComposer').getAll(); - if (opts.targetIsClass) { + if (targetIsClass) { rule = rules.filter( rule => rule.get('selectors').getFullString() === target )[0]; - } else { + } + + if (!rule) { rule = rules.filter(rule => rule.get('selectorsAdd') === target)[0]; } @@ -112,6 +115,7 @@ module.exports = Backbone.View.extend({ rule = rules.add({ selectors: [], selectorsAdd: target }); } + stylable && rule.set({ stylable }); model = rule; }