- updatePolylineCoordinatesThunk in markerUtils.js und poiUtils.js eingebunden
- zentrale Hilfsfunktion savePolylineRedux erstellt
- fetch() entfernt, Version auf 1.1.183 erhöht
- fetchPoiTypes aus poiTypesSlice entfernt
- fetchPoiTypThunk.js + Service verwendet
- dispatch-Aufrufe in Komponenten angepasst
- Fehler "is not a function" beseitigt
- Version auf 1.1.180 erhöht
- fetch("/deletePoi") in PoiUpdateModal entfernt
- deletePoiService + deletePoiThunk eingeführt
- Kein Redux Slice nötig, da kein Status gespeichert wird
- Version auf 1.1.161 erhöht
- useFetchPoiData.js entfernt
- Neue Redux-Slices für POI-Typen und POI-Icons erstellt
- Neue Services und Thunks hinzugefügt
- fetch-Aufrufe durch zentralisierte Redux-Logik ersetzt
- store.js aktualisiert und neue States registriert
- ersetzt Zugriff auf json.Lines durch json.Statis
- behebt leeren Redux-State bei Linienstatus
- Daten aus Webservice fließen jetzt korrekt in gisLinesStatusSlice
- MapComponent.js nutzt jetzt useSelector für mapId/userId
- Übergabe dynamischer Parameter via dispatch(setMapId), dispatch(setUserId)
- Store um urlParameterReducer erweitert
- MapComponent.js nutzt jetzt Redux useSelector für zoomTrigger
- DataSheet.js verwendet dispatch(incrementZoomTrigger())
- Recoil vollständig entfernt und Store zentralisiert
- Redux-Slice 'selectedAreaSlice' erstellt mit set/clear Funktionen
- DataSheet.js verwendet dispatch(setSelectedArea(...)) für Dropdown-Auswahl
- MapComponent.js liest Bereichsauswahl über useSelector aus Redux Store
- Recoil-Importe entfernt, Zustand zentralisiert
- Migration von Recoil zu Redux abgeschlossen für Polyline-Interaktionsstatus
- `MapComponent.js` verwendet jetzt Redux `useSelector` und `dispatch(setDisabled(...))`
- `initializeMap.js` bekommt Callback-Funktion zur Steuerung des Redux-Status
- Redux-Slice `polylineEventsDisabledSlice.js` mit Actions `setDisabled`, `toggleDisabled` integriert
- Hinweis: `useCreateAndSetDevices.js` verwendet noch `useRecoilState`, muss refaktoriert werden
- Redux Slice 'poiReadFromDbTriggerSlice' eingeführt mit Trigger-Zähler
- Verwendet in index.js, AddPoiModalWindow.js, AddPOIModal.js und MapComponent.js
- Recoil entfernt und durch useSelector / dispatch(incrementTrigger()) ersetzt
- CHANGELOG.md auf 1.1.83 aktualisiert
- Recoil-Zugriffe in MapComponent.js, DataSheet.js, useMapComponentState.js entfernt
- Redux Slice poiLayerVisibleSlice eingeführt
- Redux Store konfiguriert
- Zustand 'visible' wird über Redux verwaltet
- CHANGELOG.md auf Version 1.1.82 aktualisiert
- zentrale API-Port-Logik über .env.local (`NEXT_PUBLIC_API_PORT_MODE`)
- URL-Parameter m/u aus der URL extrahiert und übergeben
- neue Doku unter /docs/frontend/redux/api/fromWebService/fetchGisStationsStaticDistrict.md
- CHANGELOG.md auf Version 1.1.72 erweitert
- fetchGisStationsStatic.js verwendet jetzt zentrale Port-Logik über .env.local (NEXT_PUBLIC_API_PORT_MODE)
- Map-ID wird direkt aus der URL gelesen (?m=...)
- Fehlerprüfung auf JSON-Antwort eingebaut
- Doku erstellt: /docs/frontend/redux/api/fromWebService/fetchGisStationsStatic.md
- CHANGELOG.md aktualisiert (v1.1.71)
- fetchGisSystemStatic und fetchGisStationsMeasurements nutzen jetzt zentrale .env-Steuerung (NEXT_PUBLIC_API_PORT_MODE)
- feste :3000- oder :80-Zugriffe entfernt, dynamisch via hostname aufgebaut
- URL-Parameter m/u aus der Query übernommen
- zwei neue Dokumentationsdateien im Verzeichnis /docs/frontend/redux/api/fromWebService/
- CHANGELOG.md auf Version 1.1.69 aktualisiert
- NEXT_PUBLIC_API_PORT_3000 entfernt
- API-Aufrufe basieren jetzt auf window.location.hostname:3000
- kein Rebuild mehr bei IP-Änderung nötig
- .env.local aufgeräumt
- CHANGELOG.md auf 1.1.68 aktualisiert
- Entfernt Fallback für idMap und idUser via .env.local
- Anpassung aller fetchGis*-Funktionen zur Nutzung von URL-Parametern
- Dokumentation entsprechend aktualisiert
- CHANGELOG.md hinzugefügt (Version 1.1.65)
- Entfernt `useRecoilState(mapLayersState)` und durch `useSelector(selectMapLayersState)` ersetzt.
- Alle `setMapLayersVisibility` durch `dispatch(setLayerVisibility(...))` ersetzt.
- LocalStorage-Handling für `mapLayersVisibility` mit Redux umgesetzt.
- Fehler "setMapLayersVisibility is not defined" behoben, indem `dispatch` verwendet wurde.
- Sicherstellung, dass `mapLayersSlice` im Redux-Store registriert ist.
- Kontextmenü wird jetzt nur einmal hinzugefügt, wenn es noch nicht existiert.
- Vor dem Hinzufügen wird geprüft, ob bereits Einträge existieren, um Duplikate zu vermeiden.
- Kontextmenü wird entfernt, wenn außerhalb geklickt wird, um Speicherlecks zu verhindern.
- Nutzung eines `Set()` für Menü-IDs, um doppelte Einträge sicher zu verhindern.
- Implementiert `store.subscribe()` in `setupPolylines.js`, um das Kontextmenü-Handling über Redux zu steuern.
- Ersetzt `useDispatch()` und `useSelector()` durch `store.dispatch()` und `store.getState()` in einer Nicht-React-Datei.
- Fügt eine `forceClose`-Action in `polylineContextMenuSlice.js` hinzu, um das Kontextmenü synchron mit `setInterval` zu schließen.
- Stellt sicher, dass das Kontextmenü **immer vor Ablauf des 20-Sekunden-Intervalls** geschlossen wird.
- Verhindert doppelte Menüinstanzen und sorgt für ein stabiles Verhalten bei wiederholten Interaktionen.
✅ Fix für `TypeError: Cannot read properties of null (reading 'contextmenu')`
✅ **Verhindert Kontextmenü-Fehler beim automatischen Datenupdate**
✅ **Redux-gesteuerte Menüverwaltung für stabilere Performance**
✅ **Kein unerwartetes Offenbleiben oder erneutes Rendern des Menüs mehr**