From b214c7f613ce65253bf025b4539c262962801e65 Mon Sep 17 00:00:00 2001 From: Emily Date: Tue, 2 Jul 2024 20:26:25 +0200 Subject: [PATCH] add lazy load to dashboard --- dashboard/components/dashboard/BrowsersBarCard.vue | 5 ++++- dashboard/components/dashboard/DevicesBarCard.vue | 5 ++++- dashboard/components/dashboard/EventsBarCard.vue | 10 +++++++--- dashboard/components/dashboard/GeolocationBarCard.vue | 5 ++++- dashboard/components/dashboard/OssBarCard.vue | 5 ++++- dashboard/components/dashboard/ReferrersBarCard.vue | 5 ++++- dashboard/components/dashboard/TopCards.vue | 2 +- dashboard/composables/useDataService.ts | 9 +++++++-- dashboard/pages/index.vue | 3 ++- 9 files changed, 37 insertions(+), 12 deletions(-) diff --git a/dashboard/components/dashboard/BrowsersBarCard.vue b/dashboard/components/dashboard/BrowsersBarCard.vue index ae7c9f2..90f7247 100644 --- a/dashboard/components/dashboard/BrowsersBarCard.vue +++ b/dashboard/components/dashboard/BrowsersBarCard.vue @@ -3,7 +3,10 @@ import type { BrowsersAggregated } from '~/server/api/metrics/[project_id]/data/browsers'; const activeProject = await useActiveProject(); -const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/browsers`, signHeaders()); +const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/browsers`, { + ...signHeaders(), + lazy: true +}); const { showDialog, dialogBarData, isDataLoading } = useBarCardDialog(); diff --git a/dashboard/components/dashboard/DevicesBarCard.vue b/dashboard/components/dashboard/DevicesBarCard.vue index a591d32..a6b8e99 100644 --- a/dashboard/components/dashboard/DevicesBarCard.vue +++ b/dashboard/components/dashboard/DevicesBarCard.vue @@ -3,7 +3,10 @@ import type { DevicesAggregated } from '~/server/api/metrics/[project_id]/data/devices'; const activeProject = await useActiveProject(); -const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/devices`, signHeaders()); +const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/devices`, { + ...signHeaders(), + lazy: true +}); const { showDialog, dialogBarData, isDataLoading } = useBarCardDialog(); diff --git a/dashboard/components/dashboard/EventsBarCard.vue b/dashboard/components/dashboard/EventsBarCard.vue index c2dcecd..3540d0b 100644 --- a/dashboard/components/dashboard/EventsBarCard.vue +++ b/dashboard/components/dashboard/EventsBarCard.vue @@ -3,7 +3,10 @@ import type { CustomEventsAggregated } from '~/server/api/metrics/[project_id]/visits/events'; const activeProject = await useActiveProject(); -const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/visits/events`, signHeaders()); +const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/visits/events`, { + ...signHeaders(), + lazy: true +}); const router = useRouter(); @@ -35,7 +38,8 @@ function showMore() { diff --git a/dashboard/components/dashboard/GeolocationBarCard.vue b/dashboard/components/dashboard/GeolocationBarCard.vue index 596143c..b22778d 100644 --- a/dashboard/components/dashboard/GeolocationBarCard.vue +++ b/dashboard/components/dashboard/GeolocationBarCard.vue @@ -4,7 +4,10 @@ import type { CountriesAggregated } from '~/server/api/metrics/[project_id]/data import type { IconProvider } from './BarsCard.vue'; const activeProject = await useActiveProject(); -const { data: countries, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/countries`, signHeaders()); +const { data: countries, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/countries`, { + ...signHeaders(), + lazy: true +}); function iconProvider(id: string): ReturnType { if (id === 'self') return ['icon', 'fas fa-link']; diff --git a/dashboard/components/dashboard/OssBarCard.vue b/dashboard/components/dashboard/OssBarCard.vue index 5dc423f..d5699be 100644 --- a/dashboard/components/dashboard/OssBarCard.vue +++ b/dashboard/components/dashboard/OssBarCard.vue @@ -3,7 +3,10 @@ import type { OssAggregated } from '~/server/api/metrics/[project_id]/data/oss'; const activeProject = await useActiveProject(); -const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/oss`, signHeaders()); +const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/oss`, { + ...signHeaders(), + lazy: true +}); const { showDialog, dialogBarData, isDataLoading } = useBarCardDialog(); diff --git a/dashboard/components/dashboard/ReferrersBarCard.vue b/dashboard/components/dashboard/ReferrersBarCard.vue index 01e54f6..852c948 100644 --- a/dashboard/components/dashboard/ReferrersBarCard.vue +++ b/dashboard/components/dashboard/ReferrersBarCard.vue @@ -5,7 +5,10 @@ import type { IconProvider } from './BarsCard.vue'; import ReferrerBarChart from '../referrer/ReferrerBarChart.vue'; const activeProject = await useActiveProject(); -const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/referrers`, signHeaders()); +const { data: events, pending, refresh } = await useFetch(`/api/metrics/${activeProject.value?._id}/data/referrers`, { + ...signHeaders(), + lazy: true +}); function iconProvider(id: string): ReturnType { diff --git a/dashboard/components/dashboard/TopCards.vue b/dashboard/components/dashboard/TopCards.vue index 7810e6b..815c8f8 100644 --- a/dashboard/components/dashboard/TopCards.vue +++ b/dashboard/components/dashboard/TopCards.vue @@ -1,5 +1,5 @@