From 01525082faaffdac1bc407fed072905c8db24620 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Mon, 14 Aug 2023 18:19:20 +0400 Subject: [PATCH] Add spot add event --- src/canvas/index.ts | 13 +++++++++++++ src/canvas/model/CanvasSpots.ts | 10 +++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/canvas/index.ts b/src/canvas/index.ts index ede0f1624..d57b594f9 100644 --- a/src/canvas/index.ts +++ b/src/canvas/index.ts @@ -63,6 +63,18 @@ import CanvasSpot, { CanvasSpotProps } from './model/CanvasSpot'; export type CanvasEvent = 'canvas:dragenter' | 'canvas:dragover' | 'canvas:drop' | 'canvas:dragend' | 'canvas:dragdata'; +const canvasEvents = { + dragEnter: 'canvas:dragenter', + dragOver: 'canvas:dragover', + dragEnd: 'canvas:dragend', + dragData: 'canvas:dragdata', + drop: 'canvas:drop', + spot: 'canvas:spot', + spotAdd: 'canvas:spot:add', + spotUpdate: 'canvas:spot:update', + spotRemove: 'canvas:spot:remove', +} as const; + export interface ToWorldOption { toWorld?: boolean; } @@ -87,6 +99,7 @@ export default class CanvasModule extends Module { canvas: Canvas; model: Canvas; spots: CanvasSpots; + events = canvasEvents; private canvasView?: CanvasView; /** diff --git a/src/canvas/model/CanvasSpots.ts b/src/canvas/model/CanvasSpots.ts index 091c97817..1b18be19c 100644 --- a/src/canvas/model/CanvasSpots.ts +++ b/src/canvas/model/CanvasSpots.ts @@ -5,8 +5,12 @@ import CanvasSpot, { CanvasSpotProps } from './CanvasSpot'; export default class CanvasSpots extends ModuleCollection { constructor(module: CanvasModule, models: CanvasSpot[] | CanvasSpotProps[] = []) { super(module, models, CanvasSpot); - // bindAll(this, 'itemLoaded'); - // this.on('reset', this.onReset); - // this.on('remove', this.onRemove); + this.on('add', this.onAdd); + } + + onAdd(spot: CanvasSpot) { + const { module } = this; + const { em, events } = module; + em.trigger(events.spotAdd, { spot }); } }