useTicketOverviews.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. import { useTimeoutFn } from '@vueuse/shared'
  3. import { onMounted } from 'vue'
  4. import { useTicketOverviewTicketCountLazyQuery } from '#shared/entities/ticket/graphql/queries/ticket/overviewTicketCount.api.ts'
  5. import { QueryHandler } from '#shared/server/apollo/handler/index.ts'
  6. import { useTicketOverviewsStore } from '../stores/ticketOverviews.ts'
  7. const POLLING_INTERVAL = 60000
  8. export const useTicketOverviews = () => {
  9. const overviews = useTicketOverviewsStore()
  10. const ticketOverviewTicketCountHandler = new QueryHandler(
  11. useTicketOverviewTicketCountLazyQuery(
  12. {
  13. ignoreUserConditions: false,
  14. },
  15. {
  16. pollInterval: POLLING_INTERVAL,
  17. },
  18. ),
  19. )
  20. onMounted(() => {
  21. if (!overviews.loading) {
  22. ticketOverviewTicketCountHandler.load()
  23. } else {
  24. useTimeoutFn(
  25. () => ticketOverviewTicketCountHandler.load(),
  26. POLLING_INTERVAL,
  27. )
  28. }
  29. })
  30. return overviews
  31. }