feat: AnalogInputsChart mit DateRangePicker und vollständiger Redux-Integration erweitert

- analogInputsHistorySlice angepasst: zeitraum, vonDatum, bisDatum und data hinzugefügt
- Typdefinitionen im Slice und Thunk korrigiert
- getAnalogInputsHistoryThunk erweitert, um vonDatum und bisDatum zu akzeptieren
- DateRangePicker korrekt in AnalogInputsChart.tsx integriert
- Fehler bei Selector-Zugriffen und Dispatch behoben
This commit is contained in:
ISA
2025-07-11 14:01:15 +02:00
parent ca84ac6bb5
commit d278a79030
9 changed files with 128 additions and 77 deletions

View File

@@ -1,56 +1,24 @@
// services/fetchAnalogInputsHistoryService.ts
// services/fetchAnalogInputsHistory.ts
export async function fetchAnalogInputsHistoryService(): Promise<
Record<number, unknown[]>
> {
const today = new Date();
const yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
import { AnalogInputsHistoryEntry } from "@/redux/slices/analogInputsHistorySlice";
const formatDate = (date: Date) =>
`${date.getFullYear()};${String(date.getMonth() + 1).padStart(
2,
"0"
)};${String(date.getDate()).padStart(2, "0")}`;
export async function fetchAnalogInputsHistory(
eingang: number,
zeitraum: string
): Promise<{ daten: AnalogInputsHistoryEntry[] }> {
const res = await fetch(
`/api/cpl/getAnalogInputsHistory?eingang=${eingang}&zeitraum=${zeitraum}`
);
const fromDate = formatDate(yesterday);
const toDate = formatDate(today);
const result: Record<number, unknown[]> = {};
const isDev = process.env.NODE_ENV === "development";
if (isDev) {
try {
// ⬇️ ENTWICKLUNG: über API-Handler
const response = await fetch("/api/cpl/getAnalogInputsHistory");
// 🔍 Log: Rohantwort prüfen
console.log("📡 [DEV] Raw response:", response);
if (!response.ok) {
throw new Error(
`❌ Fehler beim Laden der Mock-Daten: ${response.statusText}`
);
}
// ✅ Versuch, JSON zu parsen
const data = await response.json();
// 🔍 Log: JSON anzeigen
//console.log("✅ [DEV] Parsed JSON:", data);
// 🔍 Validitätsprüfung (optional)
JSON.stringify(data); // Wenn das fehlschlägt, wird catch ausgelöst
return data;
} catch (error) {
console.error("❗ [DEV] Fehler beim Verarbeiten der JSON-Daten:", error);
return {};
}
if (!res.ok) {
throw new Error("Serverantwort war nicht erfolgreich");
}
// ⬇️ PRODUKTION: direkt vom CPL-Webserver holen
const json = await res.json();
return { daten: json.daten }; // Nur das Feld "daten" extrahieren
}
/* // ⬇️ PRODUKTION: direkt vom CPL-Webserver holen
for (let i = 0; i < 8; i++) {
const inputNumber = i + 1;
const sourceId = 99 + inputNumber;
@@ -70,3 +38,4 @@ export async function fetchAnalogInputsHistoryService(): Promise<
return result;
}
*/