@ozanmanav/react-native-boilerplate-ts
Version:
TheCodingMachine React Native Boilerplate With Typescript
61 lines (48 loc) • 1.25 kB
text/typescript
import AsyncStorage from '@react-native-async-storage/async-storage'
import { combineReducers } from 'redux'
import {
persistReducer,
persistStore,
FLUSH,
REHYDRATE,
PAUSE,
PERSIST,
PURGE,
REGISTER,
} from 'redux-persist'
import { configureStore } from '@reduxjs/toolkit'
import { createSelectorHook } from 'react-redux'
type RootStateType = {
user:any;
startup: any;
}
export const useSelector = createSelectorHook<RootStateType>()
import startup from './Startup'
import user from './User'
const reducers = combineReducers({
startup,
user,
})
const persistConfig = {
key: 'root',
storage: AsyncStorage,
whitelist: [],
}
const persistedReducer = persistReducer(persistConfig, reducers)
const store = configureStore({
reducer: persistedReducer,
middleware: (getDefaultMiddleware) => {
const middlewares = getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
},
})
if (__DEV__ && !process.env.JEST_WORKER_ID) {
const createDebugger = require('redux-flipper').default
middlewares.push(createDebugger())
}
return middlewares
},
})
const persistor = persistStore(store)
export { store, persistor }