"use client"; import React, { useState, useEffect } from "react"; import { useSelector } from "react-redux"; import { RootState } from "../../../../../redux/store"; interface Props { slot: number; } export default function TdrEinstellung({ slot }: Props) { const tdrSlice = useSelector((state: RootState) => state.kueDataSlice); const [tdrData, setTdrData] = useState({ daempfung: tdrSlice.tdrAtten?.[slot]?.toString() ?? "", geschwindigkeit: tdrSlice.tdrSpeed?.[slot]?.toString() ?? "", trigger: tdrSlice.tdrTrigger?.[slot]?.toString() ?? "", }); const [tdrActive, setTdrActive] = useState(false); // Zustand beim Öffnen aus Redux übernehmen useEffect(() => { setTdrActive(tdrSlice.tdrActive?.[slot] === 1); }, [slot, tdrSlice.tdrActive]); const handleSave = () => { const { daempfung, geschwindigkeit, trigger } = tdrData; if (!daempfung.trim() || !geschwindigkeit.trim() || !trigger.trim()) { alert("Bitte alle Felder ausfüllen."); return; } const base = `${window.location.origin}/CPL?/kabelueberwachung.html`; const urls = [ `${base}&KTD${slot}=${tdrData.daempfung.trim()}`, `${base}&KTS${slot}=${tdrData.geschwindigkeit.trim()}`, `${base}&KTE${slot}=${tdrData.trigger.trim()}`, ]; Promise.all( urls.map((url) => fetch(url).then((res) => { if (!res.ok) throw new Error(`Fehler bei ${url}`); return res.text(); }) ) ) .then(() => { alert("TDR-Einstellungen erfolgreich gesendet."); }) .catch((err) => { console.error("Fehler beim Senden:", err); alert("Fehler beim Senden der TDR-Einstellungen."); }); }; const handleTdrToggle = () => { const newState = !tdrActive; setTdrActive(newState); const isDev = window.location.hostname === "localhost"; const slotParam = `KTX${slot}=${newState ? 1 : 0}`; if (isDev) { fetch( `/api/cpl/updateTdrSettingsDataAPIHandler?slot=${slot}&value=${ newState ? 1 : 0 }` ) .then((res) => res.json()) .then((data) => { console.log("Mock-Status aktualisiert:", data); }) .catch((err) => { console.error("Fehler in DEV-API:", err); }); } else { const url = `${window.location.origin}/CPL?/kabelueberwachung.html&${slotParam}`; fetch(url) .then((res) => { if (!res.ok) throw new Error("TDR-Befehl fehlgeschlagen"); console.log("TDR aktiviert/deaktiviert:", res.status); }) .catch((err) => { console.error("Fehler beim TDR-Befehl:", err); alert("Fehler beim Umschalten der TDR-Funktion."); }); } }; return (

TDR-Einstellung – Steckplatz {slot + 1}

TDR-Funktion: {tdrActive ? "aktiviert" : "deaktiviert"}
setTdrData({ ...tdrData, daempfung: e.target.value }) } className="border px-2 py-1 rounded w-full pr-10" /> dB
setTdrData({ ...tdrData, geschwindigkeit: e.target.value }) } className="border px-2 py-1 rounded w-full pr-14" /> m/µs
setTdrData({ ...tdrData, trigger: e.target.value }) } className="border px-2 py-1 rounded w-full" />
); }