3.0 KiB
3.0 KiB
Komponenten-Dokumentation: DataSheet.js
Zweck
Die Komponente DataSheet dient als Kontrollzentrale für die interaktive Kartenanwendung. Sie bietet Funktionen für:
- Auswahl von Bereichen ("Stationen") aus einem Dropdown-Menü
- Steuerung der Sichtbarkeit von Layern wie POIs und Polyline (z. B. Kabelstrecken)
- Aktivierung des Editiermodus
- Steuerung von Layer-Zuständen über Redux und Recoil
Position im UI
Die Komponente wird als Floating-Panel oben rechts auf der Karte angezeigt. Sie hat eine feste Breite (min/max) und ist als "Sidebar-Lightbox" implementiert.
Abhängigkeiten
Redux
gisStationsStaticDistrictSlicegisSystemStaticSlicemapLayersSlicepolylineLayerVisibleSlicegisStationsStaticSlice
Recoil
selectedAreaStatezoomTriggerStatepoiLayerVisibleState
Hooks
useInitGisStationsStatic()
Funktionalität im Überblick
1. Bereiche Dropdown
- Gefüllt aus
GisStationsStatic.Points - Wird aktualisiert, wenn sich die Redux-Daten ändern
- Bei Auswahl wird
selectedAreaStateaktualisiert
2. Systemlayer-Checkboxen
- Daten kommen aus
GisSystemStatic - Jeder Eintrag hat
Nameund einen intern generiertenkey - Sichtbarkeit wird über
mapLayersStateverwaltet - Zustand wird in
localStoragegespeichert
3. TALAS-Untermenu
- Bei Systemname "TALAS" wird eine Untergruppe angezeigt:
- Checkbox für Polyline (Kabelstrecken)
- Sichtbarkeit auch in
localStorage
4. POI-Checkbox
- Recoil-State
poiLayerVisibleState - Sichtbarkeit von POI-Layern auf der Karte
5. EditModeToggle
- Eine separate Komponente
- Aktiviert/Deaktiviert den Bearbeitungsmodus (z. B. für Kontextmenü-Einträge)
- Bei aktivem EditMode sind Checkboxen deaktiviert
Lokale Speicherwerte (localStorage)
Folgende Werte werden zwischen Sitzungen gespeichert:
| Key | Zweck |
|---|---|
poiVisible |
Sichtbarkeit POI-Layer |
polylineVisible |
Sichtbarkeit Kabelstrecken |
mapLayersVisibility |
Sichtbarkeitsstatus für alle Layer |
editMode |
Status des Bearbeitungsmodus |
Bekannte Besonderheiten
- Fallbacks für Redux-Selector: z. B.
|| []bei leeren Listen - Fehlerprüfung für
GisStationsStatic.Pointsim useEffect - Doppelte Initialisierung von stationListing (einmal aus
Points, einmal ausDistrict)
Voraussetzungen für korrekte Funktion
- API-Endpunkt
/GisStationsStatic?idMap=...muss korrekte Struktur liefern:{ Points: [...] } - Recoil- und Redux-Stores müssen korrekt initialisiert sein
- Hook
useInitGisStationsStaticmuss beim Mount ausgeführt werden
Weiterführende Dateien
/hooks/useMapComponentState.js/components/EditModeToggle.js- Redux-Slices unter
/redux/slices/
Speicherort für Dokumentation
Empfohlenes Ziel: /docs/DataSheet.md