Add home screen state persistence
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
61
src/state/index.ts
Normal file
61
src/state/index.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import { configureStore, combineReducers } from '@reduxjs/toolkit';
|
||||
import {
|
||||
persistReducer,
|
||||
persistStore,
|
||||
FLUSH,
|
||||
REHYDRATE,
|
||||
PAUSE,
|
||||
PERSIST,
|
||||
PURGE,
|
||||
REGISTER,
|
||||
} from 'redux-persist';
|
||||
import { createRealmPersistStorage } from '@bankify/redux-persist-realm';
|
||||
import settingsReducer from './settings';
|
||||
import homeReducer from './home';
|
||||
|
||||
const rootReducer = combineReducers({
|
||||
settings: settingsReducer,
|
||||
home: homeReducer,
|
||||
});
|
||||
|
||||
interface RootState {
|
||||
settings: ReturnType<typeof settingsReducer>;
|
||||
home: ReturnType<typeof homeReducer>;
|
||||
}
|
||||
|
||||
const persistConfig = {
|
||||
key: 'root',
|
||||
storage: createRealmPersistStorage({ path: 'redux.realm' }),
|
||||
};
|
||||
|
||||
const persistedReducer = persistReducer(persistConfig, rootReducer);
|
||||
|
||||
const store = configureStore({
|
||||
reducer: persistedReducer,
|
||||
middleware: getDefaultMiddleware =>
|
||||
getDefaultMiddleware({
|
||||
serializableCheck: {
|
||||
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
const persistor = persistStore(store);
|
||||
|
||||
export { type RootState, store, persistor };
|
||||
export {
|
||||
type SettingsState,
|
||||
updateStorageUri,
|
||||
updateNoMedia,
|
||||
validateSettings,
|
||||
} from './settings';
|
||||
export {
|
||||
type HomeState,
|
||||
setSort,
|
||||
setSortDirection,
|
||||
toggleSortDirection,
|
||||
setView,
|
||||
cycleView,
|
||||
setFavoritesOnly,
|
||||
toggleFavoritesOnly,
|
||||
} from './home';
|
Reference in New Issue
Block a user