- 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
- 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
- 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.
- `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
- 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
- Wenn die Checkbox "Kabelstrecken" aktiviert wird, wird automatisch die Checkbox "TALAS Meldestation" ebenfalls aktiviert.
- Status-Synchronisierung erfolgt über Redux und localStorage.
- TALAS Meldestation kann weiterhin unabhängig deaktiviert werden.
- Wenn die TALAS-Checkbox aktiviert wird, beeinflusst das nicht die Kabelstrecken.
- Stellt sicher, dass bei aktivierten Kabelstrecken die zugehörigen TALAS-Stationen immer sichtbar sind.
- 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.
- Ersetzung des Recoil Atoms 'zoomTriggerState' durch Redux Toolkit Slice.
- Hinzugefügt: Aktionen für incrementZoomTrigger, decrementZoomTrigger, resetZoomTrigger und setZoomTrigger.
- Implementierung von Redux-Selektoren zum Zugriff auf den zoomTrigger-Zustand.
- Aktualisierung der Komponenten (MapComponent.js, DataSheet.js) auf Redux-Hooks (useSelector, useDispatch).
- Registrierung des zoomTriggerReducers im rootReducer und store.js.
- Überprüfung der Zoom In/Out-Funktionalität sowie Integration von Event-Handling für Mausrad und Kontextmenü.
- Recoil-Atom 'gisStationsStaticDistrictState' in ein Redux-Slice umgewandelt.
- fetchGisStationsStaticDistrict angepasst, um Redux-Dispatch zu verwenden.
- MapComponent.js und DataSheet.js refaktoriert, um Redux zu integrieren.
- fetchOptions für API-Anfragen hinzugefügt.
- Zentrale Zustandsverwaltung mit Redux sichergestellt.
- Logik hinzugefügt, um die TALAS-Checkbox automatisch zu aktivieren, wenn die Kabelstrecken-Checkbox aktiviert wird.
- Aktualisierung von `mapLayersVisibility` integriert, um den neuen Zustand zu synchronisieren.
- Synchronisation mit `localStorage` sichergestellt, um Konsistenz zwischen Zustand und persistentem Speicher zu gewährleisten.
- Verbesserung der Benutzerfreundlichkeit durch automatische Abhängigkeitsverwaltung.
- Wenn die TALAS-Checkbox deaktiviert wird, wird die Kabelstrecken-Checkbox automatisch deaktiviert.
- Separates Update für `polylineVisible` hinzugefügt, um Konflikte mit Recoil-Regeln zu vermeiden.
- Zustand und localStorage synchronisiert, um konsistente Sichtbarkeiten zu gewährleisten.
- Verbesserte Benutzererfahrung durch automatische Deaktivierung abhängiger Optionen.
- Die Checkbox für "Kabelstrecken" wird jetzt als Untermenü unter "TALAS" angezeigt.
- Dynamische Überprüfung von `system.name`, um die Hierarchie von Checkboxen zu definieren.
- Visuelle Einrückung (`ml-6`) implementiert, um die Untermenü-Struktur klar darzustellen.
- Anpassungen für eine klare und intuitive Benutzeroberfläche.
- Initiales Laden der Marker entsprechend der lokalen Speicherwerte (localStorage) korrigiert.
- Plus-Icons wird nun dynamisch aktualisiert, wenn Checkboxen geändert werden.
- Event-Listener für Sichtbarkeitsänderungen hinzugefügt, um Marker und Plus-Icons ohne Neuladen zu aktualisieren.
- Allgemeine Konsistenz zwischen `mapLayersVisibility` und tatsächlicher Sichtbarkeit der Layer verbessert.
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.
- Anpassung der System-Checkboxen im DataSheet, um statt interner Schlüssel die lesbaren Namen (z. B. "GSM Modem") anzuzeigen.
- Interne Schlüssel bleiben für die Logik unverändert.
- Verbesserung der Benutzerfreundlichkeit durch klarere Bezeichnungen in der UI.
- Set fixed min-width (150px) and max-width (200px) for the dropdown menu to ensure it does not expand too much on smaller screens.
- Removed flex-grow from dropdown to prevent it from taking excess space.
- Improved flex layout between dropdown, EditModeToggle, and expand icon to ensure proper spacing and alignment.
- Implemented logic to save the visibility states of POI and map layers in localStorage.
- Loaded saved checkbox states on component mount to retain user preferences.
- Updated `handleCheckboxChange` and `handlePoiCheckboxChange` to store changes in localStorage.
- Ensured that settings persist across page reloads for a better user experience.
- Imported useSetRecoilState from Recoil
- Defined and initialized setSelectedArea using useSetRecoilState with selectedAreaState
- Ensured setSelectedArea is used to reset the selected area after moving the map
This resolves the ReferenceError: setSelectedArea is not defined.
Der Bug in der Anwendung tritt auf, wenn eine Checkbox angeklickt wird und unerwartet eine Zoom-Funktion ausgelöst wird.
Dies geschieht nach einer Auswahl aus einem Dropdown-Menü. Wenn eine Option im Dropdown-Menü ausgewählt wird,
scheint der darauf folgende Klick auf eine Checkbox dazu zu führen, dass auf die zuletzt ausgewählte Position im Dropdown-Menü
gezoomt wird. Die Zustandsänderungen oder Event-Handler in der Anwendung interagieren auf eine nicht beabsichtigte Weise,
wodurch diese unerwünschte Zoom-Aktion aktiviert wird. sogar wenn Info geklickt wird.
Moved all Recoil atoms to a new 'atoms' directory and selectors to a 'selectors' directory to clarify the project structure and improve maintainability. This change separates concerns by clearly distinguishing between simple state (atoms) and derived state (selectors), facilitating better understanding and scalability of the application's state management.