Browse Source

Clean properly the FrameView on Frame remove

pull/5337/head
Artur Arseniev 3 years ago
parent
commit
47dbe98855
  1. 3
      src/canvas/model/Frame.ts
  2. 8
      src/canvas/view/FrameView.ts

3
src/canvas/model/Frame.ts

@ -148,7 +148,7 @@ export default class Frame extends ModuleModel<CanvasModule> {
}
onRemove() {
this.getComponent().remove({ root: 1 });
!this.refFrame && this.getComponent().remove({ root: 1 });
}
changesUp(opt: any = {}) {
@ -171,6 +171,7 @@ export default class Frame extends ModuleModel<CanvasModule> {
}
remove() {
this.view?.remove();
this.view = undefined;
const coll = this.collection;
return coll && coll.remove(this);

8
src/canvas/view/FrameView.ts

@ -2,6 +2,7 @@ import { bindAll, debounce, isString, isUndefined } from 'underscore';
import { ModuleView } from '../../abstract';
import { BoxRect } from '../../common';
import CssRulesView from '../../css_composer/view/CssRulesView';
import ComponentWrapperView from '../../dom_components/view/ComponentWrapperView';
import Droppable from '../../utils/Droppable';
import {
append,
@ -37,7 +38,7 @@ export default class FrameView extends ModuleView<Frame, HTMLIFrameElement> {
lastMaxHeight = 0;
private jsContainer?: HTMLElement;
private tools: { [key: string]: HTMLElement } = {};
private wrapper?: any;
private wrapper?: ComponentWrapperView;
private frameWrapView?: FrameWrapView;
constructor(model: Frame, view?: FrameWrapView) {
@ -209,10 +210,9 @@ export default class FrameView extends ModuleView<Frame, HTMLIFrameElement> {
}
remove(...args: any) {
const wrp = this.wrapper;
this._toggleEffects(false);
this.tools = {};
wrp && wrp.remove();
this.wrapper?.remove();
ModuleView.prototype.remove.apply(this, args);
return this;
}
@ -449,7 +449,7 @@ export default class FrameView extends ModuleView<Frame, HTMLIFrameElement> {
frameView: this,
},
}).render();
append(body, this.wrapper?.el);
append(body, this.wrapper?.el!);
append(
body,
new CssRulesView({

Loading…
Cancel
Save