- 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
- 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
- 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 `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**
- `NEXT_PUBLIC_API_PORT_3000` in `.env.local` definiert
- `poiTypesSlice.js` so angepasst, dass die API-URL dynamisch aus `.env.local` geladen wird
- Harte URL entfernt, jetzt konfigurierbar ohne Code-Änderung
- Erfordert Neustart von Next.js, um `.env.local` zu laden
- Problem mit der Icon-Aktualisierung nach dem Hinzufügen eines POI behoben
- Temporäre Lösung: `window.location.reload()` nach `handleSubmit`
- Redux bleibt weiterhin für POI-Typen aktiv, spätere Optimierung ohne Reload geplant
- `GisStationsStaticDistrict` wird jetzt korrekt aus Redux gelesen und verwendet `Points` als Array.
- Fehler `find is not a function` behoben durch Zugriff auf `GisStationsStaticDistrict.Points`.
- Sicherstellung, dass `Points` existiert, bevor darauf zugegriffen wird.
- Konsole-Logs für Debugging hinzugefügt, um leere oder ungültige Daten zu erkennen.
- Bereichsauswahl im Dropdown funktioniert jetzt korrekt und fliegt zur gewählten Station auf der Karte.
✅ Tested: Dropdown zeigt jetzt die `Area_Name`-Werte und `map.flyTo()` funktioniert korrekt.
- API-Response für GisSystemStatic in Redux Store gespeichert
- Server-IP aus `.env.local` geladen (`NEXT_PUBLIC_API_BASE_URL`)
- `idMap` und `idUser` aus URL-Parametern extrahiert
- fetchGisSystemStatic angepasst für dynamische Werte
- Redux Store aktualisiert und getestet
- API-Loader für GisStationsMeasurements erstellt
- Redux-Slice für GisStationsMeasurements angelegt und im Store registriert
- Initialisierungs-Hook useInitGisStationsMeasurements hinzugefügt
- Daten werden jetzt beim Start automatisch geladen und zentral im Redux-Store gespeichert
- Vorbereitung für spätere Nutzung in UI-Komponenten
- WebService-Endpoint für GisStationsStaticDistrict angebunden
- Daten beim Start der Anwendung automatisch geladen und in Redux gespeichert
- UI (DataSheet) verwendet die Daten direkt aus dem Redux-Store
- Fehlerhandling und Initialzustand in Redux-Slice verbessert
- Alte lokale Fetch-Logik entfernt, zentrale Datenhaltung über Redux
- Geräte-Liste wird jetzt direkt aus dem Redux-Store (locationDevicesFromDB) verwendet.
- Dropdown-Menü zeigt alle verfügbaren Geräte aus der Datenbank.
- Beim Öffnen des Modals wird der vorher zugewiesene Gerätname automatisch ausgewählt (Pre-Selection).
- Cleanup und Optimierung: Keine separaten API-Calls mehr im Modal.
- Struktur verbessert durch Auslagerung der Lade-Logik in useInitLocationDevices Hook.
- 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.
feat: GeocoderFeature mit Feature Toggle und Anpassungen integriert
- GeocoderFeature als separates Modul implementiert und initialisiert.
- Feature Toggle für Geocoder in .env.local hinzugefügt (NEXT_PUBLIC_ENABLE_GEOCODER).
- Dynamische Aktivierung des Geocoders über MapComponent.js basierend auf Feature-Flag.
- Anpassungen zur Entfernung bzw. Anpassung der Fehlermeldung "Nothing found".
- Styling-Verbesserungen für das Suchfeld mit Tailwind CSS.