// redux/slices/variablesSlice.ts import { createSlice, PayloadAction } from "@reduxjs/toolkit"; // Typ für den State export interface VariablesState { selectedChartData: any; kueBezeichnungen: string[]; isolationsgrenzwerte: number[]; verzoegerung: number[]; untereSchleifenGrenzwerte: number[]; obereSchleifenGrenzwerte: number[]; schleifenintervall: number[]; //--------------- counter: number | null; flutter: string | null; kueOnline: string[] | number[]; kueID: string[]; kueIso: string[]; kuePSTmMinus96V: number[]; kueAlarm1: number[]; kueAlarm2: number[]; kueResidence: string[]; kueCableBreak: string[]; kueGroundFault: string[]; kueLimit1: number | null; kueLimit2Low: number | null; kueDelay1: number | null; kueLoopInterval: number | null; kueVersion: number[] | string[]; tdrAtten: number | null; tdrPulse: number | null; tdrSpeed: number | null; tdrAmp: number | null; tdrTrigger: number | null; tdrLocation: number | null; tdrActive: boolean | null; kueOverflow: number[] | null; tdrLast: string | null; appVersion: string | null; } // Initialer Zustand const initialState: VariablesState = { selectedChartData: null, kueBezeichnungen: [], isolationsgrenzwerte: [], verzoegerung: [], untereSchleifenGrenzwerte: [], obereSchleifenGrenzwerte: [], schleifenintervall: [], counter: null, flutter: null, kueOnline: [], kueID: [], kueIso: [], kuePSTmMinus96V: [], kueAlarm1: [], kueAlarm2: [], kueResidence: [], kueCableBreak: [], kueGroundFault: [], kueLimit1: null, kueLimit2Low: null, kueDelay1: null, kueLoopInterval: null, kueVersion: [], tdrAtten: null, tdrPulse: null, tdrSpeed: null, tdrAmp: null, tdrTrigger: null, tdrLocation: null, tdrActive: null, kueOverflow: null, tdrLast: null, appVersion: null, }; // Slice erstellen const variablesSlice = createSlice({ name: "variables", initialState, reducers: { setSelectedChartData(state, action: PayloadAction) { state.selectedChartData = action.payload; }, setVariable( state, action: PayloadAction<{ key: keyof VariablesState; value: VariablesState[keyof VariablesState]; }> ) { const { key, value } = action.payload; (state[key] as VariablesState[keyof VariablesState]) = value; }, setVariables(state, action: PayloadAction>) { Object.entries(action.payload).forEach(([key, value]) => { (state[ key as keyof VariablesState ] as VariablesState[keyof VariablesState]) = value!; }); }, }, }); export const { setSelectedChartData, setVariable, setVariables } = variablesSlice.actions; export default variablesSlice.reducer;