diff --git a/src/commands/view/MoveComponent.ts b/src/commands/view/MoveComponent.ts index 67a4d2b02..77cf59208 100644 --- a/src/commands/view/MoveComponent.ts +++ b/src/commands/view/MoveComponent.ts @@ -92,8 +92,8 @@ export default extend({}, SelectPosition, SelectComponent, { // Avoid badge showing on move this.cacheEl = null; const lastModel = models[models.length - 1]; - const frame = (this.em.get('currentFrame') || {}).model; - const el = lastModel.getEl(frame)!; + const frameView = this.em.getCurrentFrame(); + const el = lastModel.getEl(frameView?.model)!; const doc = el.ownerDocument; this.startSelectPosition(el, doc, { onStart: this.onStart }); this.sorter.draggable = lastModel.get('draggable'); diff --git a/src/commands/view/SelectComponent.ts b/src/commands/view/SelectComponent.ts index bd8632deb..c44a99ded 100644 --- a/src/commands/view/SelectComponent.ts +++ b/src/commands/view/SelectComponent.ts @@ -30,6 +30,7 @@ let showOffsets: boolean; */ export default { init() { + this.onSelect = debounce(this.onSelect, 0); bindAll( this, 'onHover', @@ -129,7 +130,7 @@ export default { this.currentDoc = trg.ownerDocument; em.setHovered(model, { useValid: true }); - frameView && em.set('currentFrame', frameView); + frameView && em.setCurrentFrame(frameView); }, onFrameUpdated() { @@ -170,30 +171,25 @@ export default { * @param {Object} el * @private * */ - onSelect: debounce(function () { - // @ts-ignore + onSelect() { const { em } = this; const component = em.getSelected(); - const currentFrame = em.get('currentFrame') || {}; - const view = component && component.getView(currentFrame.model); + const currentFrame = em.getCurrentFrame(); + const view = component && component.getView(currentFrame?.model); let el = view && view.el; let result = {}; if (el && isVisible(el)) { - // @ts-ignore const pos = this.getElementPos(el); result = { el, pos, component, view: getViewEl(el) }; } - // @ts-ignore this.elSelected = result; - // @ts-ignore this.updateToolsGlobal(); - // @ts-ignore This will hide some elements from the select component + // This will hide some elements from the select component this.updateLocalPos(result); - // @ts-ignore this.initResize(component); - }, 0), + }, updateGlobalPos() { const sel = this.getElSelected(); diff --git a/src/dom_components/model/Component.ts b/src/dom_components/model/Component.ts index 4d627cd08..95309a49c 100644 --- a/src/dom_components/model/Component.ts +++ b/src/dom_components/model/Component.ts @@ -1701,7 +1701,7 @@ export default class Component extends StyleableModel { * @param {Frame} frame Specific frame from which taking the element * @return {HTMLElement} */ - getEl(frame = undefined) { + getEl(frame?: Frame) { const view = this.getView(frame); return view && view.el; } @@ -1723,7 +1723,8 @@ export default class Component extends StyleableModel { } getCurrentView() { - const frame = (this.em.get('currentFrame') || {}).model; + const frameView = this.em.getCurrentFrame(); + const frame = frameView?.model; return this.getView(frame); }