From 293f3cd7b95a539d026118d98110f368e668bd52 Mon Sep 17 00:00:00 2001 From: muerwre Date: Fri, 31 Aug 2018 16:25:42 +0700 Subject: [PATCH] editor - viewer buttons --- src/components/panels/UserPanel.jsx | 22 +++++++++++++++++++++- src/containers/App.jsx | 11 ++++++++++- src/modules/Editor.js | 4 ++++ src/modules/Sticker.js | 1 + src/styles/stickers.less | 5 +++++ 5 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/components/panels/UserPanel.jsx b/src/components/panels/UserPanel.jsx index f154927..3728181 100644 --- a/src/components/panels/UserPanel.jsx +++ b/src/components/panels/UserPanel.jsx @@ -56,7 +56,7 @@ export class UserPanel extends React.PureComponent { render() { const { - props: { user, userLogout }, + props: { user, userLogout, editor, editing }, state: { menuOpened }, } = this; @@ -74,6 +74,26 @@ export class UserPanel extends React.PureComponent { } + +
+ +
+ { + editing + ? + + : + } + +
); diff --git a/src/containers/App.jsx b/src/containers/App.jsx index 51ec5cd..cd9123d 100644 --- a/src/containers/App.jsx +++ b/src/containers/App.jsx @@ -14,6 +14,7 @@ import { getUrlData, pushPath } from '$utils/history'; export class App extends React.Component { state = { mode: 'none', + editing: false, logo: DEFAULT_LOGO, routerPoints: 0, totalDistance: 0, @@ -93,6 +94,11 @@ export class App extends React.Component { this.setState({ logo }); }; + setEditing = editing => { + console.log('editing', editing); + this.setState({ editing }); + }; + editor = new Editor({ container: 'map', mode: this.state.mode, @@ -101,6 +107,7 @@ export class App extends React.Component { setTotalDist: this.setTotalDist, setActiveSticker: this.setActiveSticker, setLogo: this.setLogo, + setEditing: this.setEditing, }); authInit = () => { @@ -155,7 +162,7 @@ export class App extends React.Component { const { editor, state: { - mode, routerPoints, totalDistance, estimateTime, activeSticker, logo, user, + mode, routerPoints, totalDistance, estimateTime, activeSticker, logo, user, editing, }, } = this; @@ -167,6 +174,8 @@ export class App extends React.Component { { this.poly.poly.enableEdit(); this.stickers.startEditing(); + this.setEditing(true); }; stopEditing = () => { this.poly.poly.disableEdit(); this.stickers.stopEditing(); + this.setEditing(false); }; dumpData = () => ({ diff --git a/src/modules/Sticker.js b/src/modules/Sticker.js index 066fa51..636881f 100644 --- a/src/modules/Sticker.js +++ b/src/modules/Sticker.js @@ -92,6 +92,7 @@ export class Sticker { }; estimateAngle = e => { + console.log('est'); const { x, y } = this.element.getBoundingClientRect(); const { pageX, pageY } = e; this.angle = Math.atan2((y - pageY), (x - pageX)); diff --git a/src/styles/stickers.less b/src/styles/stickers.less index 6d4129a..5fcf855 100644 --- a/src/styles/stickers.less +++ b/src/styles/stickers.less @@ -2,6 +2,11 @@ outline: none; position: relative; transition: transform 250ms; + cursor: pointer; + + &.leaflet-drag-target { + transition: none !important; + } &:before { content: ' ';