"use client"; import React, { useEffect, useState } from "react"; import { useSelector } from "react-redux"; import { RootState } from "../../../../redux/store"; import { useAppDispatch } from "../../../../redux/store"; import { updateInvertierung } from "../../../../redux/slices/digitalInputsSlice"; export default function InputModal({ selectedInput, closeInputModal, isOpen }) { const dispatch = useAppDispatch(); const reduxInput = useSelector((state: RootState) => state.digitalInputsSlice.inputs.find( (input) => input.id === Number(selectedInput.id) ) ); const [invertiert, setInvertiert] = useState(false); const isDev = process.env.NODE_ENV === "development"; useEffect(() => { if (selectedInput) { if (isDev) { const saved = localStorage.getItem(`invertierung_${selectedInput.id}`); if (saved !== null) { setInvertiert(parseInt(saved) === 1); } else { setInvertiert(selectedInput.invertierung); } } else { setInvertiert(selectedInput.invertierung); } } }, [selectedInput, isDev]); if (!isOpen || !selectedInput) return null; const handleInvertierungToggle = async () => { const neueInvertierung = !invertiert; if (process.env.NODE_ENV === "development") { dispatch( updateInvertierung({ id: Number(selectedInput.id), invertierung: neueInvertierung, }) ); setInvertiert(neueInvertierung); } else { const url = `/CPL?/CPL/SERVICE/empty.acp&DEI${selectedInput.id}=${ neueInvertierung ? 1 : 0 }`; try { const response = await fetch(url); if (!response.ok) throw new Error("Fehler beim Senden der Anfrage"); dispatch( updateInvertierung({ id: Number(selectedInput.id), invertierung: neueInvertierung, }) ); setInvertiert(neueInvertierung); } catch (error) { console.error("Invertierung fehlgeschlagen:", error); alert("Invertierung konnte nicht geändert werden."); } } }; //--------------------------------- useEffect(() => { if (reduxInput) { setInvertiert(reduxInput.invertierung); } }, [reduxInput]); //--------------------------------- return (

Details für Eingang {selectedInput.id}

Status:
Status:
{reduxInput?.status ? "Inaktiv" : "Aktiv"}
Beschreibung:
{selectedInput.description}
Name:
{selectedInput.name}
Invertierung: {invertiert ? "Ein" : "Aus"}
Filterzeit:
{selectedInput.filterzeit} ms
Gewichtung:
{selectedInput.gewichtung}
Zählerstand:
{selectedInput.zaehlerstand}
Zähler aktiv:
{selectedInput.zaehlerAktiv ? "Ja" : "Nein"}
Eingang offline:
{selectedInput.eingangOffline ? "Offline" : "Online"}
); }