import React, { useState } from "react"; import DateRangePicker from "./DateRangePicker"; const LoopTDRChartActionBar: React.FC = () => { const BASE_URL = process.env.NODE_ENV === "development" ? process.env.NEXT_PUBLIC_MOCK_API || "http://localhost:3002/kabelueberwachung" : `${window.location.origin}/CPL`; const [vonDatum, setVonDatum] = useState(new Date()); // Standard: Heute const [bisDatum, setBisDatum] = useState(new Date()); // Standard: Heute const [filteredData, setFilteredData] = useState([]); // Speichert die gefilterten Daten const [errorMessage, setErrorMessage] = useState(null); // Fehlernachricht const handleAktualisieren = () => { if (!vonDatum || !bisDatum) { console.error("❌ Bitte wählen Sie ein gültiges Startdatum aus."); return; } // Falls `bisDatum` nicht gesetzt ist, verwende `vonDatum` const bisDatumValid = bisDatum ? bisDatum : vonDatum; // Setze Fehlermeldung zurück, bevor eine neue Anfrage gestartet wird setErrorMessage(null); setFilteredData([]); // **Von- und Bis-Datum in Unix-Timestamp (nur Datum, ohne Uhrzeit)** const vonTimestamp = new Date( vonDatum.getFullYear(), vonDatum.getMonth(), vonDatum.getDate(), 0, 0, 0, 0 ).getTime(); const bisTimestamp = new Date( bisDatumValid.getFullYear(), bisDatumValid.getMonth(), bisDatumValid.getDate(), 23, 59, 59, 999 ).getTime(); const apiUrl = `${BASE_URL}?seite.ACP&DIA1=${ new Date(vonTimestamp).toISOString().split("T")[0] };${new Date(bisTimestamp).toISOString().split("T")[0]};2;4`; console.log("📡 API URL:", apiUrl); fetch(apiUrl) .then((res) => { if (!res.ok) { throw new Error(`HTTP Fehler! Status: ${res.status}`); } return res.json(); }) .then((data) => { console.log("📡 API URL:", apiUrl); console.log("📥 Rohdaten (vor Filterung):", data); // **Filtere die Daten basierend auf Unix-Zeit** const filtered = data.filter((item: any) => { const itemDateParts = item.t.split(" ")[0].split("-"); // Trenne Datum von Uhrzeit const itemTimestamp = new Date( Number(itemDateParts[2]), // Jahr Number(itemDateParts[1]) - 1, // Monat (JS zählt ab 0) Number(itemDateParts[0]), // Tag 0, 0, 0, 0 ).getTime(); return itemTimestamp >= vonTimestamp && itemTimestamp <= bisTimestamp; }); console.log("🔍 Gefilterte Daten:", filtered); if (filtered.length > 0) { // Falls Daten vorhanden sind, zeige sie an und entferne die Fehlermeldung setFilteredData(filtered); setErrorMessage(null); } else { // Falls gar keine Daten für den Zeitraum existieren setFilteredData([]); setErrorMessage("❌ Kein Daten im gewählten Zeitraum gefunden."); } }) .catch((err) => { console.error("❌ Fehler beim Abrufen der Daten:", err); setErrorMessage("❌ Fehler beim Laden der Daten."); }); }; return (
{errorMessage &&

{errorMessage}

}
); }; export default LoopTDRChartActionBar;