From 47e5088e1b09647f02e9c9433ebd6cd9e6ce5dd8 Mon Sep 17 00:00:00 2001 From: Ismail Ali Date: Mon, 24 Feb 2025 19:28:46 +0100 Subject: [PATCH] refactor: Code-Struktur verbessert, Handler und Logik modularisiert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- .../kabelueberwachung/kue705FO/Kue705FO.tsx | 80 ++++++------------- .../handlers/handleCloseChartModal.ts | 14 ++++ .../kue705FO/handlers/handleCloseModal.ts | 6 ++ .../kue705FO/handlers/handleOpenChartModal.ts | 27 +++++++ .../kue705FO/handlers/handleOpenModal.ts | 6 ++ .../kue705FO/handlers/handleRefreshClick.ts | 18 +++++ config/webVersion.ts | 2 +- 7 files changed, 97 insertions(+), 56 deletions(-) create mode 100644 components/main/kabelueberwachung/kue705FO/handlers/handleCloseChartModal.ts create mode 100644 components/main/kabelueberwachung/kue705FO/handlers/handleCloseModal.ts create mode 100644 components/main/kabelueberwachung/kue705FO/handlers/handleOpenChartModal.ts create mode 100644 components/main/kabelueberwachung/kue705FO/handlers/handleOpenModal.ts create mode 100644 components/main/kabelueberwachung/kue705FO/handlers/handleRefreshClick.ts diff --git a/components/main/kabelueberwachung/kue705FO/Kue705FO.tsx b/components/main/kabelueberwachung/kue705FO/Kue705FO.tsx index 7e5f451..6a8c1ff 100644 --- a/components/main/kabelueberwachung/kue705FO/Kue705FO.tsx +++ b/components/main/kabelueberwachung/kue705FO/Kue705FO.tsx @@ -1,21 +1,13 @@ "use client"; // components/modules/kue705FO/Kue705FO.tsx import React, { useState, useEffect, useRef } from "react"; -import Chart from "chart.js/auto"; import { useSelector } from "react-redux"; import KueModal from "./KueModal"; import "bootstrap-icons/font/bootstrap-icons.css"; // Import Bootstrap Icons -import { RootState } from "../../../../redux/store"; -import { useDispatch } from "react-redux"; -import { setSelectedChartData } from "../../../../redux/slices/variablesSlice"; -import { goLoop } from "../../../../utils/goLoop"; -import { goTDR } from "../../../../utils/goTDR"; import { Kue705FOProps } from "../../../../types/components/Kue705FOProps"; import ChartSwitcher from "./Charts/ChartSwitcher"; -import { setActiveMode } from "../../../../redux/slices/kueChartModeSlice"; -import handleButtonClick from "./kue705FO-Funktionen/handleButtonClick"; -import { setChartOpen } from "../../../../redux/slices/kabelueberwachungChartSlice"; -import { setSlotNumber } from "../../../../redux/slices/kabelueberwachungChartSlice"; -import { createTDRChart } from "../../../../utils/chartUtils"; +//-------Redux Toolkit-------- +import { RootState } from "../../../../redux/store"; +import { useDispatch } from "react-redux"; //-------hooks---------------- import useChartPlugin from "./hooks/useChartPlugin"; import useAlarmStatus from "./hooks/useAlarmStatus"; @@ -25,6 +17,13 @@ import useLoopDisplay from "./hooks/useLoopDisplay"; import useModulName from "./hooks/useModulName"; import useChartData from "./hooks/useChartData"; import useTDRChart from "./hooks/useTDRChart"; +//--------handlers---------------- +import handleButtonClick from "./kue705FO-Funktionen/handleButtonClick"; +import handleOpenModal from "./handlers/handleOpenModal"; +import handleCloseModal from "./handlers/handleCloseModal"; +import handleOpenChartModal from "./handlers/handleOpenChartModal"; +import handleCloseChartModal from "./handlers/handleCloseChartModal"; +import handleRefreshClick from "./handlers/handleRefreshClick"; const Kue705FO: React.FC = ({ isolationswert, @@ -33,7 +32,6 @@ const Kue705FO: React.FC = ({ kueOnline, slotIndex, tdrLocation, - alarmStatus, }) => { /* console.log( `Rendering Kue705FO - SlotIndex: ${slotIndex}, ModulName: ${modulName}` @@ -68,7 +66,7 @@ const Kue705FO: React.FC = ({ const [loopMeasurementCurveChartData, setLoopMeasurementCurveChartData] = useState(null); - // Redux-Variablen abrufen + //------- Redux-Variablen abrufen-------------------------------- const { kuePSTmMinus96V, kueVersion: reduxKueVersion, @@ -92,40 +90,15 @@ const Kue705FO: React.FC = ({ (state: RootState) => state.variables.kueOverflow?.map(Number) ?? [] ); - //------------------------- - const handleOpenModal = () => setShowModal(true); - const handleCloseModal = () => setShowModal(false); - - const handleOpenChartModal = () => { - setShowChartModal(true); - dispatch(setChartOpen(true)); - dispatch(setSlotNumber(slotIndex + 1)); // Slot-Nummer speichern - - if (activeButton === "TDR") { - dispatch(setActiveMode("TDR")); - } else { - dispatch(setActiveMode("Schleife")); - } - }; - - // Funktion aufrufen in handleRefreshClick - const handleRefreshClick = () => { - if (activeButton === "Schleife") { - goLoop(slotIndex, setLoading); - } else if (activeButton === "TDR") { - goTDR(slotIndex, setLoading); - } - }; - - const handleCloseChartModal = () => { - if (chartInstance.current) { - console.log("Chart wird beim Schließen des Modals zerstört."); - chartInstance.current.destroy(); - chartInstance.current = null; - } - setShowChartModal(false); - }; - + //-------------------------handlers------------------------- + const openModal = () => handleOpenModal(setShowModal); + const closeModal = () => handleCloseModal(setShowModal); + const openChartModal = () => + handleOpenChartModal(setShowChartModal, dispatch, slotIndex, activeButton); + const refreshClick = () => + handleRefreshClick(activeButton, slotIndex, setLoading); + const closeChartModal = () => + handleCloseChartModal(setShowChartModal, chartInstance); //---------------------------------- //hooks einbinden const kueVersion = useKueVersion(slotIndex, reduxKueVersion); @@ -189,7 +162,7 @@ const Kue705FO: React.FC = ({