"use client"; // TDRChartView.tsx import React, { useEffect } from "react"; import ReactModal from "react-modal"; import TDRChart from "./TDRChart"; import { useSelector, useDispatch } from "react-redux"; import { AppDispatch, RootState } from "@/redux/store"; import { setChartOpen, setFullScreen, setSlotNumber, setVonDatum, setBisDatum, setSelectedMode, setSelectedSlotType, setChartTitle, } from "@/redux/slices/kabelueberwachungChartSlice"; import { resetBrushRange } from "@/redux/slices/brushSlice"; import { setSelectedSlot, setActiveMode } from "@/redux/slices/kueChartModeSlice"; import { Listbox } from "@headlessui/react"; import Report from "../IsoMeasurementChart/Report"; interface TDRChartViewProps { isOpen: boolean; onClose: () => void; slotIndex: number; } const TDRChartView: React.FC = ({ isOpen, onClose, slotIndex }) => { const dispatch = useDispatch(); const { isFullScreen, chartTitle } = useSelector((s: RootState) => s.kabelueberwachungChartSlice); // Initialize defaults when opening useEffect(() => { if (!isOpen) return; const today = new Date(); const thirtyDaysAgo = new Date(); thirtyDaysAgo.setDate(today.getDate() - 30); const toISO = (date: Date) => date.toLocaleDateString("sv-SE"); dispatch(setActiveMode("TDR")); dispatch(setSelectedSlot(slotIndex)); dispatch(setSlotNumber(slotIndex)); dispatch(setVonDatum(toISO(thirtyDaysAgo))); dispatch(setBisDatum(toISO(today))); if (chartTitle !== "Messkurve" && chartTitle !== "Meldungen") { dispatch(setChartTitle("Messkurve")); } // Only run when opened or slot changes or chartTitle invalid }, [isOpen, slotIndex, chartTitle, dispatch]); const handleClose = () => { // Reset generic chart slice to DIA1 isolationswiderstand defaults (same pattern as other modals) const today = new Date(); const thirtyDaysAgo = new Date(); thirtyDaysAgo.setDate(today.getDate() - 30); const toISO = (date: Date) => date.toLocaleDateString("sv-SE"); dispatch(setVonDatum(toISO(thirtyDaysAgo))); dispatch(setBisDatum(toISO(today))); dispatch(setSelectedMode("DIA1")); dispatch(setSelectedSlotType("isolationswiderstand")); dispatch(setChartOpen(false)); dispatch(setFullScreen(false)); dispatch(resetBrushRange()); onClose(); }; const toggleFullScreen = () => dispatch(setFullScreen(!isFullScreen)); return (

TDR-Messung

dispatch(setChartTitle(value)) } >
{chartTitle} {(["Messkurve", "Meldungen"] as const).map((option) => ( `px-3 py-1.5 cursor-pointer rounded-sm m-0.5 ${ selected ? "dropdown-option-active" : active ? "dropdown-option-hover" : "" }` } > {option} ))}
{chartTitle === "Messkurve" ? ( ) : ( )}
); }; export default TDRChartView;