- `DateRangePicker.tsx` angepasst, um `vonDatum` und `bisDatum` direkt in Redux zu aktualisieren
- `LoopMeasurementChart.tsx` verbessert, sodass `vonDatum` und `bisDatum` beim Zoomen mit Mausrad automatisch in Redux gespeichert werden
- Chart.js `onZoom` korrekt implementiert, um Änderungen in der X-Achse sofort zu übernehmen
- Redux-Updates optimiert, um unnötige `dispatch`-Aufrufe zu vermeiden
- `isFullScreen` wurde in `ChartSwitcher.tsx` nicht mehr als Prop übergeben
- `LoopMeasurementChart.tsx` und `TDRChart.tsx` nutzen Redux-Store direkt
- Build erfolgreich nach Anpassung
- Neuer Fullscreen-Button oben rechts hinzugefügt
- State `isFullScreen` eingeführt zur Steuerung der Modal-Größe
- Dynamische Anpassung der Modal-Stile für Vollbildmodus
- Smooth-Transition für ein weiches Umschalten zwischen Normal- und Fullscreen-Modus
- useMemo für Redux-Selektoren in Kue705FO.tsx hinzugefügt, um unnötige Re-Renders zu vermeiden.
- State-Update in useAlarmStatus.ts optimiert, sodass setState nur noch aufgerufen wird, wenn sich der Wert wirklich ändert.
- Performance verbessert und maximale Update-Tiefe-Fehler ("Maximum update depth exceeded") behoben.
- Code-Struktur verbessert, um stabilere Redux-Integration zu gewährleisten.
- Alle Event-Handler in eigene Dateien ausgelagert:
- `handleOpenModal.ts`, `handleCloseModal.ts`
- `handleOpenChartModal.ts`, `handleCloseChartModal.ts`
- `handleRefreshClick.ts`, `handleSave.ts`
- Neue Hooks zur Verwaltung von Redux-Selektoren und UI-Zuständen erstellt
- `Kue705FO.tsx` gesäubert, jetzt schlanker und übersichtlicher
- Verbesserte Wartbarkeit und Wiederverwendbarkeit der Code-Basis
✅ Bessere Wiederverwendbarkeit: Falls du das gleiche Verhalten in einer anderen Komponente brauchst, kannst du einfach useTDRChart importieren.
✅ Kue705FO.tsx ist schlanker: Alle Hooks sind nun ausgelagert! 🎯🚀 Jetzt ist dein Code perfekt optimiert! 🎉
- useLoopDisplay.ts angepasst: useState nun explizit als `number` deklariert
- Typensicherheit in Kue705FO.tsx verbessert:
- `schleifenwiderstand` wird immer als `number` konvertiert
- `setLoopDisplayValue` akzeptiert nur `number`
- Fehlerhafte Typzuweisung in `handleButtonClick` korrigiert
- `npm run build` läuft nun ohne Fehler
✅ Code nun sauber typisiert, keine TypeScript-Fehler mehr 🚀
- useEffect-Logik aus Kue705FO.tsx in eigene Hooks ausgelagert:
- useKueVersion.ts für die KUE-Version
- useAlarmStatus.ts für den Alarmstatus
- useIsoDisplay.ts für die Anzeige der Isolationswerte
- useLoopDisplay.ts für den Schleifenwiderstand
- useChartPlugin.ts für Chart.js Plugin-Handling
- useChartData.ts für Redux-Chart-Datenverwaltung
- useModulName.ts für den Modulnamen mit Setter-Funktion
- Code in Kue705FO.tsx optimiert und modularisiert
- Fehler mit `setCurrentModulName` behoben durch Rückgabe der Setter-Funktion in useModulName.ts
- `kueCableBreak`, `kueGroundFault`, `kueAlarm1`, `kueAlarm2` und `kueOverflow` in `number[]` umgewandelt
- `.map(Number)` verwendet, um fehlerhafte `string[]`-Werte zu vermeiden
- `?? []` hinzugefügt, um `null` oder `undefined` zu verhindern
- Fehler beim Next.js Build behoben
- useSelector-Aufruf in ChartSwitcher.tsx angepasst, um den korrekten Redux-Slice (kueChartMode) zu verwenden.
- Fehler behoben: TypeError: Cannot read properties of undefined (reading 'activeMode').
Die Variable 'chartData' wurde in 'loopMeasurementCurveChartData' umbenannt, um den Inhalt und Zweck der Daten klarer zu definieren. Diese Änderung verbessert die Lesbarkeit und Wartbarkeit des Codes, indem sie die Bedeutung der Variablen präziser beschreibt.
- `getApiUrl` angepasst, um in der Produktionsumgebung die richtige URL zu verwenden.
- Verbesserte Fehlerbehandlung in `handleFetchData` mit zusätzlichen `console.log`-Ausgaben.
- Setzt `isChartOpen` explizit auf `true`, wenn das Chart geladen wird.
- Dadurch funktioniert das Laden der Daten jetzt auch in der Produktionsumgebung.
- `setChartOpen(true)` in `handleOpenChartModal` hinzugefügt.
- Redux-Import von `setChartOpen` in `Kue705FO.tsx` sichergestellt.
- Dadurch bleibt `isChartOpen` nicht mehr `false`, wenn das Modal geöffnet wird.
- Status wird nun korrekt aktualisiert, wenn `Messkurve` geklickt wird.
- Beim Öffnen des Chart-Modals (`ChartSwitcher.tsx`) wird nun `setChartOpen(true)` gesetzt.
- Dadurch bleibt `isChartOpen` nicht mehr fälschlicherweise `false`, wenn das Modal geöffnet wird.
- `useEffect` hinzugefügt, um den Redux-Status beim Öffnen zu aktualisieren.
- `handleClose` setzt weiterhin den Status auf `false`, wenn das Modal geschlossen wird.
- Import von `chartjs-plugin-zoom` in `LoopMeasurementChart.tsx` dynamisch in `useEffect` verschoben.
- Stellt sicher, dass `window` nur im Client-Umfeld genutzt wird.
- Erfolgreicher Next.js Production-Build getestet.
- Tooltip-Format geändert auf `dd.MM.yyyy HH:mm`, um Datum und Uhrzeit anzuzeigen
- X-Achse zeigt weiterhin nur das Datum (`dd.MM.yyyy`), aber Tooltips enthalten auch die Uhrzeit
- Tooltip `callbacks.label` angepasst, um Uhrzeit (`HH:mm`) bei Mouse-Hover zusätzlich anzuzeigen
- Sicherstellung, dass alle Linien (i, a, m, g) die korrekte Uhrzeit im Tooltip anzeigen
- `useEffect` entfernt, um unnötige `setState`-Aufrufe zu vermeiden
- `startDate` und `endDate` werden nun direkt über `useState` aus Redux (`vonDatum`, `bisDatum`) initialisiert
- Verhindert unendliche Updates durch sich wiederholende `setStartDate`- und `setEndDate`-Aufrufe
- Falls keine Redux-Werte vorhanden sind, wird das aktuelle Datum als Fallback verwendet
- Redux-Slice `kabelueberwachungChartSlice.ts` erweitert, um `isChartOpen` beim Schließen zurückzusetzen
- `ChartSwitcher.tsx` so angepasst, dass `setChartOpen(false)` beim Schließen des Modals (`onClose`) aufgerufen wird
- `handleClose` als zentrale Schließen-Funktion eingeführt, um sowohl das Modal zu schließen als auch den Redux-Status zu aktualisieren
- Sicherstellt, dass `vonDatum` und `bisDatum` beim erneuten Öffnen korrekt aktualisiert werden
- Redux-Slice `kabelueberwachungChartSlice.ts` erweitert um `selectedMode` und `selectedSlotType`
- `LoopChartActionBar.tsx` so angepasst, dass Änderungen in den Dropdown-Menüs automatisch `handleFetchData` aufrufen
- `useEffect` hinzugefügt, um Daten beim Wechsel von `selectedMode` oder `selectedSlotType` neu zu laden
- Manuelles Klicken auf den "Daten Laden"-Button ist nun nicht mehr nötig
- chartjs-plugin-zoom importiert und in Chart.js registriert
- Zoom per Mausrad und Pinch-Gesten auf Touch-Geräten aktiviert
- Panning (horizontal scrollen) über Dragging hinzugefügt
- Chart-Logik und bestehende Datenverarbeitung beibehalten
- `fill: false` für alle Datensätze gesetzt, sodass keine Flächen unter den Linien gezeichnet werden
- Diagramm zeigt jetzt nur die Linien für Minimum, Maximum, Mittelwert und Durchschnitt
- Verbesserte Lesbarkeit durch Entfernen der Hintergrundfüllung
- Fetch-API in `LoopChartActionBar.tsx` angepasst, um Mock-Daten aus `/public/CPLmockData/kuesChartData/` zu laden.
- Mock-Daten als statische JSON-Dateien (`DIA0.json`, `DIA1.json`, `DIA2.json`) hinzugefügt.
- `LoopMeasurementChart.tsx` angepasst, um die Daten aus dem Redux-Store zu verwenden.
- Debugging-Logs entfernt und Fehlerbehandlung für fehlgeschlagene API-Requests verbessert.
Mock-Daten können jetzt ohne API-Server geladen werden.
- Entwicklung: Daten werden aus der Datei `/mockData.json` geladen.
- Produktion: Daten werden von der URL `/CPL?seite.ACP&DIA1=2025;01;01;2025;07;31;2;4` abgerufen.
Dies ermöglicht eine realistische Datenverarbeitung in der Produktion, während in der Entwicklungsumgebung weiterhin mit Mock-Daten gearbeitet wird.