1
0
forked from test/crm
jcrm/frontend/src/stores/notifications.js
2024-01-29 23:51:01 +05:30

40 lines
884 B
JavaScript

import { defineStore } from 'pinia'
import { createResource } from 'frappe-ui'
import { computed, ref } from 'vue'
export const notificationsStore = defineStore('crm-notifications', () => {
let visible = ref(false)
const notifications = createResource({
url: 'crm.api.notifications.get_notifications',
initialData: [],
auto: true,
})
const mark_as_read = createResource({
url: 'crm.api.notifications.mark_as_read',
auto: false,
onSuccess: () => notifications.reload(),
})
function toggle() {
visible.value = !visible.value
}
const allNotifications = computed(() => notifications.data || [])
function mark_comment_as_read(comment) {
mark_as_read.params = { comment: comment }
mark_as_read.reload()
toggle()
}
return {
visible,
allNotifications,
mark_as_read,
mark_comment_as_read,
toggle,
}
})