From 4c9efda9ca15649df5ba9c8ffc93c453192477b6 Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 7 Aug 2024 15:06:06 +0200 Subject: [PATCH] fix reactivity --- dashboard/components/CVerticalNavigation.vue | 2 +- .../dashboard/GeolocationBarCard.vue | 45 ++-- .../components/dashboard/ReferrersBarCard.vue | 12 +- dashboard/components/dashboard/TopCards.vue | 2 +- .../components/dashboard/WebsitesBarCard.vue | 86 ++++--- .../events/EventsStackedBarChart.vue | 3 +- .../components/referrer/ReferrerBarChart.vue | 34 +-- dashboard/composables/useDataService.ts | 228 +++++++++--------- dashboard/composables/useSnapshot.ts | 4 +- dashboard/layouts/dashboard.vue | 30 +-- dashboard/pages/events.vue | 16 +- dashboard/pages/index.vue | 55 ++--- dashboard/pages/live_demo.vue | 6 +- 13 files changed, 257 insertions(+), 266 deletions(-) diff --git a/dashboard/components/CVerticalNavigation.vue b/dashboard/components/CVerticalNavigation.vue index 1761979..5cbfe1c 100644 --- a/dashboard/components/CVerticalNavigation.vue +++ b/dashboard/components/CVerticalNavigation.vue @@ -256,7 +256,7 @@ watch(selected, () => {
diff --git a/dashboard/components/dashboard/GeolocationBarCard.vue b/dashboard/components/dashboard/GeolocationBarCard.vue index 4195fc9..1542a3c 100644 --- a/dashboard/components/dashboard/GeolocationBarCard.vue +++ b/dashboard/components/dashboard/GeolocationBarCard.vue @@ -2,8 +2,6 @@ import type { IconProvider } from './BarsCard.vue'; -const { data: countries, pending, refresh } = useGeolocationData(10); - function iconProvider(id: string): ReturnType { if (id === 'self') return ['icon', 'fas fa-link']; return [ @@ -14,32 +12,51 @@ function iconProvider(id: string): ReturnType { const customIconStyle = `width: 2rem; padding: 1px;` +const activeProject = useActiveProject(); + +const { safeSnapshotDates } = useSnapshot() + +const isShowMore = ref(false); + +const headers = computed(() => { + return { + 'x-from': safeSnapshotDates.value.from, + 'x-to': safeSnapshotDates.value.to, + Authorization: authorizationHeaderComputed.value, + limit: isShowMore.value === true ? '200' : '10' + } +}); + +const geolocationData = useFetch(`/api/metrics/${activeProject.value?._id}/data/countries`, { + method: 'POST', headers, lazy: true, immediate: false +}); + + const { showDialog, dialogBarData, isDataLoading } = useBarCardDialog(); function showMore() { + isShowMore.value = true; showDialog.value = true; - dialogBarData.value = []; - isDataLoading.value = true; - const moreRes = useGeolocationData(200); - - moreRes.onResponse(data => { - dialogBarData.value = data.value?.map(e => { - return { ...e, icon: iconProvider(e._id) } - }) || []; - isDataLoading.value = false; - }) + dialogBarData.value = geolocationData.data.value?.map(e => { + return { ...e, icon: iconProvider(e._id) } + }) || []; + isDataLoading.value = false; } +onMounted(async () => { + geolocationData.execute(); +}); +