aboutsummaryrefslogtreecommitdiff
path: root/frontend/ts/src/pages/map/marker.ts
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/ts/src/pages/map/marker.ts')
-rw-r--r--frontend/ts/src/pages/map/marker.ts20
1 files changed, 15 insertions, 5 deletions
diff --git a/frontend/ts/src/pages/map/marker.ts b/frontend/ts/src/pages/map/marker.ts
index b690741..435ed5b 100644
--- a/frontend/ts/src/pages/map/marker.ts
+++ b/frontend/ts/src/pages/map/marker.ts
@@ -1,16 +1,17 @@
-import { mount, h, s } from 'lib/rx'
+import { Var, mount, h, s } from 'lib/rx'
import * as Color from 'lib/color'
import * as M from 'lib/leaflet'
import * as icons from 'lib/icons'
import * as markerModel from 'models/marker'
interface CreateParams {
- marker: markerModel.Marker,
- onMove: (marker: M.Layer) => void,
- onClick: (markerElem: M.FeatureGroup) => void,
+ marker: markerModel.Marker
+ onMove: (marker: M.Layer) => void
+ onClick: (markerElem: M.FeatureGroup) => void
+ readOnlyVar: Var<boolean>
}
-export function create({ marker, onMove, onClick }: CreateParams): M.FeatureGroup {
+export function create({ marker, onMove, onClick, readOnlyVar }: CreateParams): M.FeatureGroup {
const { lat, lng, color, icon, name, description, radius } = marker
const pos = { lat, lng }
@@ -30,6 +31,15 @@ export function create({ marker, onMove, onClick }: CreateParams): M.FeatureGrou
? M.featureGroup([ markerElem, circle ])
: M.featureGroup([ markerElem ])
+ // Fired before dragging, permits to disable dragging just at the right
+ // moment if in readonly mode.
+ markerElem.addEventListener('mousedown', () => {
+ if (readOnlyVar.now()) {
+ markerElem.dragging.disable()
+ window.setTimeout(() => markerElem.dragging.enable())
+ }
+ })
+
markerElem.addEventListener('drag', e => {
circle && circle.setLatLng(markerElem.getLatLng())
})