## 🧪 Hinweise zur Entwicklung - Mock-Dateien liegen unter `/public/__mocks__/` - In `.env.local` ist `NEXT_PUBLIC_USE_MOCKS=true` gesetzt - Diese helfen beim UI-Test der Intervall-Aktualisierung (Charts, Statusanzeigen) - Manuell bearbeitbar, um gezielt Systemverhalten zu simulieren ## 🔧 Offene Aufgaben - [ ] TODO: GMA auf 13er ist anders als in der Entwicklungsumgebung, Tooltip wird nicht angezeigt - [ ] TODO: In editMode ohne Rechte kann noch die Linien Stützpunkte positioniert werden, es soll das nicht! - [ ] TODO: In editMode ohne Rechte kann noch den Bereich positioniert werden, es soll das nicht! - [ ] TODO: die Messwerte GMA werden nicht angezeigt - [ ] TODO: der Kunde könnte statt GMA andere Name haben - [x] TODO: überall durch ein Interval Services aufrufen um die Daten zu aktualisieren , am besten in eine Zentraler Stelle ---> von ein Hook die alle gebrauchte Slice und thunks holt mit setInterval, diesen hokk in main component integrieren - [x] TODO: Möglichkeit bevor in Gitea hochgeladen, .env.local anpassen, vielleicht mit husky Wenn git push genutzt wird soll für Produktionsumgebung angepasst werden, Vorschlag ---> .env.local und .env.production für Entwicklungsumgebung und Produktionsumgebung automatische Switch ## 🧹 Memory Leaks prüfen - [ ] **MapComponent.js** - [ ] `setInterval(...)` (1x) - [ ] `setTimeout(...)` (2x) - [ ] `window.xyz = ...` (4x) – globale Variablen - [ ] `map.on(...)` (2x) - [ ] `addEventListener(...)` (1x) - 📌 Problematisch, wenn `clearInterval`, `clearTimeout`, `map.off(...)` oder `removeEventListener(...)` nicht im useEffect-Cleanup gemacht werden. → Speicher kann anwachsen, besonders bei Hot-Reload oder Navigation im iFrame. - [ ] **useAreaMarkersLayer.js** - [ ] `setInterval(...)` - [ ] `addEventListener(...)` - 📌 Auch hier muss geprüft werden, ob beim Unmounting der Komponente `clearInterval()` und `removeEventListener()` aufgerufen wird. - [ ] **AddPOIModal.js** - [ ] `setTimeout(...)` - 📌 Prüfen, ob der Timeout vor unmount gecleart wird (z. B. bei schnellem Öffnen und Schließen des Modals). - [ ] **MapLayersControlPanel.js** - [ ] `setTimeout(...)` - [ ] **useDataUpdater.js** - [ ] `setInterval(...)` - 📌 Sehr wahrscheinlich ein regelmäßiger Polling-Mechanismus → unbedingt prüfen, ob `clearInterval()` im useEffect-Cleanup enthalten ist.