diff --git a/src/modules/Editor.js b/src/modules/Editor.js index 50e28cf..a993b7d 100644 --- a/src/modules/Editor.js +++ b/src/modules/Editor.js @@ -42,6 +42,9 @@ export class Editor { }, [MODES.SHOTTER]: { start: this.shotter.makeShot, + }, + [MODES.STICKERS]: { + toggle: this.clearSticker, } }; @@ -68,9 +71,13 @@ export class Editor { changeMode = mode => { if (this.mode === mode) { - this.disableMode(mode); - this.setMode(MODES.NONE); - this.mode = MODES.NONE; + if (this.switches[mode].toggle) { + this.switches[mode].toggle(); // if we have special function on mode when it toggles + } else { + this.disableMode(mode); + this.setMode(MODES.NONE); + this.mode = MODES.NONE; + } } else { this.disableMode(this.mode); this.setMode(mode); @@ -129,10 +136,16 @@ export class Editor { this.setActiveSticker(sticker); }; + clearSticker = () => { + this.setSticker(null); + }; + clearAll = () => { this.poly.clearAll(); this.router.clearAll(); + this.stickers.clearAll(); + this.setSticker(null); this.changeMode(MODES.NONE); } } diff --git a/src/modules/Stickers.js b/src/modules/Stickers.js index 71c45c7..f7fd935 100644 --- a/src/modules/Stickers.js +++ b/src/modules/Stickers.js @@ -11,13 +11,13 @@ export class Stickers { this.layer.addTo(this.map); } - - createOnClick = e => { - if (!e || !e.latlng) return; - - const { latlng } = e; - this.createSticker({ latlng }); - }; + // + // createOnClick = e => { + // if (!e || !e.latlng) return; + // + // const { latlng } = e; + // this.createSticker({ latlng }); + // }; createSticker = ({ latlng, sticker }) => { const marker = new Sticker({ @@ -41,4 +41,12 @@ export class Stickers { this.map.removeLayer(ref.sticker); this.stickers.splice(index, 1); }; + + clearAll = () => { + const target = [...this.stickers]; + target.map(sticker => { + this.deleteStickerByReference(sticker); + return true; + }); + } }