diff options
Diffstat (limited to 'client/src/store.ts')
-rw-r--r-- | client/src/store.ts | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/client/src/store.ts b/client/src/store.ts index 4814868..e28bace 100644 --- a/client/src/store.ts +++ b/client/src/store.ts @@ -1,22 +1,31 @@ -import { configureStore } from '@reduxjs/toolkit'; +import { combineReducers, configureStore } from '@reduxjs/toolkit'; import guestReducer from './slices/auth/guestSlice'; import adminReducer from './slices/auth/adminSlice'; import snackbarReducer from './slices/snackbarSlice'; import { guestSlice } from './slices/api/guestSlice'; import { adminSlice } from './slices/api/adminSlice'; -const store = configureStore({ - reducer: { - [guestSlice.reducerPath]: guestSlice.reducer, - [adminSlice.reducerPath]: adminSlice.reducer, - guest: guestReducer, - admin: adminReducer, - snackbar: snackbarReducer, - }, - middleware: (getDefaultMiddleware) => - getDefaultMiddleware().concat(guestSlice.middleware, adminSlice.middleware), +const rootReducer = combineReducers({ + [guestSlice.reducerPath]: guestSlice.reducer, + [adminSlice.reducerPath]: adminSlice.reducer, + guest: guestReducer, + admin: adminReducer, + snackbar: snackbarReducer, }); -export default store; -export type RootState = ReturnType<typeof store.getState>; -export type AppDispatch = typeof store.dispatch; +const setupStore = (preloadedState?: Partial<RootState>) => { + return configureStore({ + reducer: rootReducer, + middleware: (getDefaultMiddleware) => + getDefaultMiddleware().concat( + guestSlice.middleware, + adminSlice.middleware + ), + preloadedState, + }); +}; + +export default setupStore; +export type RootState = ReturnType<typeof rootReducer>; +export type AppStore = ReturnType<typeof configureStore>; +export type AppDispatch = AppStore['dispatch']; |