"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); try { await fetch("/api/cpl/updateAnalogInputsSettingsAPIHandler", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ updates: [ { key: "win_analogInputsNames", index: selectedInput.id - 1, value: name, }, { key: "win_analogInputsOffset", index: selectedInput.id - 1, value: parseFloat(offset.toString()), }, { key: "win_analogInputsFactor", index: selectedInput.id - 1, value: parseFloat(factor.toString()), }, { key: "win_analogInputsloggerIntervall", index: selectedInput.id - 1, value: parseInt(loggerInterval.toString()), }, ], }), }); alert("Einstellungen gespeichert."); onClose(); location.reload(); } catch (err) { alert("Fehler beim Speichern der Einstellungen."); console.error(err); } finally { setIsSaving(false); } }; return (