- 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!"
105 lines
2.5 KiB
TypeScript
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;
|