From 76d6cb37179fd89409edfbca601e8d5738f97109 Mon Sep 17 00:00:00 2001 From: muerwre Date: Wed, 20 Feb 2019 13:24:28 +0700 Subject: [PATCH] fixed stickers editing --- src/index.tsx | 2 +- src/modules/Editor.ts | 2 +- src/modules/Sticker.js | 3 +++ src/modules/Stickers.js | 13 ++++++++++++- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 04f8e38..37f897c 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -20,7 +20,7 @@ todo check osrm is up todo maybe: map preview on save - todo maybe: stickers clusterization? + done maybe: stickers clusterization? ## DONE diff --git a/src/modules/Editor.ts b/src/modules/Editor.ts index b315069..5f10077 100644 --- a/src/modules/Editor.ts +++ b/src/modules/Editor.ts @@ -48,7 +48,7 @@ export class Editor { // map, editor: this, // }); - this.stickers = new Stickers({ map, lockMapClicks, triggerOnChange }); + this.stickers = new Stickers({ map, lockMapClicks, triggerOnChange, editor: this }); this.router = new Router({ map, lockMapClicks, setRouterPoints: this.setRouterPoints, changeMode, pushPolyPoints }); diff --git a/src/modules/Sticker.js b/src/modules/Sticker.js index 6d459a9..64fe0f0 100644 --- a/src/modules/Sticker.js +++ b/src/modules/Sticker.js @@ -60,6 +60,9 @@ export class Sticker { onMouseDown={this.onDelete} onTouchStart={this.onDelete} /> + { + console.log('A?') + } , this.element diff --git a/src/modules/Stickers.js b/src/modules/Stickers.js index a8726ee..7504e1b 100644 --- a/src/modules/Stickers.js +++ b/src/modules/Stickers.js @@ -5,10 +5,11 @@ import icons from '$sprites/icon.svg'; import { clusterIcon } from '$utils/clusterIcon'; export class Stickers { - constructor({ map, lockMapClicks, triggerOnChange }) { + constructor({ map, lockMapClicks, triggerOnChange, editor }) { this.map = map; this.layer = layerGroup(); this.triggerOnChange = triggerOnChange; + this.editor = editor; this.clusterLayer = L.markerClusterGroup({ spiderfyOnMaxZoom: false, @@ -20,6 +21,8 @@ export class Stickers { iconCreateFunction: clusterIcon, }).addTo(map); + this.clusterLayer.on('animationend', this.onSpiderify); + this.lockMapClicks = lockMapClicks; this.stickers = []; @@ -70,6 +73,14 @@ export class Stickers { dumpData = () => this.stickers.map(sticker => sticker.dumpData()); + onSpiderify = () => { + if (this.editor.getEditing()) { + this.startEditing(); + } else { + this.stopEditing(); + } + }; + startEditing = () => { this.stickers.map(sticker => sticker.startEditing()); };