57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
export default {
|
|
state: () => ({
|
|
notifications: [],
|
|
notificationsShown: false,
|
|
unreadNotifications: false,
|
|
}),
|
|
|
|
getters: {
|
|
notifications: s => s.notifications,
|
|
notificationsShown: s => s.notificationsShown,
|
|
unreadNotifications: s => s.unreadNotifications,
|
|
},
|
|
|
|
mutations: {
|
|
toggleNotifications(state) {
|
|
state.notificationsShown = !state.notificationsShown
|
|
localStorage.setItem('nova.mainMenu.open', state.notificationsShown)
|
|
},
|
|
},
|
|
|
|
actions: {
|
|
async fetchNotifications({ state }) {
|
|
const {
|
|
data: { notifications, unread },
|
|
} = await Nova.request().get(`/nova-api/nova-notifications`)
|
|
|
|
state.notifications = notifications
|
|
state.unreadNotifications = unread
|
|
},
|
|
|
|
async markNotificationAsUnread({ state, dispatch }, id) {
|
|
await Nova.request().post(`/nova-api/nova-notifications/${id}/unread`)
|
|
dispatch('fetchNotifications')
|
|
},
|
|
|
|
async markNotificationAsRead({ state, dispatch }, id) {
|
|
await Nova.request().post(`/nova-api/nova-notifications/${id}/read`)
|
|
dispatch('fetchNotifications')
|
|
},
|
|
|
|
async deleteNotification({ state, dispatch }, id) {
|
|
await Nova.request().delete(`/nova-api/nova-notifications/${id}`)
|
|
dispatch('fetchNotifications')
|
|
},
|
|
|
|
async deleteAllNotifications({ state, dispatch }, id) {
|
|
await Nova.request().delete(`/nova-api/nova-notifications`)
|
|
dispatch('fetchNotifications')
|
|
},
|
|
|
|
async markAllNotificationsAsRead({ state, dispatch }, id) {
|
|
await Nova.request().post(`/nova-api/nova-notifications/read-all`)
|
|
dispatch('fetchNotifications')
|
|
},
|
|
},
|
|
}
|