Files
nodeMap/docs/frontend/components/DataSheet.md
2025-05-17 12:30:45 +02:00

3.0 KiB
Raw Blame History

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

  • gisStationsStaticDistrictSlice
  • gisSystemStaticSlice
  • mapLayersSlice
  • polylineLayerVisibleSlice
  • gisStationsStaticSlice

Recoil

  • selectedAreaState
  • zoomTriggerState
  • poiLayerVisibleState

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 selectedAreaState aktualisiert

2. Systemlayer-Checkboxen

  • Daten kommen aus GisSystemStatic
  • Jeder Eintrag hat Name und einen intern generierten key
  • Sichtbarkeit wird über mapLayersState verwaltet
  • Zustand wird in localStorage gespeichert

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.Points im useEffect
  • Doppelte Initialisierung von stationListing (einmal aus Points, einmal aus District)

Voraussetzungen für korrekte Funktion

  • API-Endpunkt /GisStationsStatic?idMap=... muss korrekte Struktur liefern: { Points: [...] }
  • Recoil- und Redux-Stores müssen korrekt initialisiert sein
  • Hook useInitGisStationsStatic muss 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