// /redux/thunks/fetchAllTDRChartThunk.ts import { createAsyncThunk } from "@reduxjs/toolkit"; import { RootState } from "../store"; const BASE_PATH = "/CPLmockData/LastTDR/jsonDatei"; export const fetchAllTDRChartData = createAsyncThunk( "tdrChart/fetchAllTDRChartData", async (_, { getState, rejectWithValue }) => { const state: RootState = getState() as RootState; const currentData = state.tdrChart.data; // Aktuelle Redux-Daten const fileNames = Array.from({ length: 32 }, (_, i) => `slot${i}.json`); const fetchPromises = fileNames.map(async (fileName) => { try { const response = await fetch(`${BASE_PATH}/${fileName}`); if (!response.ok) throw new Error(`Fehler bei ${fileName}: ${response.statusText}`); return await response.json(); } catch (error) { console.error(`Fehler beim Laden von ${fileName}:`, error); return null; } }); const newData = await Promise.all(fetchPromises); //console.log("Geladene Daten:", newData); // Falls die Daten leer oder identisch sind, aber initial leer waren, trotzdem speichern if (newData.every((d) => d === null || d === undefined)) { console.warn("⚠ Keine gültigen Daten empfangen."); return rejectWithValue("Keine gültigen Daten empfangen."); } if ( JSON.stringify(currentData) !== JSON.stringify(newData) || currentData.length === 0 ) { return newData; } else { return rejectWithValue("Keine Änderungen in den Daten."); } } );