RehydrationServices.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import ReduxPersist from '../Config/ReduxPersist'
  2. import { AsyncStorage } from 'react-native'
  3. import { persistStore } from 'redux-persist'
  4. import StartupActions from '../Redux/StartupRedux'
  5. const updateReducers = (store: Object) => {
  6. const reducerVersion = ReduxPersist.reducerVersion
  7. const config = ReduxPersist.storeConfig
  8. const startup = () => store.dispatch(StartupActions.startup())
  9. // Check to ensure latest reducer version
  10. AsyncStorage.getItem('reducerVersion').then((localVersion) => {
  11. if (localVersion !== reducerVersion) {
  12. console.tron.display({
  13. name: 'PURGE',
  14. value: {
  15. 'Old Version:': localVersion,
  16. 'New Version:': reducerVersion
  17. },
  18. preview: 'Reducer Version Change Detected',
  19. important: true
  20. })
  21. // Purge store
  22. persistStore(store, config, startup).purge()
  23. AsyncStorage.setItem('reducerVersion', reducerVersion)
  24. } else {
  25. persistStore(store, config, startup)
  26. }
  27. }).catch(() => {
  28. persistStore(store, config, startup)
  29. AsyncStorage.setItem('reducerVersion', reducerVersion)
  30. })
  31. }
  32. export default {updateReducers}