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:
@@ -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;
|
||||
}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user