diff --git a/app/pages/open-data.vue b/app/pages/open-data.vue index 49e9f23..b292710 100644 --- a/app/pages/open-data.vue +++ b/app/pages/open-data.vue @@ -7,37 +7,27 @@ const { getOpenDataReports } = usePublic() const currentPage = ref(1) const perPage = ref(9) + const { data: openDataResponse, pending } = await useAsyncData( 'open-data-reports', - () => getOpenDataReports({ page: currentPage.value, per_page: perPage.value }), - { watch: [currentPage] } + () => getOpenDataReports({ page: 1, per_page: 200 }) ) -const visibleReports = computed(() => +const allVisibleReports = computed(() => (openDataResponse.value?.reports || []).filter((report) => isWithinBariBounds(report.latitude, report.longitude)) ) -const isLastPage = computed(() => { - if (!openDataResponse.value?.reports) return true - return openDataResponse.value.reports.length < perPage.value +const visibleReports = computed(() => { + const start = (currentPage.value - 1) * perPage.value + const end = start + perPage.value + return allVisibleReports.value.slice(start, end) }) -const nextPage = () => { - if (!isLastPage.value) currentPage.value++ -} -const prevPage = () => { - if (currentPage.value > 1) currentPage.value-- +const handlePageChange = (page: number) => { + currentPage.value = page } -const { data: mapOpenDataResponse, pending: mapPending } = useAsyncData( - 'open-data-map-reports', - () => getOpenDataReports({ page: 1, per_page: 200 }), - { lazy: true } -) - -const mapVisibleReports = computed(() => - (mapOpenDataResponse.value?.reports || []).filter((report) => isWithinBariBounds(report.latitude, report.longitude)) -) +const mapVisibleReports = computed(() => allVisibleReports.value) const currentView = ref<'grid' | 'map'>('grid') const mapContainer = ref(null) @@ -170,7 +160,7 @@ onBeforeUnmount(() => { -
+
-
+
@@ -251,32 +241,20 @@ onBeforeUnmount(() => { Nessun dato pubblico disponibile al momento.
- +

Mappa pubblica delle segnalazioni nell'area di Bari.

- +