useOnlineNotificationCount.ts 780 B

123456789101112131415161718192021222324252627
  1. // Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. import { ref } from 'vue'
  3. import { useOnlineNotificationsCountSubscription } from '#shared/entities/online-notification/graphql/subscriptions/onlineNotificationsCount.api.ts'
  4. import { SubscriptionHandler } from '#shared/server/apollo/handler/index.ts'
  5. export const useOnlineNotificationCount = () => {
  6. const unseenCount = ref(0)
  7. const notificationsCountSubscription = new SubscriptionHandler(
  8. useOnlineNotificationsCountSubscription(),
  9. )
  10. notificationsCountSubscription.onResult((result) => {
  11. const { data } = result
  12. if (!data) return
  13. unseenCount.value = data.onlineNotificationsCount.unseenCount
  14. })
  15. return {
  16. notificationsCountSubscription,
  17. unseenCount,
  18. }
  19. }