- Sichtbarkeitsstatus für Kabelstrecken/Polylines wird jetzt zentral im Redux-Store verwaltet.
- Initialer Zustand wird aus localStorage gelesen und direkt in Redux gesetzt.
- DataSheet-Checkbox steuert Redux-Status und synchronisiert mit localStorage.
- MapComponent.js verwendet Redux-State direkt zur Steuerung von setupPolylines.
- setupPolylines.js ist jetzt komplett "dumm" und bekommt den Sichtbarkeitsstatus nur noch als Parameter.
- Konsistente Lösung für Initial-Laden, Checkbox-Wechsel und Map-Neuladen umgesetzt.
- Problem: Leaflet-Events besitzen kein preventDefault(), nur deren originalEvent (natives DOM-Event).
- Lösung: Zugriff auf event.originalEvent eingebaut, um Fehler beim Kontextmenü zu vermeiden.
- Test: Marker-Kontextmenü öffnet Popup jetzt korrekt, ohne Runtime Error.
- `index.js` als Client-Komponente deklariert (`"use client"`) zur Vermeidung von SSR-Problemen.
- `useEffect` optimiert, um unendliche API-Requests durch `isMounted`-Check zu verhindern.
- `loadData()` angepasst, um API-Fehler korrekt abzufangen und erneute Ladeversuche zu vermeiden.
- Doppelte Registrierung von `poiReadFromDbTriggerAtom` durch HMR verhindert.
- Ungültige MySQL-Option `acquireTimeout` entfernt, um Verbindungsfehler zu beheben.
Diese Änderungen verhindern unerwartete Reloads und verbessern die Stabilität der Anwendung.
- SVG-Icons für Marker implementiert und dynamisch eingefärbt basierend auf API-Daten (idLD und Attribute Co).
- Niedrigstes Level bestimmt die Farbe der Marker.
- Standardfarbe Grün (#008013) für Marker ohne ID hinzugefügt.
- Popup-Informationen mit Farbindikatoren und zusätzlichen Geräteinformationen erstellt.
- SVG-Struktur und innere Icons beibehalten, um eine konsistente Darstellung sicherzustellen.
Gängige Praxis: *Slice.js
Verwendung: Wenn du Redux Toolkit und createSlice nutzt, ist der Postfix Slice gängiger.
Begründung:
createSlice ist ein Begriff aus Redux Toolkit.
Der Name vermittelt, dass die Datei nicht nur den Reducer enthält, sondern auch Aktionen und den initialen Zustand.
Häufig in modernen Projekten verwendet.
- zIndexOffset in `createAndSetDevices` von `100 * (5 - priority)` auf `100 * (6 - priority)` geändert.
- Dadurch erhalten Marker mit höherer Priorität einen größeren zIndex-Wert.
- Problem gelöst, bei dem POI-Marker von anderen Layern oder Markern überlagert wurden.
- Logik angepasst, um die Sichtbarkeit und Priorisierung der Marker zu stabilisieren.
- Viele console.log-Ausgaben auskommentiert und durch localStorage ersetzt.
- Debugging-Daten werden nun persistent gespeichert, um eine einfachere Nachverfolgung zu ermöglichen.
- Verbessert die Übersichtlichkeit und reduziert das Scrollen in der Konsole.
- Marker-Icons werden dynamisch aktualisiert, ohne dass Blinken oder redundantes Rendering auftritt.
- ToolTip-Werte der GMA-Stationen aktualisieren sich in Echtzeit basierend auf neuen Messdaten.
- Verbesserte Performance durch gezielte Updates nur bei Datenänderungen.