From 45aef6631a2c8149ffa3272c63cacb3fae49a35b Mon Sep 17 00:00:00 2001 From: Jason Crawford Date: Wed, 29 Nov 2017 13:49:31 -0600 Subject: [PATCH] Enable data persistance for liked jobs --- package.json | 1 + reducers/likes_reducer.js | 3 +++ store/index.js | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 420730b..37b07e8 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "react-navigation": "^1.0.0-beta.21", "react-redux": "^5.0.6", "redux": "^3.7.2", + "redux-persist": "^4.10.2", "redux-thunk": "^2.2.0" } } diff --git a/reducers/likes_reducer.js b/reducers/likes_reducer.js index 77c586c..9424a1e 100644 --- a/reducers/likes_reducer.js +++ b/reducers/likes_reducer.js @@ -1,4 +1,5 @@ import _ from 'lodash'; +import { REHYDRATE } from 'redux-persist/constants'; import { LIKE_JOB, CLEAR_LIKED_JOBS @@ -6,6 +7,8 @@ import { export default function(state = [], action) { switch (action.type) { + case REHYDRATE: + return action.payload.likedJobs || []; case CLEAR_LIKED_JOBS: return []; case LIKE_JOB: diff --git a/store/index.js b/store/index.js index bf36ef5..a87e566 100644 --- a/store/index.js +++ b/store/index.js @@ -1,13 +1,18 @@ import { createStore, compose, applyMiddleware } from "redux"; import thunk from "redux-thunk"; +import { persistStore, autoRehydrate } from 'redux-persist'; +import { AsyncStorage } from 'react-native'; import reducers from "../reducers"; const store = createStore( reducers, {}, compose( - applyMiddleware(thunk) + applyMiddleware(thunk), + autoRehydrate() ) ); + persistStore(store, { storage: AsyncStorage, whitelist: ['likedJobs'] }); + export default store; \ No newline at end of file