Files
Checkmate/Client/src/store.js
T

51 lines
1.4 KiB
JavaScript
Raw Normal View History

2024-06-20 14:07:33 -07:00
import { configureStore, combineReducers } from "@reduxjs/toolkit";
2024-07-30 11:25:14 -07:00
import uptimeMonitorsReducer from "./Features/UptimeMonitors/uptimeMonitorsSlice";
2024-07-30 13:40:31 -04:00
import pageSpeedMonitorReducer from "./Features/PageSpeedMonitor/pageSpeedMonitorSlice";
2024-06-07 16:17:10 -07:00
import authReducer from "./Features/Auth/authSlice";
2024-08-20 17:10:03 -04:00
import uiReducer from "./Features/UI/uiSlice";
2024-06-20 14:07:33 -07:00
import storage from "redux-persist/lib/storage";
import { persistReducer, persistStore, createTransform } from "redux-persist";
const authTransform = createTransform(
(inboundState) => {
const { profileImage, ...rest } = inboundState;
return rest;
},
// No transformation on rehydration
null,
// Only applies to auth
2024-08-20 19:01:59 -04:00
{ whitelist: ["auth"] }
);
2024-06-20 14:07:33 -07:00
const persistConfig = {
key: "root",
storage,
2024-08-20 19:01:59 -04:00
whitielist: ["auth", "monitors", "pageSpeed", "ui"],
transforms: [authTransform],
2024-06-20 14:07:33 -07:00
};
const rootReducer = combineReducers({
2024-07-30 11:25:14 -07:00
uptimeMonitors: uptimeMonitorsReducer,
2024-06-20 14:07:33 -07:00
auth: authReducer,
2024-07-30 13:40:31 -04:00
pageSpeedMonitors: pageSpeedMonitorReducer,
2024-08-20 17:10:03 -04:00
ui: uiReducer,
});
2024-06-20 14:07:33 -07:00
const persistedReducer = persistReducer(persistConfig, rootReducer);
export const store = configureStore({
reducer: persistedReducer,
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware({
serializableCheck: {
ignoredActions: [
"persist/PERSIST",
"persist/REHYDRATE",
"persist/REGISTER",
],
},
}),
});
export const persistor = persistStore(store);