import { configureStore, Middleware } from '@reduxjs/toolkit'; // Slices import offlineReducer from './slices/offlineSlice'; import activitiesReducer from './slices/activitiesSlice'; import childrenReducer from './slices/childrenSlice'; import networkReducer from './slices/networkSlice'; // Middleware import { offlineMiddleware } from './middleware/offlineMiddleware'; import { syncMiddleware } from './middleware/syncMiddleware'; export const store = configureStore({ reducer: { offline: offlineReducer, activities: activitiesReducer, children: childrenReducer, network: networkReducer, }, middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: { // Ignore these action types for serialization check ignoredActions: ['persist/PERSIST', 'persist/REHYDRATE'], // Ignore these field paths in all actions ignoredActionPaths: ['meta.arg', 'payload.timestamp'], // Ignore these paths in the state ignoredPaths: ['items.dates'], }, }).concat(offlineMiddleware, syncMiddleware), }); // Infer the `RootState` and `AppDispatch` types from the store itself export type RootState = ReturnType; export type AppDispatch = typeof store.dispatch; // Export store instance export default store;