- `selectedSlot` in `kueChartModeSlice.ts` hinzugefügt, um den aktiven Slot zu speichern. - `handleButtonClick.ts` aktualisiert, damit `selectedSlot` in Redux gesetzt wird. - `handleOpenChartModal.ts` angepasst, sodass `selectedSlot` beim Öffnen des Modals gesetzt wird. - `Kue705FO.tsx` nutzt jetzt Redux für die Slot- und Modus-Steuerung (`selectedSlot`, `activeMode`). - Redux-Logik optimiert: `selectedSlot` wird nun konsistent zwischen `TDRChart.tsx` und `ChartSwitcher.tsx` genutzt. - Verbesserung der Benutzererfahrung: Nur `onClick` verwendet, `onMouseOver` wegen Performance-Problemen vermieden. ✅ Jetzt wird der richtige Slot in Redux gespeichert, wenn ein Button oder das Chart-Modal geöffnet wird. ✅ `TDRChart.tsx` zeigt nur das gewählte Modul an, kein unnötiges Neuladen von Daten. ✅ Stabile und optimierte Chart-Steuerung ohne ungewollte Änderungen durch Mausbewegungen.
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
// components/main/kabelueberwachung/kue705FO/kue705FO-Funktionen/handleButtonClick.ts
|
|
import { Dispatch } from "react";
|
|
import {
|
|
setActiveMode,
|
|
setSelectedSlot,
|
|
} from "../../../../../redux/slices/kueChartModeSlice";
|
|
|
|
const handleButtonClick = (
|
|
button: "Schleife" | "TDR",
|
|
setActiveButton: Dispatch<React.SetStateAction<"Schleife" | "TDR">>,
|
|
setLoopTitleText: Dispatch<React.SetStateAction<string>>,
|
|
setLoopDisplayValue: Dispatch<React.SetStateAction<number | string>>,
|
|
schleifenwiderstand: number,
|
|
tdrLocation: number[] | undefined,
|
|
slotIndex: number,
|
|
dispatch: Dispatch<any>
|
|
) => {
|
|
// 🔥 Speichert den gewählten Slot im Redux-Store
|
|
dispatch(setSelectedSlot(slotIndex));
|
|
|
|
if (button === "Schleife") {
|
|
setActiveButton("Schleife");
|
|
setLoopTitleText("Schleifenwiderstand [kOhm]");
|
|
setLoopDisplayValue(schleifenwiderstand);
|
|
dispatch(setActiveMode("Schleife"));
|
|
} else if (button === "TDR") {
|
|
setActiveButton("TDR");
|
|
setLoopTitleText("Entfernung [Km]");
|
|
setLoopDisplayValue(
|
|
tdrLocation && tdrLocation[slotIndex] !== undefined
|
|
? tdrLocation[slotIndex]
|
|
: "0"
|
|
);
|
|
dispatch(setActiveMode("TDR"));
|
|
}
|
|
};
|
|
|
|
export default handleButtonClick;
|