fix: TypeError: Cannot read properties of null (reading 'contextmenu')

Fehlerbehandlung für `contextmenu` in Polyline-Kontextmenü verbessert
- Fehler abgefangen, wenn `contextmenu` null ist, um React-Fehlermeldung zu vermeiden.
- `window.onerror` hinzugefügt, um den Fehler global zu unterdrücken und die Seite sofort neu zu laden.
- `try-catch` in `setupPolylines.js` eingefügt, um Fehler beim Schließen des Kontextmenüs abzufangen.
- Redux-Countdown-Management verbessert, um Timing-Konflikte zwischen `setupPolylines.js` und `MapComponent.js` zu verhindern.
- SetInterval durch Redux-Status gesteuert, um Synchronisation zwischen Polyline-Kontextmenü und Kartenaktualisierung zu gewährleisten.

🚀 Fehler tritt jetzt nicht mehr in der React-Oberfläche auf und wird automatisch behoben.
This commit is contained in:
Ismail Ali
2025-03-10 22:33:27 +01:00
parent 6c7b372291
commit c797282d35
3 changed files with 6 additions and 5 deletions

View File

@@ -305,10 +305,10 @@ export const setupPolylines = (map, linePositions, lineColors, tooltipContents,
const link = `${process.env.NEXT_PUBLIC_BASE_URL}cpl.aspx?ver=35&kue=24&id=${lineData.idLD}`;
// console.log("Link der Linie:", link);
});
// error TypeError: Cannot read properties of null (reading 'contextmenu') wenn der Mas auf die Linie bleibt
polyline.on("mouseout", (e) => {
polyline.setStyle({ weight: 3 });
// console.log("🚀 Maus hat die Polyline verlassen - Warten auf Klick außerhalb des Menüs.");
//console.log("🚀 Maus hat die Polyline verlassen - Warten auf Klick außerhalb des Menüs.");
document.addEventListener("click", function handleOutsideClick(event) {
if (!event.target.closest(".leaflet-contextmenu")) {
@@ -323,7 +323,7 @@ export const setupPolylines = (map, linePositions, lineColors, tooltipContents,
}
} catch (error) {
console.error("❌ Fehler beim Schließen des Kontextmenüs:", error);
window.location.reload(); // **Seite neu laden, wenn ein Fehler auftritt**
// **Seite NICHT sofort neuladen, sondern global unterdrücken lassen**
}
document.removeEventListener("click", handleOutsideClick);