Quellcode durchsuchen

avoid duplicate events

Falko Schindler vor 1 Jahr
Ursprung
Commit
2ae303155b
2 geänderte Dateien mit 10 neuen und 5 gelöschten Zeilen
  1. 8 3
      nicegui/elements/leaflet.js
  2. 2 2
      nicegui/elements/leaflet.py

+ 8 - 3
nicegui/elements/leaflet.js

@@ -58,11 +58,16 @@ export default {
       "zoomanim",
     ]) {
       this.map.on(type, (e) => {
-        this.$emit(`map-${type}`, { ...e, originalEvent: undefined, target: undefined, sourceTarget: undefined });
+        this.$emit(`map-${type}`, {
+          ...e,
+          originalEvent: undefined,
+          target: undefined,
+          sourceTarget: undefined,
+          location: [e.target.getCenter().lat, e.target.getCenter().lng],
+          zoom: e.target.getZoom(),
+        });
       });
     }
-    this.map.on("moveend", (e) => this.$emit("moveend", e.target.getCenter()));
-    this.map.on("zoomend", (e) => this.$emit("zoomend", e.target.getZoom()));
     if (this.map_options.drawControl) {
       var drawnItems = new L.FeatureGroup();
       this.map.addLayer(drawnItems);

+ 2 - 2
nicegui/elements/leaflet.py

@@ -45,8 +45,8 @@ class Leaflet(Element, component='leaflet.js'):
 
         self.is_initialized = False
         self.on('init', self._handle_init)
-        self.on('moveend', lambda e: self.set_location((e.args['lat'], e.args['lng'])))
-        self.on('zoomend', lambda e: self.set_zoom(e.args))
+        self.on('map-moveend', lambda e: self.set_location(e.args['location']))
+        self.on('map-zoomend', lambda e: self.set_zoom(e.args['zoom']))
 
         self.tile_layer(
             url_template=r'https://{s}.tile.osm.org/{z}/{x}/{y}.png',