]> git.openstreetmap.org Git - rails.git/commitdiff
Abort loading when note layer is removed
authorAnton Khorev <tony29@yandex.ru>
Wed, 29 Jan 2025 15:13:10 +0000 (18:13 +0300)
committerAnton Khorev <tony29@yandex.ru>
Wed, 29 Jan 2025 15:13:10 +0000 (18:13 +0300)
app/assets/javascripts/index/layers/notes.js

index c0ba35d7e1b0d6f7c2e3819af78f1a7aada91f6f..75bd73bcefa7eb4a97878e6223e6277636efee49 100644 (file)
@@ -1,6 +1,7 @@
 OSM.initializeNotesLayer = function (map) {
 OSM.initializeNotesLayer = function (map) {
-  var noteLayer = map.noteLayer,
-      notes = {};
+  let noteLoader;
+  const noteLayer = map.noteLayer;
+  let notes = {};
 
   var noteIcons = {
     "new": L.icon({
 
   var noteIcons = {
     "new": L.icon({
@@ -25,6 +26,8 @@ OSM.initializeNotesLayer = function (map) {
     map.on("moveend", loadNotes);
     map.fire("overlayadd", { layer: noteLayer });
   }).on("remove", () => {
     map.on("moveend", loadNotes);
     map.fire("overlayadd", { layer: noteLayer });
   }).on("remove", () => {
+    if (noteLoader) noteLoader.abort();
+    noteLoader = null;
     map.off("moveend", loadNotes);
     noteLayer.clearLayers();
     notes = {};
     map.off("moveend", loadNotes);
     noteLayer.clearLayers();
     notes = {};
@@ -56,8 +59,6 @@ OSM.initializeNotesLayer = function (map) {
     return marker.id;
   };
 
     return marker.id;
   };
 
-  var noteLoader;
-
   function loadNotes() {
     var bounds = map.getBounds();
     var size = bounds.getSize();
   function loadNotes() {
     var bounds = map.getBounds();
     var size = bounds.getSize();