diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index 818c51871..b9f9bc5bf 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -417,6 +417,24 @@ export default Backbone.Model.extend({ return this.get('CssComposer').getAll(); }, + /** + * Change the selector state + * @param {String} value State value + * @returns {this} + */ + setState(value) { + this.set('state', value); + return this; + }, + + /** + * Get the current selector state + * @returns {String} + */ + getState() { + return this.get('state'); + }, + /** * Returns HTML built inside canvas * @return {string} HTML string diff --git a/src/selector_manager/index.js b/src/selector_manager/index.js index 8a2128f45..d01aa858f 100644 --- a/src/selector_manager/index.js +++ b/src/selector_manager/index.js @@ -154,7 +154,7 @@ export default config => { * selectorManager.setState('hover'); */ setState(value) { - this.em.set('state', value); + this.em.setState(value); return this; }, @@ -163,7 +163,7 @@ export default config => { * @returns {String} */ getState() { - return this.em.get('state'); + return this.em.setState(); }, addSelector(name, opt = {}) { diff --git a/src/style_manager/view/SectorsView.js b/src/style_manager/view/SectorsView.js index 9b0115a20..5f305a1ab 100644 --- a/src/style_manager/view/SectorsView.js +++ b/src/style_manager/view/SectorsView.js @@ -57,9 +57,10 @@ export default Backbone.View.extend({ const pt = this.propTarget; const targets = em.getSelectedAll(); let model = em.getSelected(); + const mdToClear = trg && !!trg.toHTML ? trg : model; // Clean components - trg && !!trg.toHTML && this.toggleStateCls([trg]); + mdToClear && this.toggleStateCls([mdToClear]); if (!model) return; const config = em.get('Config'); diff --git a/test/specs/dom_components/view/ComponentV.js b/test/specs/dom_components/view/ComponentV.js index 5c6a3f628..7ab4013ec 100644 --- a/test/specs/dom_components/view/ComponentV.js +++ b/test/specs/dom_components/view/ComponentV.js @@ -39,19 +39,19 @@ describe('ComponentView', () => { }); test('Add helper class on update of state', () => { - model.set('state', 'test'); + em.setSelected(model); + em.setState('test'); expect(fixtures.innerHTML).toEqual( - '
' + `` ); }); test('Clean form helper state', () => { - model.set('state', 'test'); - model.set('state', ''); + em.setSelected(model); + em.setState('test'); + em.setState(); expect(fixtures.innerHTML).toEqual( - '' + '' ); });