From f5b6024da73416624fefa970029620be0de05a8a Mon Sep 17 00:00:00 2001 From: ISA Date: Fri, 28 Mar 2025 14:21:52 +0100 Subject: [PATCH] refactor: TDRChartActionBar auf selectedSlot (0-basiert) umgestellt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Verwendung von selectedSlot aus kueChartMode statt slotNumber aus kabelueberwachungChart - Slot-Datenzugriff jetzt direkt 0-basiert (z. B. slot0.json) - Referenz-Button berücksichtigt API-Format (Slot + 1) - Dropdown-Menü nutzt korrekte TDM-Liste für gewählten Slot --- .../Charts/TDRChart/TDRChartActionBar.tsx | 22 ++++++++++++------- config/webVersion.ts | 2 +- public/CPLmockData/SERVICE/kueData.js | 4 ++-- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx b/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx index 2185979..97b91f3 100644 --- a/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx +++ b/components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx @@ -1,4 +1,5 @@ // /components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx + import React, { useState, useEffect } from "react"; import { useSelector } from "react-redux"; import { useAppDispatch } from "../../../../../../redux/store"; @@ -9,28 +10,33 @@ import { fetchTDRChartDataByIdThunk } from "../../../../../../redux/thunks/fetch const TDRChartActionBar: React.FC = () => { const dispatch = useAppDispatch(); - const tdmChartData = useSelector((state: RootState) => state.tdmChart.data); + // ✅ Redux: selectedSlot aus kueChartMode (0-basiert) const selectedSlot = useSelector( (state: RootState) => state.kueChartMode.selectedSlot ); + const tdmChartData = useSelector( + (state: RootState) => state.tdmSingleChart.data + ); + const idsForSlot = selectedSlot !== null ? tdmChartData[selectedSlot] ?? [] : []; const [selectedId, setSelectedId] = useState(null); - // Dropdown-Auswahl: Neue ID auswählen + // 🔄 Dropdown-Auswahl: neue Messung laden const handleSelectChange = (e: React.ChangeEvent) => { const id = parseInt(e.target.value); setSelectedId(id); dispatch(fetchTDRChartDataByIdThunk(id)); }; - // Button: Als Referenzkurve setzen + // 📌 Referenz setzen (nutzt Slotnummer + 1 für die API) const handleSetReference = async () => { if (selectedId === null || selectedSlot === null) return; - const url = `${window.location.origin}/CPL?seite.ACP&KTR${selectedSlot}=${selectedId}`; + const apiSlot = selectedSlot + 1; + const url = `${window.location.origin}/CPL?seite.ACP&KTR${apiSlot}=${selectedId}`; try { const response = await fetch(url); if (!response.ok) throw new Error("Fehler beim Setzen der Referenzkurve"); @@ -41,7 +47,7 @@ const TDRChartActionBar: React.FC = () => { } }; - // Automatisch neueste ID laden, wenn Slot sich ändert + // 📥 Beim Slot-Wechsel TDM-Liste + letzte ID laden useEffect(() => { if (selectedSlot !== null) { dispatch(fetchTDMDataBySlotThunk(selectedSlot)).then((action: any) => { @@ -57,14 +63,14 @@ const TDRChartActionBar: React.FC = () => { return (
- {/* Ausgewählter Slot */} + {/* 🧩 Slot-Anzeige (1-basiert für Benutzer) */}
{selectedSlot !== null ? `Slot ${selectedSlot + 1}` : "Kein Slot gewählt"}
- {/* Button: Als Referenzkurve setzen */} + {/* ✅ Referenz setzen */} {selectedId !== null && ( )} - {/* Dropdown für Messungsauswahl */} + {/* 🔽 Dropdown für Messungen */}