diff --git a/src/canvas/index.ts b/src/canvas/index.ts index 41678785b..2dc8a476b 100644 --- a/src/canvas/index.ts +++ b/src/canvas/index.ts @@ -733,8 +733,6 @@ export default class CanvasModule extends Module { setSpot(spotProps: Partial = {}, opts: AddOptions = {}) { const spots = this.getSpots(spotProps); - console.log('setSpot'); - if (spots.length) { const spot = spots[0]; spot.set(spotProps); @@ -747,7 +745,6 @@ export default class CanvasModule extends Module { const spot = new CanvasSpot(this, { ...spotProps, id: spotProps.id || `cs_${frameId}_${cmp?.getId()}`, - // TODO type should be mandatory type: spotProps.type || '', }); @@ -763,6 +760,10 @@ export default class CanvasModule extends Module { removeSpot(spotProps: Partial = {}) { const spots = this.getSpots(spotProps); + console.log('removeSpot', { + spotProps, + spots, + }); return this.spots.remove(spots); // 'canvas:spot:remove' // 'canvas:spot' diff --git a/src/canvas/model/CanvasSpot.ts b/src/canvas/model/CanvasSpot.ts index e015c8c53..a45670d7e 100644 --- a/src/canvas/model/CanvasSpot.ts +++ b/src/canvas/model/CanvasSpot.ts @@ -4,7 +4,15 @@ import { BoxRect, LiteralUnion } from '../../common'; import Component from '../../dom_components/model/Component'; import Frame from './Frame'; -export type CanvasSpotBuiltInType = 'select' | 'hover' | 'padding' | 'margin' | 'resize'; +export enum CanvasSpotBuiltInTypes { + Select = 'select', + Hover = 'hover', + Padding = 'padding', + Margin = 'margin', + Resize = 'resize', +} + +export type CanvasSpotBuiltInType = `${CanvasSpotBuiltInTypes}`; export type CanvasSpotType = LiteralUnion; diff --git a/src/editor/model/Editor.ts b/src/editor/model/Editor.ts index 944d46250..275b705a6 100644 --- a/src/editor/model/Editor.ts +++ b/src/editor/model/Editor.ts @@ -42,6 +42,7 @@ import CssRules from '../../css_composer/model/CssRules'; import Frame from '../../canvas/model/Frame'; import { ComponentAdd, DragMode } from '../../dom_components/model/types'; import ComponentWrapper from '../../dom_components/model/ComponentWrapper'; +import { CanvasSpotBuiltInTypes } from '../../canvas/model/CanvasSpot'; Backbone.$ = $; @@ -578,7 +579,7 @@ export default class EditorModel extends Model { selected.addComponent(model, opts); this.trigger('component:select', model, opts); this.Canvas.setSpot({ - type: 'select', + type: CanvasSpotBuiltInTypes.Select, component: model, }); }); @@ -591,7 +592,15 @@ export default class EditorModel extends Model { * @public */ removeSelected(el: Component | Component[], opts = {}) { - this.selected.removeComponent(getModel(el, $), opts); + const component = getModel(el, $); + this.selected.removeComponent(component, opts); + const cmps: Component[] = isArray(component) ? component : [component]; + cmps.forEach(component => + this.Canvas.removeSpot({ + type: CanvasSpotBuiltInTypes.Select, + component, + }) + ); } /**