digitale Eingänge Redux Slice erstellt für mehr Übersicht

This commit is contained in:
ISA
2025-02-20 08:07:53 +01:00
parent 4dab654856
commit f9c050417e
14 changed files with 240 additions and 11 deletions

View File

@@ -0,0 +1,50 @@
// slices/digitalInputsSlice.ts
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
interface DigitalInput {
id: number;
label: string;
status: boolean;
}
interface DigitalInputsState {
inputs: DigitalInput[];
}
const initialState: DigitalInputsState = {
inputs: [], // Initial leerer Zustand
};
const digitalInputsSlice = createSlice({
name: "digitalInputs",
initialState,
reducers: {
setInputs: (state, action: PayloadAction<DigitalInput[]>) => {
state.inputs = action.payload;
},
updateInputStatus: (
state,
action: PayloadAction<{ id: number; status: boolean }>
) => {
const { id, status } = action.payload;
const input = state.inputs.find((input) => input.id === id);
if (input) {
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 default digitalInputsSlice.reducer;