49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
import { configureStore } from "@reduxjs/toolkit";
|
|
import { persistStore } from "redux-persist";
|
|
import { createLogger } from "redux-logger";
|
|
import createSagaMiddleware from "redux-saga";
|
|
import { createStateSyncMiddleware, initMessageListener } from "redux-state-sync";
|
|
|
|
import rootReducer from "./root.reducer";
|
|
import rootSaga from "./root.saga";
|
|
import * as Sentry from "@sentry/react";
|
|
|
|
const sentryReduxEnhancer = Sentry.createReduxEnhancer({
|
|
// Optionally pass options
|
|
});
|
|
const sagaMiddleWare = createSagaMiddleware();
|
|
|
|
const reduxSyncConfig = {
|
|
whitelist: [
|
|
"ADD_RECENT_ITEM" //"SET_SHOP_DETAILS"
|
|
]
|
|
};
|
|
|
|
const middlewares = [sagaMiddleWare, createStateSyncMiddleware(reduxSyncConfig)];
|
|
|
|
if (import.meta.env.DEV) {
|
|
middlewares.push(createLogger({ collapsed: true, diff: true }));
|
|
}
|
|
|
|
export const store = configureStore({
|
|
reducer: rootReducer,
|
|
middleware: (getDefaultMiddleware) =>
|
|
getDefaultMiddleware({
|
|
serializableCheck: false
|
|
}).concat(middlewares),
|
|
// middleware: middlewares,
|
|
devTools: import.meta.env.DEV,
|
|
enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(sentryReduxEnhancer)
|
|
});
|
|
|
|
sagaMiddleWare.run(rootSaga);
|
|
initMessageListener(store);
|
|
|
|
export const persistor = persistStore(store);
|
|
const e = { store, persistStore };
|
|
export default e;
|
|
|
|
if (window.Cypress) {
|
|
window.store = store;
|
|
}
|