Files
CPLv4.0/redux/slices/variablesSlice.ts
Ismail Ali 8c01dd3fc3 git commit -m "feat: UI-Optimierung für analoge Eingänge & Diagramm
- Layout verbessert: Tabelle und Diagramm jetzt nebeneinander (grid-responsive)
- Responsivität optimiert: Kein unnötiges horizontales Scrollen mehr
- Diagramm verbessert:
  - Höhere Lesbarkeit mit stärkeren Linien und Abstand für Achsenbeschriftungen
  - Anpassung der Höhe und Breite für mobile & große Bildschirme
- Tabelle optimiert:
  - Bessere Lesbarkeit mit größeren Abständen
  - Hover-Effekte für Zeilen
  - Dynamisches Spaltenlayout für kleine & große Bildschirme
- Code aufgeräumt und verbessert

Test auf verschiedenen Bildschirmgrößen erfolgreich!"
2025-02-25 19:46:52 +01:00

105 lines
2.5 KiB
TypeScript

// redux/slices/variablesSlice.ts
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
// Typ für den State
export interface VariablesState {
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 = {
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: {
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>>) {
Object.entries(action.payload).forEach(([key, value]) => {
(state[
key as keyof VariablesState
] as VariablesState[keyof VariablesState]) = value!;
});
},
},
});
export const { setVariable, setVariables } = variablesSlice.actions;
export default variablesSlice.reducer;