next-gs
Version:
NPM package for building a React+NextJS+Prisma admin application.
53 lines (40 loc) • 1.18 kB
text/typescript
"use client";
import { combineReducers } from "redux";
import { createDraftSafeSelector, configureStore } from "@reduxjs/toolkit";
import storage from "redux-persist/lib/storage";
import {
persistReducer,
persistStore,
FLUSH,
REHYDRATE,
PAUSE,
PERSIST,
PURGE,
REGISTER,
} from "redux-persist";
import { authReducer } from "./auth";
import { uiReducer } from "./ui";
import { resReducer } from "./res";
const rootReducer = combineReducers({
ui: uiReducer,
res: resReducer,
auth: authReducer,
});
const persistConfig = {
key: "gsys-app-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 const persistor = persistStore(store);
export type StoreState = ReturnType<typeof store.getState>;
export type StoreDispatch = typeof store.dispatch;
export const createSelector = createDraftSafeSelector.withTypes<StoreState>();