- `index.js` als Client-Komponente deklariert (`"use client"`) zur Vermeidung von SSR-Problemen.
- `useEffect` optimiert, um unendliche API-Requests durch `isMounted`-Check zu verhindern.
- `loadData()` angepasst, um API-Fehler korrekt abzufangen und erneute Ladeversuche zu vermeiden.
- Doppelte Registrierung von `poiReadFromDbTriggerAtom` durch HMR verhindert.
- Ungültige MySQL-Option `acquireTimeout` entfernt, um Verbindungsfehler zu beheben.
Diese Änderungen verhindern unerwartete Reloads und verbessern die Stabilität der Anwendung.
- `.env.local` angepasst, um den Datenbank-Host (DB_HOST) auf `127.0.0.1` zu setzen.
- `mysqlPool.js` aktualisiert, um eine Verbindung zur lokalen Datenbank über `127.0.0.1` zu ermöglichen.
- DNS-Server erfolgreich getestet, um Webseitenerreichbarkeit über DNS-Namen sicherzustellen.
- Sicherstellung, dass die Anwendung über `test.mytest.local` korrekt funktioniert.
- Protokoll und Hostname dynamisch über window.location abgeleitet.
- Basis-URL auf /talas5/devices/ angepasst.
- Unterstützt flexible Umgebungskonfiguration (z. B. Entwicklungs- und Produktionsumgebungen).
- originWithoutPort angepasst, um Protokoll und Hostname ohne Port zu nutzen.
- Fehlerbehandlung verbessert, um ungültige API-Antworten zu erkennen.
- Debugging-Logs hinzugefügt, um API-Aufrufe zu überwachen.
- Viele console.log-Ausgaben auskommentiert und durch localStorage ersetzt.
- Debugging-Daten werden nun persistent gespeichert, um eine einfachere Nachverfolgung zu ermöglichen.
- Verbessert die Übersichtlichkeit und reduziert das Scrollen in der Konsole.
- Logik implementiert, um überlappende Marker in allen Layern zu überprüfen.
- "PlusRoundIcon" wird jetzt für überlappende Marker auf der Karte angezeigt.
- useEffect angepasst, um alle Marker-Layer in die Überprüfung einzubeziehen.
- 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.
- Ursache des Problems: Inkonsistenz bei der Benennung des Layers in `useLayerVisibility` ("SMSFunkmodem" vs. "SMSModem").
- Anpassung des Layer-Namens in `useLayerVisibility`, um mit der `GisSystemStatic`-Datenstruktur und `mapLayersVisibility` übereinzustimmen.
- Konflikt führte dazu, dass der SMS Modem-Layer nicht korrekt sichtbar/unsichtbar geschaltet wurde.
- Debugging und Anpassungen führten zur erfolgreichen Behebung des Fehlers.
Dieser Fix stellt sicher, dass die Sichtbarkeit der Marker-Layer konsistent und wie erwartet funktioniert.
- Refaktorierung des `useMarkersLayer`-Hooks zur internen Behandlung der Sichtbarkeitsbedingung.
- `isVisible`-Parameter hinzugefügt, um konsistente Hook-Aufrufe sicherzustellen.
- Cleanup-Logik verbessert, um Layer beim Unmount korrekt zu entfernen.
- GMA-Marker und Tooltips basierend auf Sichtbarkeit korrekt verarbeitet.
fix: Markers Icons, Linien und GMA ToolTip aktualisieren sich
feat: Marker-Management optimiert und Plus-Icon für überlappende Marker hinzugefügt
- Problem mit doppelten Icons behoben: Alte Marker werden vor jedem Update zuverlässig entfernt (clearLayers).
- Zentrale Verwaltung aller Marker-Layer-Gruppen eingeführt (Refactoring mit layerGroups).
- Plus-Icon für überlappende Marker hinzugefügt, um bessere Übersicht bei Markern an derselben Position zu gewährleisten (checkOverlappingMarkers).
- Regelmäßige Updates der Marker-Gruppen via setInterval implementiert.
- Problem mit doppelten Icons behoben: Alte Marker werden vor jedem Update zuverlässig entfernt (clearLayers).
- Zentrale Verwaltung aller Marker-Layer-Gruppen eingeführt (Refactoring mit layerGroups).
- Plus-Icon für überlappende Marker hinzugefügt, um bessere Übersicht bei Markern an derselben Position zu gewährleisten (checkOverlappingMarkers).
- Regelmäßige Updates der Marker-Gruppen via setInterval implementiert.
- Marker-Icons werden dynamisch aktualisiert, ohne dass Blinken oder redundantes Rendering auftritt.
- ToolTip-Werte der GMA-Stationen aktualisieren sich in Echtzeit basierend auf neuen Messdaten.
- Verbesserte Performance durch gezielte Updates nur bei Datenänderungen.
- Integriere react-select für eine benutzerfreundlichere Auswahl der Geräte und POI-Typen.
- Anwende benutzerdefinierte Styles, um eine einheitliche und übersichtliche Darstellung der Dropdowns zu gewährleisten.
- Sicherstellung, dass Platzhalter ("Gerät auswählen..." und "Typ auswählen...") immer angezeigt werden.
- Bereinige das Layout für eine konsistente Benutzererfahrung in beiden Modalen.
- Korrigiert TypeError, der auftrat, wenn versucht wurde, auf `contextmenu` zuzugreifen, während es null war.
- Implementiert präzise Zeitmessung mithilfe von `Date.now()`, um das Schließen des Kontextmenüs nach genau 17 Sekunden sicherzustellen.
- Verbessert Benutzererfahrung durch zuverlässigere und stabilere Menüverwaltung.