36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
// /redux/thunks/fetchAllTDRChartThunk.ts
|
||
|
||
import { createAsyncThunk } from "@reduxjs/toolkit";
|
||
import { RootState } from "../store";
|
||
import isEqual from "lodash/isEqual";
|
||
import { fetchAllTDRChartDataFromServer } from "../../services/fetchAllTDRChartData"; // ✅ importieren
|
||
|
||
export const fetchAllTDRChartData = createAsyncThunk(
|
||
"tdrChart/fetchAllTDRChartData",
|
||
async (_, { getState, rejectWithValue }) => {
|
||
const state = getState() as RootState;
|
||
const currentData = state.tdrChart.data;
|
||
|
||
const newData = await fetchAllTDRChartDataFromServer(); // ✅ Service aufrufen
|
||
|
||
if (newData.every((d) => d === null || d === undefined)) {
|
||
console.warn("⚠ Keine gültigen Daten empfangen.");
|
||
return rejectWithValue("Keine gültigen Daten empfangen.");
|
||
}
|
||
|
||
if (
|
||
!isEqual(
|
||
JSON.parse(JSON.stringify(currentData)),
|
||
JSON.parse(JSON.stringify(newData))
|
||
) ||
|
||
currentData.length === 0
|
||
) {
|
||
console.log("🔥 Neue Daten erkannt – Redux wird aktualisiert.");
|
||
return newData;
|
||
} else {
|
||
console.log("⚠ Keine signifikanten Änderungen erkannt.");
|
||
return rejectWithValue("Keine Änderungen in den Daten.");
|
||
}
|
||
}
|
||
);
|