From 6eecd8c96d1f034806299134c732d12789582bd6 Mon Sep 17 00:00:00 2001 From: Ismail Ali Date: Wed, 19 Feb 2025 13:38:50 +0100 Subject: [PATCH] modals ausgelagern von pages/einausgaenge.tsx --- .../main/einausgaenge/modals/InputModal.tsx | 29 ++++++++ .../main/einausgaenge/modals/OutputModal.tsx | 33 +++++++++ pages/einausgaenge.tsx | 73 ++++++------------- 3 files changed, 83 insertions(+), 52 deletions(-) create mode 100644 components/main/einausgaenge/modals/InputModal.tsx create mode 100644 components/main/einausgaenge/modals/OutputModal.tsx diff --git a/components/main/einausgaenge/modals/InputModal.tsx b/components/main/einausgaenge/modals/InputModal.tsx new file mode 100644 index 0000000..abfe529 --- /dev/null +++ b/components/main/einausgaenge/modals/InputModal.tsx @@ -0,0 +1,29 @@ +"use client"; +import React from "react"; + +export default function InputModal({ selectedInput, closeInputModal, isOpen }) { + if (!isOpen || !selectedInput) return null; + + return ( +
+
+

+ Details für Eingang {selectedInput.id} +

+

+ Status:{" "} + {selectedInput.status === "active" ? "Aktiv" : "Inaktiv"} +

+

+ Beschreibung: {selectedInput.description} +

+ +
+
+ ); +} diff --git a/components/main/einausgaenge/modals/OutputModal.tsx b/components/main/einausgaenge/modals/OutputModal.tsx new file mode 100644 index 0000000..75d02a8 --- /dev/null +++ b/components/main/einausgaenge/modals/OutputModal.tsx @@ -0,0 +1,33 @@ +"use client"; +import React from "react"; + +export default function OutputModal({ + selectedOutput, + closeOutputModal, + isOpen, +}) { + if (!isOpen || !selectedOutput) return null; + + return ( +
+
+

+ Details für Ausgang {selectedOutput.id} +

+

+ Bezeichnung: {selectedOutput.description} +

+

+ Status:{" "} + {selectedOutput.toggle ? "Eingeschaltet" : "Ausgeschaltet"} +

+ +
+
+ ); +} diff --git a/pages/einausgaenge.tsx b/pages/einausgaenge.tsx index 431a1e7..2dadd0a 100644 --- a/pages/einausgaenge.tsx +++ b/pages/einausgaenge.tsx @@ -1,9 +1,10 @@ -"use client"; // Falls notwendig -import React, { useState, useEffect } from "react"; -import { Icon } from "@iconify/react"; +"use client"; // pages/einausgaenge.tsx +import React, { useState } from "react"; import DigitalOutputs from "../components/main/einausgaenge/DigitalOutputs"; import DigitalInputs from "../components/main/einausgaenge/DigitalInputs"; import { useLoadScript } from "../hooks/useLoadScript"; +import InputModal from "../components/main/einausgaenge/modals/InputModal"; +import OutputModal from "../components/main/einausgaenge/modals/OutputModal"; function EinAusgaenge() { // Digitale Ausgänge (Hooks müssen immer initialisiert werden) @@ -20,8 +21,10 @@ function EinAusgaenge() { const [isInputModalOpen, setIsInputModalOpen] = useState(false); const [isOutputModalOpen, setIsOutputModalOpen] = useState(false); + // Daten laden const { mockData, isLoading } = useLoadScript(); + // Funktionen zum Umschalten von Ausgängen const toggleSwitch = (id) => { setDigitalOutputs((prevOutputs) => prevOutputs.map((output) => @@ -30,26 +33,27 @@ function EinAusgaenge() { ); }; + // Modal-Funktionen für Eingänge const openInputModal = (input) => { setSelectedInput(input); setIsInputModalOpen(true); }; - const closeInputModal = () => { setSelectedInput(null); setIsInputModalOpen(false); }; + // Modal-Funktionen für Ausgänge const openOutputModal = (output) => { setSelectedOutput(output); setIsOutputModalOpen(true); }; - const closeOutputModal = () => { setSelectedOutput(null); setIsOutputModalOpen(false); }; + // Digitale Eingänge aus Mock-Daten generieren const digitalInputs = mockData.win_de.map((status, index) => ({ id: index + 1, status: status === 1 ? "active" : "inactive", @@ -70,7 +74,6 @@ function EinAusgaenge() { inputsGroup2={inputsGroup2} openInputModal={openInputModal} /> - {/* Digitale Ausgänge */} - {/* Modal für Eingänge */} - {isInputModalOpen && ( -
-
-

- Details für Eingang {selectedInput.id} -

-

- Status:{" "} - {selectedInput.status === "active" ? "Aktiv" : "Inaktiv"} -

-

- Beschreibung: {selectedInput.description} -

- -
-
- )} + {/* Eingangs-Modal */} + - {/* Modal für Ausgänge */} - {isOutputModalOpen && ( -
-
-

- Details für Ausgang {selectedOutput.id} -

-

- Bezeichnung: {selectedOutput.description} -

-

- Status:{" "} - {selectedOutput.toggle ? "Eingeschaltet" : "Ausgeschaltet"} -

- -
-
- )} + {/* Ausgangs-Modal */} + ); }