import ReactModal from "react-modal"; import { useState, useEffect } from "react"; function KueModal({ showModal, onClose, slot, onModulNameChange }) { // Verwende ein Array von Bezeichnungen und Isolationsgrenzwerten für 32 Slots const [bezeichnungen, setBezeichnungen] = useState(Array(32).fill("---")); const [isolationsgrenzwerte, setIsolationsgrenzwerte] = useState( Array(32).fill(0) ); // Default 10.0 MOhm const handleVerzögerungChange = (e) => { let value = e.target.value; // Wertebereich von 1 bis 999 überprüfen if (value < 1) value = 1; if (value > 999) value = 999; e.target.value = value; // Setze den korrigierten Wert zurück in das Inputfeld }; useEffect(() => { // Initialisiere die Bezeichnungen basierend auf window.kueName if (window.kueName && Array.isArray(window.kueName)) { setBezeichnungen((prevBezeichnungen) => { const updatedBezeichnungen = [...prevBezeichnungen]; for (let i = 0; i < 32; i++) { updatedBezeichnungen[i] = window.kueName[i]?.trim() || "---"; // Leerzeichen entfernen } return updatedBezeichnungen; }); } // Initialisiere die Isolationsgrenzwerte basierend auf window.kueLimit1 if (window.kueLimit1 && Array.isArray(window.kueLimit1)) { setIsolationsgrenzwerte((prevIsolationsgrenzwerte) => { const updatedGrenzwerte = [...prevIsolationsgrenzwerte]; for (let i = 0; i < 32; i++) { updatedGrenzwerte[i] = window.kueLimit1[i] || 10.0; // Default zu 10.0 } return updatedGrenzwerte; }); } }, []); // Funktion zum Ändern der Bezeichnung für den aktuellen Slot const handleBezeichnungChange = (e, slot) => { const newBezeichnung = e.target.value; setBezeichnungen((prevBezeichnungen) => { const updatedBezeichnungen = [...prevBezeichnungen]; updatedBezeichnungen[slot] = newBezeichnung; return updatedBezeichnungen; }); }; // Funktion zum Ändern des Isolationsgrenzwerts für den aktuellen Slot const handleIsolationsgrenzwertChange = (e, slot) => { const newGrenzwert = e.target.value; setIsolationsgrenzwerte((prevGrenzwerte) => { const updatedGrenzwerte = [...prevGrenzwerte]; updatedGrenzwerte[slot] = newGrenzwert; return updatedGrenzwerte; }); }; const handleSave = () => { const newBezeichnung = bezeichnungen[slot]; // Angepasstes URL-Format gemäß deinem funktionierenden Test const url = `${ process.env.NEXT_PUBLIC_API_BASE_URL }/cpl?Service/kueDetail.HTML&slot=${slot}&KIA${slot}=${encodeURIComponent( newBezeichnung )}`; // Fetch-Aufruf, um den neuen Modulnamen zu senden fetch(url, { method: "GET" }) .then((response) => { if (response.ok) { alert("Modulname erfolgreich gespeichert!"); onModulNameChange(newBezeichnung); // Hier wird die Änderung weitergegeben } else { alert("Fehler beim Speichern des Modulnamens!"); } }) .catch((error) => { console.error("Fehler:", error); alert("Fehler beim Senden des Modulnamens!"); }); // Schließe das Modal nach dem Speichern onClose(); }; return ( {/* Modal Header */}

KUE Einstellung

{/* Modal Body */}
{/* */} {/* */}
Bezeichnung Isolationsgrenzwert Verzögerung Schleifengrenzwert TDR Aktiv KVZ Aktiv Datenlogger
{slot + 1} handleBezeichnungChange(e, slot)} // Update Bezeichnung bei Änderung /> handleIsolationsgrenzwertChange(e, slot)} // Update Isolationsgrenzwert bei Änderung />{" "} MOhm {/* Flexbox für Verzögerung */}
sek.
{" "} kOhm
{/* Modal Footer */}
); } export default KueModal;