"use client"; // /components/main/einausgaenge/modals/OutputModal.tsx import React, { useState } from "react"; import { useSelector } from "react-redux"; import { RootState } from "../../../../redux/store"; export default function OutputModal({ selectedOutput, closeOutputModal, isOpen, }: { selectedOutput: any; closeOutputModal: () => void; isOpen: boolean; }) { const allOutputs = useSelector( (state: RootState) => state.digitalOutputsSlice.outputs ); const [label, setLabel] = useState(selectedOutput.label || ""); const [status, setStatus] = useState(selectedOutput.status || false); const [timer, setTimer] = useState(0); const [isSaving, setIsSaving] = useState(false); const [errorMsg, setErrorMsg] = useState(""); if (!isOpen || !selectedOutput) return null; const handleSave = async () => { setIsSaving(true); setErrorMsg(""); const updatedOutputs = allOutputs.map((output) => output.id === selectedOutput.id ? { ...output, label, status } : output ); try { const res = await fetch("/api/cpl/updateDigitalOutputs", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ outputs: updatedOutputs }), }); if (!res.ok) { const err = await res.json(); setErrorMsg(err?.error || "Fehler beim Speichern."); } else { console.log("✅ Änderungen gespeichert"); closeOutputModal(); } } catch (err) { setErrorMsg("❌ Netzwerkfehler beim Speichern."); } finally { setIsSaving(false); } }; return (
{errorMsg}
}