Files
nodeMap/docs/components/DataSheet.md
ISA b847b5d2c8 docs: Projektstruktur der Dokumentation an Quellcode angepasst
- Verzeichnisstruktur unter /docs spiegelt nun die tatsächliche Projektstruktur wider
- frontend/server-Trennung entfernt zugunsten von /docs/pages, /docs/redux, /docs/utils etc.
- Erhöht Wiederauffindbarkeit, Übersichtlichkeit und Entwicklerfreundlichkeit
2025-05-27 09:30:40 +02:00

3.2 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
  • poiLayerVisibleSlice
  • zoomTriggerSlice
  • selectedAreaSlice

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

  • Redux-Slice poiLayerVisibleSlice
  • 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: [...] }
  • Redux Store muss 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



Hinweis zur Umstellung

Diese Komponente wurde ursprünglich mit Recoil entwickelt.
Seit Version 1.1.96 ist der Zustand vollständig auf Redux Toolkit umgestellt.
Die Recoil-Atoms wurden entfernt und durch Redux-Slices ersetzt.