aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2018-08-20 19:58:49 +0300
committerHenry Jameson <me@hjkos.com>2018-08-20 19:58:49 +0300
commit9e78c64d5eecb5f73e4da401dd3baec94e77efd7 (patch)
treedec28d8693a652b2e2ced8bf8405333936ef20de /src
parentfa66385c5beb157fe885401f70029ce03f182ba5 (diff)
Hide initial desktop notifications spam when FE is opened and there's a lot of
unseen notifications.
Diffstat (limited to 'src')
-rw-r--r--src/modules/statuses.js9
-rw-r--r--src/services/notifications_fetcher/notifications_fetcher.service.js4
2 files changed, 12 insertions, 1 deletions
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 1e1bf72f..063f5f9c 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -24,6 +24,7 @@ export const defaultState = {
allStatusesObject: {},
maxId: 0,
notifications: {
+ desktopNotificationSilence: true,
maxId: 0,
maxSavedId: 0,
minId: Number.POSITIVE_INFINITY,
@@ -314,7 +315,7 @@ const addNewNotifications = (state, { dispatch, notifications, older }) => {
result.image = action.attachments[0].url
}
- if (fresh) {
+ if (fresh && !state.notifications.desktopNotificationSilence) {
let notification = new window.Notification(title, result)
// Chrome is known for not closing notifications automatically
// according to MDN, anyway.
@@ -365,6 +366,9 @@ export const mutations = {
setNotificationsError (state, { value }) {
state.notificationsError = value
},
+ setNotificationsSilence (state, { value }) {
+ state.notifications.desktopNotificationSilence = value
+ },
setProfileView (state, { v }) {
// load followers / friends only when needed
state.timelines['user'].viewing = v
@@ -401,6 +405,9 @@ const statuses = {
setNotificationsError ({ rootState, commit }, { value }) {
commit('setNotificationsError', { value })
},
+ setNotificationsSilence ({ rootState, commit }, { value }) {
+ commit('setNotificationsSilence', { value })
+ },
addFriends ({ rootState, commit }, { friends }) {
commit('addFriends', { friends })
},
diff --git a/src/services/notifications_fetcher/notifications_fetcher.service.js b/src/services/notifications_fetcher/notifications_fetcher.service.js
index 5aedc4fb..74a4bcda 100644
--- a/src/services/notifications_fetcher/notifications_fetcher.service.js
+++ b/src/services/notifications_fetcher/notifications_fetcher.service.js
@@ -30,6 +30,10 @@ const fetchAndUpdate = ({store, credentials, older = false}) => {
const startFetching = ({credentials, store}) => {
fetchAndUpdate({ credentials, store })
const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })
+ // Initially there's set flag to silence all desktop notifications so
+ // that there won't spam of them when user just opened up the FE we
+ // reset that flag after a while to show new notifications once again.
+ setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)
return setInterval(boundFetchAndUpdate, 10000)
}