]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/layers/notes.js
Merge remote-tracking branch 'upstream/pull/5611'
[rails.git] / app / assets / javascripts / index / layers / notes.js
index 1068472d5171bd0ab48c5ada2944be454ad79013..1bc3714f0472af0e9c9bd43c5621dd6750b7ebdc 100644 (file)
@@ -1,6 +1,7 @@
 OSM.initializeNotesLayer = function (map) {
-  var noteLayer = map.noteLayer,
-      notes = {};
+  let noteLoader;
+  const noteLayer = map.noteLayer;
+  let notes = {};
 
   var noteIcons = {
     "new": L.icon({
@@ -25,6 +26,8 @@ OSM.initializeNotesLayer = function (map) {
     map.on("moveend", loadNotes);
     map.fire("overlayadd", { layer: noteLayer });
   }).on("remove", () => {
+    if (noteLoader) noteLoader.abort();
+    noteLoader = null;
     map.off("moveend", loadNotes);
     noteLayer.clearLayers();
     notes = {};
@@ -63,8 +66,6 @@ OSM.initializeNotesLayer = function (map) {
     return marker.id;
   };
 
-  var noteLoader;
-
   function loadNotes() {
     var bounds = map.getBounds();
     var size = bounds.getSize();
@@ -83,9 +84,7 @@ OSM.initializeNotesLayer = function (map) {
     function success(json) {
       var oldNotes = notes;
       notes = {};
-      json.features.forEach(updateMarkers);
-
-      function updateMarkers(feature) {
+      for (const feature of json.features) {
         var marker = oldNotes[feature.properties.id];
         delete oldNotes[feature.properties.id];
         notes[feature.properties.id] = updateMarker(marker, feature);