useTicketOverviews.ts 1023 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. import { useTimeoutFn } from '@vueuse/shared'
  3. import { onMounted } from 'vue'
  4. import { QueryHandler } from '#shared/server/apollo/handler/index.ts'
  5. import { useTicketOverviewTicketCountLazyQuery } from '#mobile/entities/ticket/graphql/queries/overviewTicketCount.api.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. }