feat: Redux-Thunk für digitale Eingänge integriert & UI mit zwei Tabellen umgesetzt
- `fetchDigitaleEingaengeThunk.ts` erstellt, um digitale Eingänge in Redux zu speichern.
- `fetchDigitaleEingaenge.ts` erstellt, um API-Daten aus `de.js` zu laden.
- `digitalInputsSlice.ts` hinzugefügt, um digitale Eingänge in Redux zu verwalten.
- `DigitalInputs.tsx` überarbeitet: Zwei Tabellen für digitale Eingänge hinzugefügt.
- Sicherstellung, dass Redux-Thunk nur im Client (`useEffect`) ausgeführt wird.
- API-Calls werden nun alle 10 Sekunden aktualisiert.
✅ Jetzt läuft Redux-Thunk stabil & effizient für digitale Eingänge!
This commit is contained in:
@@ -5,6 +5,8 @@ interface DigitalInput {
|
||||
id: number;
|
||||
label: string;
|
||||
status: boolean;
|
||||
counter: number;
|
||||
flutter: number;
|
||||
}
|
||||
|
||||
interface DigitalInputsState {
|
||||
@@ -12,7 +14,7 @@ interface DigitalInputsState {
|
||||
}
|
||||
|
||||
const initialState: DigitalInputsState = {
|
||||
inputs: [], // Initial leerer Zustand
|
||||
inputs: [],
|
||||
};
|
||||
|
||||
const digitalInputsSlice = createSlice({
|
||||
@@ -32,19 +34,8 @@ const digitalInputsSlice = createSlice({
|
||||
input.status = status;
|
||||
}
|
||||
},
|
||||
updateInputLabel: (
|
||||
state,
|
||||
action: PayloadAction<{ id: number; label: string }>
|
||||
) => {
|
||||
const { id, label } = action.payload;
|
||||
const input = state.inputs.find((input) => input.id === id);
|
||||
if (input) {
|
||||
input.label = label;
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { setInputs, updateInputStatus, updateInputLabel } =
|
||||
digitalInputsSlice.actions;
|
||||
export const { setInputs, updateInputStatus } = digitalInputsSlice.actions;
|
||||
export default digitalInputsSlice.reducer;
|
||||
|
||||
Reference in New Issue
Block a user