"use client"; // Falls notwendig import React, { useState } from "react"; import { Icon } from "@iconify/react"; function EinAusgaenge() { const digitalInputs = [ { id: 1, status: "active", description: "100V-Ausfall", isInverted: true }, { id: 2, status: "inactive", description: "DE2", isInverted: false }, { id: 3, status: "active", description: "DE3", isInverted: false }, { id: 4, status: "inactive", description: "DE4", isInverted: false }, { id: 5, status: "active", description: "DE5", isInverted: false }, { id: 6, status: "inactive", description: "DE6", isInverted: false }, { id: 7, status: "active", description: "DE7", isInverted: false }, { id: 8, status: "inactive", description: "DE8", isInverted: false }, { id: 9, status: "active", description: "DE9", isInverted: false }, { id: 10, status: "inactive", description: "DE10", isInverted: false }, { id: 11, status: "active", description: "DE11", isInverted: false }, { id: 12, status: "inactive", description: "DE12", isInverted: false }, { id: 13, status: "active", description: "DE13", isInverted: false }, { id: 14, status: "inactive", description: "DE14", isInverted: false }, { id: 15, status: "active", description: "DE15", isInverted: false }, { id: 16, status: "inactive", description: "DE16", isInverted: false }, { id: 17, status: "active", description: "DE17", isInverted: false }, { id: 18, status: "inactive", description: "DE18", isInverted: false }, { id: 19, status: "active", description: "DE19", isInverted: false }, { id: 20, status: "inactive", description: "DE20", isInverted: false }, { id: 21, status: "active", description: "DE21", isInverted: false }, { id: 22, status: "inactive", description: "DE22", isInverted: false }, { id: 23, status: "active", description: "DE23", isInverted: false }, { id: 24, status: "inactive", description: "DE24", isInverted: false }, { id: 25, status: "active", description: "DE25", isInverted: false }, { id: 26, status: "inactive", description: "DE26", isInverted: false }, { id: 27, status: "active", description: "DE27", isInverted: false }, { id: 28, status: "inactive", description: "DE28", isInverted: false }, { id: 29, status: "active", description: "DE29", isInverted: false }, { id: 30, status: "inactive", description: "DE30", isInverted: false }, { id: 31, status: "active", description: "DE31", isInverted: false }, { id: 32, status: "inactive", description: "DE32", isInverted: false }, ]; // Aufteilen der Eingänge in zwei Gruppen const inputsGroup1 = digitalInputs.slice(0, 16); const inputsGroup2 = digitalInputs.slice(16); //----------------------------------------- const [digitalOutputs, setDigitalOutputs] = useState([ { id: 1, description: "Ausgang1", toggle: true }, { id: 2, description: "Ausgang2", toggle: false }, { id: 3, description: "Ausgang3", toggle: true }, { id: 4, description: "Ausgang4", toggle: false }, ]); const toggleSwitch = (id) => { setDigitalOutputs((prevOutputs) => prevOutputs.map((output) => output.id === id ? { ...output, toggle: !output.toggle } : output ) ); }; //-------------------------------------------- const [selectedInput, setSelectedInput] = useState(null); const [selectedOutput, setSelectedOutput] = useState(null); const [isInputModalOpen, setIsInputModalOpen] = useState(false); const [isOutputModalOpen, setIsOutputModalOpen] = useState(false); const openInputModal = (input) => { setSelectedInput(input); setIsInputModalOpen(true); }; const closeInputModal = () => { setSelectedInput(null); setIsInputModalOpen(false); }; const openOutputModal = (output) => { setSelectedOutput(output); setIsOutputModalOpen(true); }; const closeOutputModal = () => { setSelectedOutput(null); setIsOutputModalOpen(false); }; //-------------------------------------------- return (

Ein- und Ausgänge

{/* Digitale Eingänge */}

Digitale Eingänge

{[inputsGroup1, inputsGroup2].map((group, index) => (
{group.map((input) => ( ))}
Eingang Zustand Bezeichnung Aktion
{input.id}
{/* Status-Icon */} {input.status === "active" ? "●" : "⨉"} {/* Swap-Icon wird angezeigt, wenn invertiert */} {input.isInverted && ( )}
{input.description} openInputModal(input)} />
))}
{/* Digitale Ausgänge */}

Digitale Ausgänge

{digitalOutputs.map((output) => ( ))}
Ausgang Bezeichnung Schalter Aktion
{output.id} {output.description} toggleSwitch(output.id)} className={`cursor-pointer text-2xl transform ${ output.toggle ? "text-blue-500 scale-x-100" : "text-gray-500 scale-x-[-1]" }`} title={`Schalter ${ output.toggle ? "EIN" : "AUS" } schalten`} /> openOutputModal(output)} />
{/* Modal für Eingänge */} {isInputModalOpen && (

Details für Eingang {selectedInput.id}

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

Beschreibung: {selectedInput.description}

Invertiert:{" "} {selectedInput.isInverted ? "Ja" : "Nein"}

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

Details für Ausgang {selectedOutput.id}

Bezeichnung: {selectedOutput.description}

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

)}
); } export default EinAusgaenge;