summaryrefslogtreecommitdiff
path: root/client/src/store.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/store.ts')
-rw-r--r--client/src/store.ts37
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'];