From b50f6e387d8abc2e87ddc768c0534601c815f951 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Fri, 25 Aug 2023 15:12:44 +0400 Subject: [PATCH] Fix undo/redo when using `component.setClass`. Closes #5319 --- src/dom_components/view/ComponentView.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/dom_components/view/ComponentView.ts b/src/dom_components/view/ComponentView.ts index 6c9cc5b6e..1426e5c87 100644 --- a/src/dom_components/view/ComponentView.ts +++ b/src/dom_components/view/ComponentView.ts @@ -169,13 +169,13 @@ Component> { initClasses() { const { model } = this; + const { classes } = model; const event = 'change:classes'; - const classes = model.get('classes'); if (classes instanceof Selectors) { this.stopListening(model, event, this.initClasses); this.listenTo(model, event, this.initClasses); - this.listenTo(classes, 'add remove change', this.updateClasses); + this.listenTo(classes, 'add remove change reset', this.updateClasses); classes.length && this.importClasses(); } } @@ -216,13 +216,9 @@ Component> { * @private * */ importClasses() { - const clm = this.em.Selectors; - - if (clm) { - this.model.classes.each(m => { - clm.add(m.get('name')); - }); - } + const { em, model } = this; + const sm = em.Selectors; + sm && model.classes.forEach(s => sm.add(s.get('name'))); } /**