Skip to content

Commit 4375a46

Browse files
Arjunhousseindjirdeh
authored andcommitted
Upgrade redux persist (#825)
* chore(package.json): update redux-persist version * refactor(store): update store configuration update store configuration to use latest version of redux persist
1 parent a0d6b06 commit 4375a46

File tree

5 files changed

+36
-57
lines changed

5 files changed

+36
-57
lines changed

App.js

Lines changed: 13 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,16 @@ import { Provider } from 'react-redux';
33
import styled from 'styled-components';
44
import {
55
AppRegistry,
6-
AsyncStorage,
76
LayoutAnimation,
87
StatusBar,
98
Platform,
109
} from 'react-native';
11-
import { persistStore } from 'redux-persist';
12-
import createEncryptor from 'redux-persist-transform-encrypt';
13-
import DeviceInfo from 'react-native-device-info';
14-
import md5 from 'md5';
1510
import codePush from 'react-native-code-push';
16-
11+
import { PersistGate } from 'redux-persist/integration/react';
1712
import { colors, getStatusBarConfig } from 'config';
1813
import { getCurrentLocale, configureLocale } from 'utils';
1914
import { GitPoint } from './routes';
20-
import { configureStore } from './root.store';
15+
import { configureStore, persistor } from './root.store';
2116

2217
const Container = styled.View`
2318
align-items: center;
@@ -52,22 +47,6 @@ class App extends Component {
5247
}
5348

5449
componentWillMount() {
55-
const encryptor = createEncryptor({
56-
secretKey: md5(DeviceInfo.getUniqueID()),
57-
});
58-
59-
persistStore(
60-
configureStore,
61-
{
62-
storage: AsyncStorage,
63-
transforms: [encryptor],
64-
whitelist: ['auth'],
65-
},
66-
() => {
67-
this.setState({ rehydrated: true });
68-
}
69-
);
70-
7150
this.constructor.initLocale();
7251
}
7352

@@ -111,20 +90,20 @@ class App extends Component {
11190
StatusBar.setBarStyle(barStyle);
11291
}
11392

114-
render() {
115-
if (!this.state.rehydrated) {
116-
return (
117-
<Container>
118-
<Logo source={require('./src/assets/logo-black.png')} />
119-
</Container>
120-
);
121-
}
93+
renderLogo = () => (
94+
<Container>
95+
<Logo source={require('./src/assets/logo-black.png')} />
96+
</Container>
97+
);
12298

99+
render() {
123100
return (
124101
<Provider store={configureStore}>
125-
<GitPoint onNavigationStateChange={this.statusBarHandler}>
126-
<StatusBar />
127-
</GitPoint>
102+
<PersistGate loading={this.renderLogo} persistor={persistor}>
103+
<GitPoint onNavigationStateChange={this.statusBarHandler}>
104+
<StatusBar />
105+
</GitPoint>
106+
</PersistGate>
128107
</Provider>
129108
);
130109
}

ios/GitPoint.xcodeproj/project.pbxproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
};
66
objectVersion = 46;
77
objects = {
8-
98
/* Begin PBXBuildFile section */
109
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
1110
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
"redux-actions": "^2.2.1",
9797
"redux-devtools-extension": "^2.13.2",
9898
"redux-logger": "^2.7.4",
99-
"redux-persist": "^4.3.1",
99+
"redux-persist": "5.10.0",
100100
"redux-persist-transform-encrypt": "^1.0.2",
101101
"redux-thunk": "^2.2.0",
102102
"reselect": "^3.0.1",

root.store.js

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
import { compose, createStore, applyMiddleware } from 'redux';
2-
import { autoRehydrate } from 'redux-persist';
2+
import { persistReducer, persistStore } from 'redux-persist';
3+
import createEncryptor from 'redux-persist-transform-encrypt';
4+
import md5 from 'md5';
5+
import DeviceInfo from 'react-native-device-info';
6+
import storage from 'redux-persist/lib/storage';
37
import Reactotron from 'reactotron-react-native'; // eslint-disable-line import/no-extraneous-dependencies
48
import createLogger from 'redux-logger';
59
import reduxThunk from 'redux-thunk';
610
import { composeWithDevTools } from 'redux-devtools-extension';
711
import 'config/reactotron';
812
import { rootReducer } from './root.reducer';
913

14+
const encryptor = createEncryptor({
15+
secretKey: md5(DeviceInfo.getUniqueID()),
16+
});
17+
const persistConfig = {
18+
key: 'root',
19+
storage,
20+
transforms: [encryptor],
21+
whitelist: ['auth'],
22+
};
1023
const getMiddleware = () => {
1124
const middlewares = [reduxThunk];
1225

@@ -19,26 +32,19 @@ const getMiddleware = () => {
1932
return applyMiddleware(...middlewares);
2033
};
2134

22-
const getEnhancers = () => {
23-
const enhancers = [];
24-
25-
enhancers.push(autoRehydrate());
26-
27-
return enhancers;
28-
};
29-
3035
let store;
3136

3237
if (__DEV__ && process.env.TRON_ENABLED) {
3338
store = Reactotron.createStore(
34-
rootReducer,
35-
compose(getMiddleware(), ...getEnhancers())
39+
persistReducer(persistConfig, rootReducer),
40+
compose(getMiddleware())
3641
);
3742
} else {
3843
store = createStore(
39-
rootReducer,
40-
composeWithDevTools(getMiddleware(), ...getEnhancers())
44+
persistReducer(persistConfig, rootReducer),
45+
composeWithDevTools(getMiddleware())
4146
);
4247
}
4348

4449
export const configureStore = store;
50+
export const persistor = persistStore(configureStore);

yarn.lock

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8392,14 +8392,9 @@ redux-persist-transform-encrypt@^1.0.2:
83928392
json-stringify-safe "^5.0.1"
83938393
readable-stream "^2.2.6"
83948394

8395-
redux-persist@^4.3.1:
8396-
version "4.10.2"
8397-
resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.10.2.tgz#8efdb16cfe882c521a78a6d0bfdfef2437f49f96"
8398-
integrity sha512-U+e0ieMGC69Zr72929iJW40dEld7Mflh6mu0eJtVMLGfMq/aJqjxUM1hzyUWMR1VUyAEEdPHuQmeq5ti9krIgg==
8399-
dependencies:
8400-
json-stringify-safe "^5.0.1"
8401-
lodash "^4.17.4"
8402-
lodash-es "^4.17.4"
8395+
redux-persist@5.10.0:
8396+
version "5.10.0"
8397+
resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-5.10.0.tgz#5d8d802c5571e55924efc1c3a9b23575283be62b"
84038398

84048399
redux-thunk@^2.2.0:
84058400
version "2.2.0"

0 commit comments

Comments
 (0)