// redux/thunks/kvzThunks.ts import { createAsyncThunk } from "@reduxjs/toolkit"; import { fetchKvzData, updateKvzSettings, } from "../../services/fetchKvzDataService"; import { setKueData } from "../slices/kueDataSlice"; /** * Lädt KVZ-Daten von der API und aktualisiert Redux Store */ export const loadKvzData = createAsyncThunk( "kvz/loadData", async (_, { dispatch }) => { try { const data = await fetchKvzData(); // KVZ-Daten in Redux Store laden dispatch( setKueData({ kvzPresence: data.kvzPresence, kvzActive: data.kvzActive, kvzStatus: data.kvzStatus, }) ); return data; } catch (error) { console.error("Fehler beim Laden der KVZ-Daten:", error); throw error; } } ); /** * Aktualisiert KVZ-Einstellungen und synchronisiert Redux Store */ export const updateKvzData = createAsyncThunk( "kvz/updateData", async ( updates: Array<{ key: "kvzPresence" | "kvzActive" | "kvzStatus"; slot?: number; ledIndex?: number; value: number; }>, { dispatch } ) => { try { const data = await updateKvzSettings(updates); // Aktualisierte Daten in Redux Store laden dispatch( setKueData({ kvzPresence: data.kvzPresence, kvzActive: data.kvzActive, kvzStatus: data.kvzStatus, }) ); return data; } catch (error) { console.error("Fehler beim Update der KVZ-Daten:", error); throw error; } } );