diff options
| author | dave <starpumadev@gmail.com> | 2019-03-12 17:16:57 -0400 |
|---|---|---|
| committer | dave <starpumadev@gmail.com> | 2019-03-12 17:16:57 -0400 |
| commit | cd9a7dd48802fff8942ae607a23677cfb43a7b14 (patch) | |
| tree | 2b29ea2bf40515e08626251ac83c6df4ea9326cb /src/modules/statuses.js | |
| parent | f397537642a6b8a4079d8d45d835ddd50f2d2b4a (diff) | |
#436: integrate mastoAPI notifications
Diffstat (limited to 'src/modules/statuses.js')
| -rw-r--r-- | src/modules/statuses.js | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/modules/statuses.js b/src/modules/statuses.js index 6b512fa3..fde783a5 100644 --- a/src/modules/statuses.js +++ b/src/modules/statuses.js @@ -1,4 +1,4 @@ -import { remove, slice, each, find, maxBy, minBy, merge, first, last, isArray } from 'lodash' +import { remove, slice, each, find, findIndex, maxBy, minBy, merge, first, last, isArray } from 'lodash' import apiService from '../services/api/api.service.js' // import parse from '../services/status_parser/status_parser.js' @@ -390,6 +390,27 @@ export const mutations = { notification.seen = true }) }, + clearNotifications (state) { + state.notifications.data = [] + state.notifications.idStore = {} + state.notifications.maxId = 0 + state.notifications.minId = 0 + }, + dismissNotifications (state, { id }) { + const { data } = state.notifications + const idx = findIndex(data, { id }) + + if (idx !== -1) { + const notification = data[idx] + data.splice(idx, 1) + delete state.notifications.idStore[id] + if (state.notifications.maxId === notification.id) { + state.notifications.maxId = data.length ? maxBy(data, 'id').id : 0 + } else if (state.notifications.minId === notification.id) { + state.notifications.minId = data.length ? minBy(data, 'id').id : 0 + } + } + }, queueFlush (state, { timeline, id }) { state.timelines[timeline].flushMarker = id } @@ -474,6 +495,19 @@ const statuses = { id: rootState.statuses.notifications.maxId, credentials: rootState.users.currentUser.credentials }) + }, + clearNotifications ({ rootState, commit }) { + commit('clearNotifications') + apiService.clearNotifications({ + credentials: rootState.users.currentUser.credentials + }) + }, + dismissNotifications ({ rootState, commit }, { id }) { + commit('dismissNotifications', { id }) + apiService.dismissNotifications({ + id, + credentials: rootState.users.currentUser.credentials + }) } }, mutations |
