import { combineReducers, configureStore } from "@reduxjs/toolkit"; import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"; import { persistReducer, persistStore } from "redux-persist"; import reducer from "./slice"; import authReducer from "./slices/authSlice"; import AsyncStorage from "@react-native-async-storage/async-storage"; const persistConfig = { key: "root", storage: AsyncStorage, whitelist: ["auth"], }; const rootReducer = combineReducers({ global: reducer, auth: authReducer, }); const persistedReducer = persistReducer(persistConfig, rootReducer); export const store = configureStore({ reducer: persistedReducer, middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: false, }), }); export default store; export const persistor = persistStore(store); export type RootStore = ReturnType; export type AppDispatch = typeof store.dispatch; export const useAppDispatch = () => useDispatch(); export const useAppSelector: TypedUseSelectorHook = useSelector;