import { configureStore } from '@reduxjs/toolkit'; import { persistStore, persistReducer, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER, } from 'redux-persist'; import storage from 'redux-persist/lib/storage'; import rootReducer from './root.ts'; import { useDispatch } from 'react-redux'; const persistConfig = { key: 'persist_root', version: 2, storage: storage, }; const persistedReducer = persistReducer(persistConfig, rootReducer); export const store = configureStore({ reducer: persistedReducer, middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: { ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER], }, }), }); export type RootState = ReturnType; export type AppDispatch = typeof store.dispatch; export const persistor = persistStore(store); export const useAppDispatch = () => useDispatch();