Redux, idLD speichern nur Aktive Geräte

This commit is contained in:
ISA
2025-02-03 08:46:18 +01:00
parent b2777612f2
commit 3fb5e54af7
9 changed files with 161 additions and 428 deletions

View File

@@ -1,9 +0,0 @@
// /redux/actions.js
export const connectWebSocket = (url) => ({
type: "WS_CONNECT",
payload: { url },
});
export const disconnectWebSocket = () => ({
type: "WS_DISCONNECT",
});

View File

@@ -1,18 +0,0 @@
// /redux/reducer.js
const initialState = {
messages: [],
};
const websocketReducer = (state = initialState, action) => {
switch (action.type) {
case "WS_MESSAGE_RECEIVED":
return {
...state,
messages: [...state.messages, action.payload],
};
default:
return state;
}
};
export default websocketReducer;

View File

@@ -0,0 +1,23 @@
// /rdux/slices/lineVisibilitySlice.js
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
activeLines: {}, // Speichert `idLD -> Active`
};
const lineVisibilitySlice = createSlice({
name: "lineVisibility",
initialState,
reducers: {
updateLineStatus(state, action) {
const { idLD, active } = action.payload;
state.activeLines[idLD] = active; // Speichert `idLD` in Redux
},
setActiveLines(state, action) {
state.activeLines = action.payload;
},
},
});
export const { updateLineStatus, setActiveLines } = lineVisibilitySlice.actions;
export default lineVisibilitySlice.reducer;

View File

@@ -1,12 +1,9 @@
// /redux/store.js
import { configureStore } from "@reduxjs/toolkit";
import websocketMiddleware from "./websocketMiddleware";
import websocketReducer from "./reducer";
import lineVisibilityReducer from "./slices/lineVisibilitySlice"; // Importiere deinen Slice
// Erstelle den Store mit configureStore
const store = configureStore({
reducer: websocketReducer,
middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(websocketMiddleware),
export const store = configureStore({
reducer: {
lineVisibility: lineVisibilityReducer, // Speichert `idLD -> Active`
},
});
export default store;