// /redux/store.ts import { configureStore } from "@reduxjs/toolkit"; import { persistReducer, persistStore } from "redux-persist"; import storage from "redux-persist/lib/storage"; // = localStorage import authReducer from "./slices/authSlice"; import kueChartModeReducer from "./slices/kueChartModeSlice"; import webVersionReducer from "./slices/webVersionSlice"; import kabelueberwachungChartReducer from "./slices/kabelueberwachungChartSlice"; import last20MessagesReducer from "./slices/last20MessagesSlice"; import systemSettingsReducer from "./slices/systemSettingsSlice"; import opcuaSettingsReducer from "./slices/opcuaSettingsSlice"; import digitalOutputsReducer from "./slices/digitalOutputsSlice"; import brushReducer from "./slices/brushSlice"; import tdrChartReducer from "./slices/tdrChartSlice"; import analogInputsSlice from "./slices/analogInputsSlice"; import digitalInputsReducer from "./slices/digitalInputsSlice"; import tdrReferenceChartReducer from "./slices/tdrReferenceChartSlice"; import loopChartReducer from "./slices/loopChartSlice"; import tdmChartReducer from "./slices/tdmChartSlice"; import tdrDataByIdReducer from "./slices/tdrDataByIdSlice"; import kueDataReducer from "./slices/kueDataSlice"; import selectedChartDataReducer from "./slices/selectedChartDataSlice"; import tdmSingleChartReducer from "./slices/tdmSingleChartSlice"; import tdrReferenceChartDataBySlotReducer from "./slices/tdrReferenceChartDataBySlotSlice"; import loopChartTypeSlice from "./slices/loopChartTypeSlice"; import systemVoltTempReducer from "./slices/systemVoltTempSlice"; import analogInputsHistoryReducer from "./slices/analogInputsHistorySlice"; import selectedAnalogInputReducer from "./slices/selectedAnalogInputSlice"; import messagesReducer from "./slices/messagesSlice"; import firmwareUpdateReducer from "@/redux/slices/firmwareUpdateSlice"; import confirmModalReducer from "./slices/confirmModalSlice"; import firmwareProgressReducer from "./slices/firmwareProgressSlice"; import systemspannung5VplusReducer from "./slices/systemspannung5VplusSlice"; import systemspannung15VminusReducer from "./slices/systemspannung15VminusSlice"; import systemspannung15VplusReducer from "./slices/systemspannung15VplusSlice"; import systemspannung98VminusReducer from "./slices/systemspannung98VminusSlice"; import temperaturAdWandlerReducer from "./slices/temperaturAdWandlerSlice"; import temperaturProzessorReducer from "./slices/temperaturProzessorSlice"; import { combineReducers } from "@reduxjs/toolkit"; import { useDispatch, useSelector, TypedUseSelectorHook } from "react-redux"; import systemChartReducer from "./slices/systemChartSlice"; //--------------------------------------- // 🧠 Nur diese Slices werden persistiert const persistConfig = { key: "root", storage, whitelist: [ "systemspannung5Vplus", "systemspannung15Vplus", "systemspannung15Vminus", "systemspannung98Vminus", "temperaturAdWandler", "temperaturProzessor", ], }; const rootReducer = combineReducers({ systemspannung5Vplus: systemspannung5VplusReducer, systemspannung15Vplus: systemspannung15VplusReducer, systemspannung15Vminus: systemspannung15VminusReducer, systemspannung98Vminus: systemspannung98VminusReducer, temperaturAdWandler: temperaturAdWandlerReducer, temperaturProzessor: temperaturProzessorReducer, // Die restlichen Slices werden nicht persistiert, aber können hier auch aufgenommen werden, // falls sie Teil des globalen States sein sollen: authSlice: authReducer, kueChartModeSlice: kueChartModeReducer, webVersionSlice: webVersionReducer, digitalInputsSlice: digitalInputsReducer, kabelueberwachungChartSlice: kabelueberwachungChartReducer, last20MessagesSlice: last20MessagesReducer, systemSettingsSlice: systemSettingsReducer, opcuaSettingsSlice: opcuaSettingsReducer, digitalOutputsSlice: digitalOutputsReducer, analogInputs: analogInputsSlice, brushSlice: brushReducer, tdrChartSlice: tdrChartReducer, tdrReferenceChartSlice: tdrReferenceChartReducer, loopChartSlice: loopChartReducer, tdmChartSlice: tdmChartReducer, tdrDataByIdSlice: tdrDataByIdReducer, kueDataSlice: kueDataReducer, selectedChartDataSlice: selectedChartDataReducer, tdmSingleChartSlice: tdmSingleChartReducer, tdrReferenceChartDataBySlotSlice: tdrReferenceChartDataBySlotReducer, loopChartType: loopChartTypeSlice, systemVoltTemp: systemVoltTempReducer, analogInputsHistory: analogInputsHistoryReducer, selectedAnalogInput: selectedAnalogInputReducer, messages: messagesReducer, firmwareUpdate: firmwareUpdateReducer, confirmModal: confirmModalReducer, firmwareProgress: firmwareProgressReducer, systemChartSlice: systemChartReducer, }); const persistedReducer = persistReducer(persistConfig, rootReducer); //------------------------------------------- export const store = configureStore({ reducer: persistedReducer, }); export const persistor = persistStore(store); // Typisierte Hooks export type RootState = ReturnType; export type AppDispatch = typeof store.dispatch; export const useAppDispatch = () => useDispatch(); export const useAppSelector: TypedUseSelectorHook = useSelector; export default store;