Files
CPLv4.0/redux/slices/variablesSlice.ts
Ismail Ali b85c8c67e2 feat: systemSettingsSlice hinzugefügt und Header sowie Einstellungen angepasst
- Neuen Redux Slice `systemSettingsSlice` erstellt, um Systemdaten zentral zu verwalten.
- Header-Icon für Systemeinstellungen holt jetzt Daten aus `systemSettingsSlice` statt `variablesSlice`.
- Die Einstellungen-Seite (`Allgemeine Einstellungen`) wurde umgestellt und liest nun ebenfalls aus `systemSettingsSlice`.
- UI-Optimierungen für die Einstellungen-Seite, um alle Eingabefelder kompakter darzustellen.
2025-02-23 09:09:47 +01:00

162 lines
4.3 KiB
TypeScript

// redux/slices/variablesSlice.ts
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { DataTDR } from "../types/chartDataTypesTDR";
// Typ für den State
export interface VariablesState {
selectedChartData: DataTDR[] | null;
selectedFileName: string | null;
//------------
kueBezeichnungen: string[];
isolationsgrenzwerte: number[];
verzoegerung: number[];
untereSchleifenGrenzwerte: number[];
obereSchleifenGrenzwerte: number[];
schleifenintervall: number[];
//---------------
de: string | null;
counter: number | null;
flutter: string | null;
kueOnline: string[] | number[];
kueID: string[];
kueIso: string[];
kuePSTmMinus96V: number[];
kueAlarm1: number[];
kueAlarm2: number[];
kueResidence: string[];
kueCableBreak: number[];
kueGroundFault: number[];
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;
win_analogeEingaenge1: string | null;
win_analogeEingaenge2: string | null;
win_analogeEingaenge3: string | null;
win_analogeEingaenge4: string | null;
win_analogeEingaenge5: string | null;
win_analogeEingaenge6: string | null;
win_analogeEingaenge7: string | null;
win_analogeEingaenge8: string | null;
opcUaZustand: string | null;
opcUaActiveClientCount: number | null;
opcUaNodesetName: string | null;
}
// Initialer Zustand
const initialState: VariablesState = {
selectedFileName: null,
//------------
selectedChartData: null,
kueBezeichnungen: [],
isolationsgrenzwerte: [],
verzoegerung: [],
untereSchleifenGrenzwerte: [],
obereSchleifenGrenzwerte: [],
schleifenintervall: [],
//---------------
de: null,
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,
win_analogeEingaenge1: null,
win_analogeEingaenge2: null,
win_analogeEingaenge3: null,
win_analogeEingaenge4: null,
win_analogeEingaenge5: null,
win_analogeEingaenge6: null,
win_analogeEingaenge7: null,
win_analogeEingaenge8: null,
opcUaZustand: null,
opcUaActiveClientCount: null,
opcUaNodesetName: null,
};
// Slice erstellen
const variablesSlice = createSlice({
name: "variables",
initialState,
reducers: {
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<Partial<VariablesState>>) {
//console.log("setVariables aufgerufen mit:", action.payload);
Object.entries(action.payload).forEach(([key, value]) => {
(state[
key as keyof VariablesState
] as VariablesState[keyof VariablesState]) = value!;
});
},
setSelectedChartData(state, action: PayloadAction<DataTDR[] | null>) {
state.selectedChartData = action.payload;
},
setSelectedFileName(state, action: PayloadAction<string | null>) {
state.selectedFileName = action.payload;
},
setOpcUaZustand(state, action: PayloadAction<string | null>) {
state.opcUaZustand = action.payload;
},
setOpcUaActiveClientCount(state, action: PayloadAction<number | null>) {
state.opcUaActiveClientCount = action.payload;
},
setOpcUaNodesetName(state, action: PayloadAction<string | null>) {
state.opcUaNodesetName = action.payload;
},
},
});
export const {
setVariable,
setVariables,
setSelectedChartData,
setSelectedFileName,
setOpcUaZustand,
setOpcUaActiveClientCount,
setOpcUaNodesetName,
} = variablesSlice.actions;
export default variablesSlice.reducer;