VuexPersistedState.js 814 B

12345678910111213141516171819202122232425262728293031
  1. import { boot } from 'quasar/wrappers'
  2. import merge from 'deepmerge'
  3. const key = process.env.VUEX_PERSISTED_STATE_KEY ? process.env.VUEX_PERSISTED_STATE_KEY : 'vuex'
  4. export default boot(({ store, ssrContext }) => {
  5. if (ssrContext) {
  6. return
  7. }
  8. const savedStateOnLocalStorage = JSON.parse(window.localStorage.getItem(key))
  9. if (!savedStateOnLocalStorage) {
  10. return
  11. }
  12. store.replaceState(
  13. merge(store.state, savedStateOnLocalStorage, {
  14. arrayMerge: function (store, saved) {
  15. return saved
  16. },
  17. clone: false
  18. })
  19. )
  20. const accessToken = store.getters['Auth/accessToken']
  21. if (accessToken) {
  22. store.commit('Auth/updateAxiosAuthorization', accessToken)
  23. } else {
  24. // console.error('VuexPersistedState boot->Auth/logOut')
  25. store.dispatch('Auth/logOut')
  26. }
  27. })