"use client"; // /components/main/einausgaenge/DigitalOutputsWidget.tsx import React from "react"; import { useSelector, useDispatch } from "react-redux"; import { RootState, AppDispatch } from "../../../redux/store"; import { Icon } from "@iconify/react"; import settingsIcon from "@iconify/icons-mdi/settings"; import outputIcon from "@iconify/icons-mdi/output"; import switchIcon from "@iconify/icons-ion/switch"; import { setDigitalOutputs } from "@/redux/slices/digitalOutputsSlice"; export default function DigitalOutputsWidget({ openOutputModal }) { const dispatch = useDispatch(); const digitalOutputs = useSelector( (state: RootState) => state.digitalOutputsSlice.outputs ); const isCPL = process.env.NEXT_PUBLIC_NODE_ENV === "production"; const handleToggle = async (id: number) => { const updatedOutputs = digitalOutputs.map((output) => output.id === id ? { ...output, status: !output.status } : output ); dispatch(setDigitalOutputs(updatedOutputs)); try { if (isCPL) { window.location.href = `/CPL?digitalOutputs.html&RC${id - 1}`; } else { await fetch("/api/cpl/updateDigitalOutputsHandler", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ outputs: updatedOutputs }), }); } console.log("✅ Ausgang aktualisiert:", id); } catch (error) { console.error("❌ Fehler beim Schreiben:", error); } }; return (

Schaltausgänge

{digitalOutputs.map((output) => ( ))}
Ausgang Bezeichnung Schalter Aktion
{output.id} {output.label} handleToggle(output.id)} /> openOutputModal(output)} />
); }