import { combineReducers, configureStore } from '@reduxjs/toolkit'; import guestReducer from './slices/auth/guestSlice'; import adminReducer from './slices/auth/adminSlice'; import uiReducer from './slices/uiSlice'; import { guestSlice } from './slices/api/guestSlice'; import { adminSlice } from './slices/api/adminSlice'; const rootReducer = combineReducers({ [guestSlice.reducerPath]: guestSlice.reducer, [adminSlice.reducerPath]: adminSlice.reducer, guest: guestReducer, admin: adminReducer, ui: uiReducer, }); const setupStore = (preloadedState?: Partial) => { return configureStore({ reducer: rootReducer, middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat( guestSlice.middleware, adminSlice.middleware ), preloadedState, }); }; export default setupStore; export type RootState = ReturnType; export type AppStore = ReturnType; export type AppDispatch = AppStore['dispatch'];