- meldungen.tsx → MeldungenView.tsx erstellt → beinhaltet Filterleiste, Tabellenansicht und Datenabruf - system.tsx → SystemView.tsx ausgelagert → verbessert Lesbarkeit und Trennung von Routing und Inhalt - View-Suffix verwendet für klare Struktur (Page = Entry, View = Inhalt)
114 lines
5.0 KiB
TypeScript
114 lines
5.0 KiB
TypeScript
// /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";
|
|
|
|
//---------------------------------------
|
|
// 🧠 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,
|
|
});
|
|
|
|
const persistedReducer = persistReducer(persistConfig, rootReducer);
|
|
|
|
//-------------------------------------------
|
|
|
|
export const store = configureStore({
|
|
reducer: persistedReducer,
|
|
});
|
|
|
|
export const persistor = persistStore(store);
|
|
|
|
// Typisierte Hooks
|
|
export type RootState = ReturnType<typeof store.getState>;
|
|
export type AppDispatch = typeof store.dispatch;
|
|
|
|
export const useAppDispatch = () => useDispatch<AppDispatch>();
|
|
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;
|
|
|
|
export default store;
|