// /components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx import React, { useState, useEffect } from "react"; import { useDispatch, useSelector } from "react-redux"; import { useAppDispatch } from "../../../../../../redux/store"; import { RootState } from "../../../../../../redux/store"; import { fetchTDRChartDataById } from "../../../../../../services/fetchTDRChartDataById"; import { setTDRChartDataById, setSelectedTDRId, } from "../../../../../../redux/slices/tdrDataByIdSlice"; import { fetchTDMDataBySlotThunk } from "../../../../../../redux/thunks/fetchTDMDataBySlotThunk"; const TDRChartActionBar: React.FC = () => { const dispatch = useAppDispatch(); const tdmChartData = useSelector((state: RootState) => state.tdmChart.data); const selectedSlot = useSelector( (state: RootState) => state.kueChartMode.selectedSlot ); const idsForSlot = selectedSlot !== null ? tdmChartData[selectedSlot] ?? [] : []; const [selectedId, setSelectedId] = useState(null); //------------------------------- const handleSelectChange = async ( e: React.ChangeEvent ) => { const id = parseInt(e.target.value); setSelectedId(id); const data = await fetchTDRChartDataById(id); if (!data) return; dispatch(setTDRChartDataById({ id, data })); dispatch(setSelectedTDRId(id)); }; //------------------------------- const handleReset = () => { setSelectedId(null); dispatch(setSelectedTDRId(-1)); // z. B. -1 als „Reset“-Kennzeichnung }; //------------------------------- const handleSetReference = async () => { if (selectedId === null || selectedSlot === null) return; const url = `${window.location.origin}/CPL?seite.ACP&KTR${selectedSlot}=${selectedId}`; try { const response = await fetch(url); if (!response.ok) throw new Error("Fehler beim Setzen der Referenzkurve"); alert("✅ Referenzkurve erfolgreich gesetzt."); } catch (error) { console.error("❌ Fehler:", error); alert("❌ Referenzkurve konnte nicht gesetzt werden."); } }; //------------------------------- useEffect(() => { if (selectedSlot !== null) { dispatch(fetchTDMDataBySlotThunk(selectedSlot)); } }, [selectedSlot]); //-------------------------------- return (
{/* Ausgewählte Slot Nummer anzeigen */}
{selectedSlot !== null ? `Slot ${selectedSlot + 1}` : "Kein Slot gewählt"}
{/* 🔵 Linke Seite: Reset-Button */} {selectedId !== null && ( )} {/* 🔵 Rechte Seite: Dropdown */}
); }; export default TDRChartActionBar;