aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordave <starpumadev@gmail.com>2019-02-28 14:03:44 -0500
committerdave <starpumadev@gmail.com>2019-02-28 14:03:44 -0500
commitba2e05bc63e0b36d5a126b422c9f87a7ace43305 (patch)
treebc174e765ac088f29b91e62e56d73f840dee4e54
parent24f3770fb5ca47b41a9fbf8711dd614fb50537ca (diff)
#392: stale data served to new user account
-rw-r--r--src/components/notifications/notifications.js3
-rw-r--r--src/modules/statuses.js15
-rw-r--r--src/modules/users.js4
3 files changed, 18 insertions, 4 deletions
diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js
index 5e95631a..9fc5e38a 100644
--- a/src/components/notifications/notifications.js
+++ b/src/components/notifications/notifications.js
@@ -11,7 +11,8 @@ const Notifications = {
const store = this.$store
const credentials = store.state.users.currentUser.credentials
- notificationsFetcher.startFetching({ store, credentials })
+ const fetcherId = notificationsFetcher.startFetching({ store, credentials })
+ this.$store.commit('setNotificationFetcher', { fetcherId })
},
data () {
return {
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 826b544c..2d1313a5 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -1,4 +1,4 @@
-import { remove, slice, each, find, maxBy, minBy, merge, last, isArray } from 'lodash'
+import { remove, slice, each, find, maxBy, minBy, merge, last, isArray, cloneDeep } from 'lodash'
import apiService from '../services/api/api.service.js'
// import parse from '../services/status_parser/status_parser.js'
@@ -29,7 +29,8 @@ export const defaultState = {
data: [],
idStore: {},
loading: false,
- error: false
+ error: false,
+ fetcherId: null
},
favorites: new Set(),
error: false,
@@ -321,6 +322,14 @@ export const mutations = {
oldTimeline.visibleStatusesObject = {}
each(oldTimeline.visibleStatuses, (status) => { oldTimeline.visibleStatusesObject[status.id] = status })
},
+ setNotificationFetcher (state, { fetcherId }) {
+ state.notifications.fetcherId = fetcherId
+ },
+ resetStatuses (state) {
+ Object.keys(state).forEach(key => {
+ state[key] = cloneDeep(defaultState[key])
+ })
+ },
clearTimeline (state, { timeline }) {
state.timelines[timeline] = emptyTl(state.timelines[timeline].userId)
},
@@ -371,7 +380,7 @@ export const mutations = {
}
const statuses = {
- state: defaultState,
+ state: cloneDeep(defaultState),
actions: {
addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId }) {
commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId })
diff --git a/src/modules/users.js b/src/modules/users.js
index 77df7168..84fe039b 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -290,6 +290,10 @@ const users = {
store.commit('setToken', false)
store.dispatch('stopFetching', 'friends')
store.commit('setBackendInteractor', backendInteractorService())
+ if (store.rootState.statuses.notifications.fetcherId) {
+ window.clearInterval(store.rootState.statuses.notifications.fetcherId)
+ }
+ store.commit('resetStatuses')
},
loginUser (store, accessToken) {
return new Promise((resolve, reject) => {