// /redux/slices/analogInputsHistorySlice.ts import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { getAnalogInputsHistoryThunk } from "../thunks/getAnalogInputsHistoryThunk"; export type AnalogInputsHistoryEntry = { t: string; m: number; }; interface AnalogInputsHistoryState { data: Record; isLoading: boolean; error: string | null; zeitraum: string; // z.B. "DIA0", "DIA1", "DIA2" } const initialState: AnalogInputsHistoryState = { data: {}, isLoading: false, error: null, zeitraum: "DIA0", }; const analogInputsHistorySlice = createSlice({ name: "analogInputsHistory", initialState, reducers: { setZeitraum: (state, action: PayloadAction) => { state.zeitraum = action.payload; }, }, extraReducers: (builder) => { builder .addCase(getAnalogInputsHistoryThunk.pending, (state) => { state.isLoading = true; state.error = null; }) .addCase( getAnalogInputsHistoryThunk.fulfilled, ( state, action: PayloadAction<{ eingang: number; zeitraum: string; daten: AnalogInputsHistoryEntry[]; }> ) => { const key = String(action.payload.eingang + 99); // z.B. 100 für AE1 state.data[key] = action.payload.daten; state.zeitraum = action.payload.zeitraum; state.isLoading = false; } ) .addCase(getAnalogInputsHistoryThunk.rejected, (state, action) => { state.isLoading = false; state.error = action.payload as string; }); }, }); export const { setZeitraum } = analogInputsHistorySlice.actions; export default analogInputsHistorySlice.reducer;