upgrade to redux-persist v5
This commit is contained in:
parent
ed2532dae1
commit
e121cfe5c6
3 changed files with 32 additions and 39 deletions
16
package-lock.json
generated
16
package-lock.json
generated
|
@ -5548,11 +5548,6 @@
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
|
||||||
"integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
|
"integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
|
||||||
},
|
},
|
||||||
"lodash-es": {
|
|
||||||
"version": "4.17.14",
|
|
||||||
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.14.tgz",
|
|
||||||
"integrity": "sha512-7zchRrGa8UZXjD/4ivUWP1867jDkhzTG2c/uj739utSd7O/pFFdxspCemIFKEEjErbcqRzn8nKnGsi7mvTgRPA=="
|
|
||||||
},
|
|
||||||
"lodash.clonedeep": {
|
"lodash.clonedeep": {
|
||||||
"version": "4.5.0",
|
"version": "4.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
|
||||||
|
@ -7691,14 +7686,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"redux-persist": {
|
"redux-persist": {
|
||||||
"version": "4.10.2",
|
"version": "5.10.0",
|
||||||
"resolved": "https://registry.npmjs.org/redux-persist/-/redux-persist-4.10.2.tgz",
|
"resolved": "https://registry.npmjs.org/redux-persist/-/redux-persist-5.10.0.tgz",
|
||||||
"integrity": "sha512-U+e0ieMGC69Zr72929iJW40dEld7Mflh6mu0eJtVMLGfMq/aJqjxUM1hzyUWMR1VUyAEEdPHuQmeq5ti9krIgg==",
|
"integrity": "sha512-sSJAzNq7zka3qVHKce1hbvqf0Vf5DuTVm7dr4GtsqQVOexnrvbV47RWFiPxQ8fscnyiuWyD2O92DOxPl0tGCRg=="
|
||||||
"requires": {
|
|
||||||
"json-stringify-safe": "^5.0.1",
|
|
||||||
"lodash": "^4.17.4",
|
|
||||||
"lodash-es": "^4.17.4"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"redux-persist-filesystem-storage": {
|
"redux-persist-filesystem-storage": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
"react-navigation-redux-helpers": "^3.0.2",
|
"react-navigation-redux-helpers": "^3.0.2",
|
||||||
"react-redux": "^5.0.3",
|
"react-redux": "^5.0.3",
|
||||||
"redux": "^4.0.4",
|
"redux": "^4.0.4",
|
||||||
"redux-persist": "^4.10.2",
|
"redux-persist": "^5.10.0",
|
||||||
"redux-persist-filesystem-storage": "^1.3.2",
|
"redux-persist-filesystem-storage": "^1.3.2",
|
||||||
"redux-persist-transform-compress": "^4.2.0",
|
"redux-persist-transform-compress": "^4.2.0",
|
||||||
"redux-persist-transform-filter": "0.0.18",
|
"redux-persist-transform-filter": "0.0.18",
|
||||||
|
|
53
src/index.js
53
src/index.js
|
@ -24,13 +24,14 @@ import {
|
||||||
syncReducer,
|
syncReducer,
|
||||||
userReducer,
|
userReducer,
|
||||||
} from 'lbryinc';
|
} from 'lbryinc';
|
||||||
import { createStore, applyMiddleware, compose, combineReducers } from 'redux';
|
import { createStore, applyMiddleware, compose } from 'redux';
|
||||||
import AppWithNavigationState, {
|
import AppWithNavigationState, {
|
||||||
AppNavigator,
|
AppNavigator,
|
||||||
navigatorReducer,
|
navigatorReducer,
|
||||||
reactNavigationMiddleware,
|
reactNavigationMiddleware,
|
||||||
} from 'component/AppNavigator';
|
} from 'component/AppNavigator';
|
||||||
import { persistStore, autoRehydrate } from 'redux-persist';
|
import { REHYDRATE, PURGE, persistCombineReducers, persistStore } from 'redux-persist';
|
||||||
|
import getStoredStateMigrateV4 from 'redux-persist/lib/integration/getStoredStateMigrateV4';
|
||||||
import AsyncStorage from '@react-native-community/async-storage';
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
import FilesystemStorage from 'redux-persist-filesystem-storage';
|
import FilesystemStorage from 'redux-persist-filesystem-storage';
|
||||||
import createCompressor from 'redux-persist-transform-compress';
|
import createCompressor from 'redux-persist-transform-compress';
|
||||||
|
@ -42,6 +43,7 @@ import thunk from 'redux-thunk';
|
||||||
|
|
||||||
const globalExceptionHandler = (error, isFatal) => {
|
const globalExceptionHandler = (error, isFatal) => {
|
||||||
if (error && NativeModules.Firebase) {
|
if (error && NativeModules.Firebase) {
|
||||||
|
console.log(error);
|
||||||
NativeModules.Firebase.logException(isFatal, error.message ? error.message : 'No message', JSON.stringify(error));
|
NativeModules.Firebase.logException(isFatal, error.message ? error.message : 'No message', JSON.stringify(error));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -75,11 +77,30 @@ function enableBatching(reducer) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* const router = AppNavigator.router;
|
const compressor = createCompressor();
|
||||||
const navAction = router.getActionForPathAndParams('FirstRun');
|
const authFilter = createFilter('auth', ['authToken']);
|
||||||
const initialNavState = router.getStateForAction(navAction); */
|
const contentFilter = createFilter('content', ['positions']);
|
||||||
|
const saveClaimsFilter = createFilter('claims', ['byId', 'claimsByUri']);
|
||||||
|
const subscriptionsFilter = createFilter('subscriptions', ['enabledChannelNotifications', 'subscriptions']);
|
||||||
|
const settingsFilter = createFilter('settings', ['clientSettings']);
|
||||||
|
const tagsFilter = createFilter('tags', ['followedTags']);
|
||||||
|
const walletFilter = createFilter('wallet', ['receiveAddress']);
|
||||||
|
|
||||||
const reducers = combineReducers({
|
const v4PersistOptions = {
|
||||||
|
whitelist: ['auth', 'claims', 'content', 'subscriptions', 'settings', 'tags', 'wallet'],
|
||||||
|
// Order is important. Needs to be compressed last or other transforms can't
|
||||||
|
// read the data
|
||||||
|
transforms: [authFilter, saveClaimsFilter, subscriptionsFilter, settingsFilter, walletFilter, compressor],
|
||||||
|
debounce: 10000,
|
||||||
|
storage: FilesystemStorage,
|
||||||
|
};
|
||||||
|
|
||||||
|
const persistOptions = Object.assign({}, v4PersistOptions, {
|
||||||
|
key: 'primary',
|
||||||
|
getStoredState: getStoredStateMigrateV4(v4PersistOptions),
|
||||||
|
});
|
||||||
|
|
||||||
|
const reducers = persistCombineReducers(persistOptions, {
|
||||||
auth: authReducer,
|
auth: authReducer,
|
||||||
blacklist: blacklistReducer,
|
blacklist: blacklistReducer,
|
||||||
claims: claimsReducer,
|
claims: claimsReducer,
|
||||||
|
@ -111,28 +132,10 @@ const composeEnhancers = compose;
|
||||||
const store = createStore(
|
const store = createStore(
|
||||||
enableBatching(reducers),
|
enableBatching(reducers),
|
||||||
{}, // initial state,
|
{}, // initial state,
|
||||||
composeEnhancers(autoRehydrate(), applyMiddleware(...middleware))
|
composeEnhancers(applyMiddleware(...middleware))
|
||||||
);
|
);
|
||||||
window.store = store;
|
window.store = store;
|
||||||
|
|
||||||
const compressor = createCompressor();
|
|
||||||
const authFilter = createFilter('auth', ['authToken']);
|
|
||||||
const contentFilter = createFilter('content', ['positions']);
|
|
||||||
const saveClaimsFilter = createFilter('claims', ['byId', 'claimsByUri']);
|
|
||||||
const subscriptionsFilter = createFilter('subscriptions', ['enabledChannelNotifications', 'subscriptions']);
|
|
||||||
const settingsFilter = createFilter('settings', ['clientSettings']);
|
|
||||||
const tagsFilter = createFilter('tags', ['followedTags']);
|
|
||||||
const walletFilter = createFilter('wallet', ['receiveAddress']);
|
|
||||||
|
|
||||||
const persistOptions = {
|
|
||||||
whitelist: ['auth', 'claims', 'content', 'subscriptions', 'settings', 'tags', 'wallet'],
|
|
||||||
// Order is important. Needs to be compressed last or other transforms can't
|
|
||||||
// read the data
|
|
||||||
transforms: [authFilter, saveClaimsFilter, subscriptionsFilter, settingsFilter, walletFilter, compressor],
|
|
||||||
debounce: 10000,
|
|
||||||
storage: FilesystemStorage,
|
|
||||||
};
|
|
||||||
|
|
||||||
persistStore(store, persistOptions, err => {
|
persistStore(store, persistOptions, err => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log('Unable to load saved SETTINGS');
|
console.log('Unable to load saved SETTINGS');
|
||||||
|
|
Loading…
Reference in a new issue