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 */}
+
);
}