From 07f1b8523eddd596d154e68561a389d6b9742d95 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 7 Dec 2018 18:13:04 +0700 Subject: add subscribe module and fix race condition --- src/modules/subscribe.js | 21 +++++++++++++++++++++ src/modules/users.js | 5 +---- 2 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 src/modules/subscribe.js (limited to 'src/modules') diff --git a/src/modules/subscribe.js b/src/modules/subscribe.js new file mode 100644 index 00000000..e705904c --- /dev/null +++ b/src/modules/subscribe.js @@ -0,0 +1,21 @@ +import registerPushNotifications from '../services/push/push.js' + +const subscribe = { + state: { + token: null, + vapidPublicKey: null + }, + mutations: { + setCurrentUser (state, user) { + state.token = user.credentials + if (state.token && state.vapidPublicKey) registerPushNotifications(this) + }, + setInstanceOption (state, { name, value }) { + if (name !== 'vapidPublicKey') return + state.vapidPublicKey = value + if (state.token && state.vapidPublicKey) registerPushNotifications(this) + } + } +} + +export default subscribe diff --git a/src/modules/users.js b/src/modules/users.js index d2c7fdf6..88ec7115 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -1,5 +1,4 @@ import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js' -import registerPushNotifications from '../services/push/push.js' import { compact, map, each, merge } from 'lodash' import { set } from 'vue' @@ -120,10 +119,8 @@ const users = { }) // Fetch our friends - store.rootState.api.backendInteractor.fetchFriends({id: user.id}) + store.rootState.api.backendInteractor.fetchFriends({ id: user.id }) .then((friends) => commit('addNewUsers', friends)) - - registerPushNotifications(store) }) } else { // Authentication failed -- cgit v1.2.3-70-g09d2