"use client"; // /components/main/analogeEingaenge/AnalogInputsSettingsModal.tsx import React, { useEffect, useState } from "react"; interface Props { selectedInput: any; isOpen: boolean; onClose: () => void; } export default function AnalogInputsSettingsModal({ selectedInput, isOpen, onClose, }: Props) { const [name, setName] = useState(""); const [offset, setOffset] = useState(0); const [factor, setFactor] = useState(1); const [loggerInterval, setLoggerInterval] = useState(10); const [isSaving, setIsSaving] = useState(false); useEffect(() => { if (selectedInput && isOpen) { setName(selectedInput.name || ""); setOffset(selectedInput.offset || 0); setFactor(selectedInput.factor || 1); setLoggerInterval(selectedInput.loggerInterval || 10); } }, [selectedInput, isOpen]); if (!isOpen || !selectedInput) return null; const handleSave = async () => { setIsSaving(true); const slot = selectedInput.id; const isDev = window.location.hostname === "localhost"; const acn = encodeURIComponent(name); const offsetParam = offset.toString().replace(",", "."); const factorParam = factor.toString().replace(",", "."); const loggerParam = loggerInterval.toString(); const url = `/CPL?/Service/ae.ACP&ACN${slot}=${acn}&ACO${slot}=${offsetParam}&ACF${slot}=${factorParam}&ACL${slot}=${loggerParam}`; try { if (isDev) { // Entwicklung: lokale Mock-API await fetch("/api/cpl/updateAnalogInputsSettingsAPIHandler", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ updates: [ { key: "win_analogInputsNames", index: slot - 1, value: name }, { key: "win_analogInputsOffset", index: slot - 1, value: offset }, { key: "win_analogInputsFactor", index: slot - 1, value: factor }, { key: "win_analogInputsloggerIntervall", index: slot - 1, value: loggerInterval, }, ], }), }); alert("Mockdaten gespeichert."); } else { // Produktion: direkter CGI-Befehl const result = await fetch(url); if (!result.ok) throw new Error("Fehler bei CGI-Aufruf"); alert("Einstellungen gespeichert (Produktion)."); } onClose(); location.reload(); } catch (err) { alert("Fehler beim Speichern."); console.error(err); } finally { setIsSaving(false); } }; return (