// /utils/polylines/cleanupPolylinesForMemory.js

/**
 * Bereinigt Leaflet-Polylinien aus dem Speicher:
 * - entfernt Event-Listener (off)
 * - entfernt Tooltips (unbindTooltip)
 * - entfernt Layer von der Karte (removeLayer)
 *
 * @param {L.Polyline[]} polylines - Liste der Leaflet-Polylinien
 * @param {L.Map} map - Leaflet-Karteninstanz
 */
export function cleanupPolylinesForMemory(polylines = [], map) {
  if (!Array.isArray(polylines)) return;

  polylines.forEach(polyline => {
    try {
      // Events und Tooltip entfernen
      polyline.off();
      polyline.unbindTooltip?.();

      // Von der Karte entfernen, wenn noch vorhanden
      if (map && map.hasLayer(polyline)) {
        map.removeLayer(polyline);
      }
    } catch (e) {
      console.warn("Fehler beim Bereinigen einer Polyline:", e);
    }
  });
}
