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(); +}); +