import { configureStore, combineReducers } from '@reduxjs/toolkit'; import { persistStore, persistReducer, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER, } from 'redux-persist'; import storage from 'redux-persist/lib/storage'; import authReducer from './slices/authSlice'; import settingsReducer from './slices/settingsSlice'; import notificationReducer from './slices/notificationSlice'; const rootReducer = combineReducers({ auth: authReducer, settings: settingsReducer, notification: notificationReducer, }); const persistConfig = { key: 'rwadurian-admin', version: 1, storage, whitelist: ['auth'], // εͺζŒδΉ…εŒ– auth slice }; const persistedReducer = persistReducer(persistConfig, rootReducer); export const store = configureStore({ reducer: persistedReducer, middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: { ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER], }, }), devTools: process.env.NODE_ENV !== 'production', }); export const persistor = persistStore(store); export type RootState = ReturnType; export type AppDispatch = typeof store.dispatch;