@@ -12,6 +12,8 @@ const chartModal = useModal('chart-modal')
1212
1313const isChartModalOpen = shallowRef (false )
1414async function openChartModal() {
15+ if (! hasWeeklyDownloads .value ) return
16+
1517 isChartModalOpen .value = true
1618 // ensure the component renders before opening the dialog
1719 await nextTick ()
@@ -85,10 +87,13 @@ const pulseColor = computed(() => {
8587})
8688
8789const weeklyDownloads = shallowRef <WeeklyDownloadPoint []>([])
90+ const isLoadingWeeklyDownloads = shallowRef (false )
91+ const hasWeeklyDownloads = computed (() => weeklyDownloads .value .length > 0 )
8892
8993async function loadWeeklyDownloads() {
9094 if (! import .meta .client ) return
9195
96+ isLoadingWeeklyDownloads .value = true
9297 try {
9398 const result = await fetchPackageDownloadEvolution (
9499 () => props .packageName ,
@@ -98,6 +103,8 @@ async function loadWeeklyDownloads() {
98103 weeklyDownloads .value = (result as WeeklyDownloadPoint []) ?? []
99104 } catch {
100105 weeklyDownloads .value = []
106+ } finally {
107+ isLoadingWeeklyDownloads .value = false
101108 }
102109}
103110
@@ -197,10 +204,11 @@ const config = computed(() => {
197204 </script >
198205
199206<template >
200- <div class =" space-y-8" >
207+ <div v-if = " isLoadingWeeklyDownloads || hasWeeklyDownloads " class =" space-y-8" >
201208 <CollapsibleSection id =" downloads" :title =" $t('package.downloads.title')" >
202209 <template #actions >
203210 <button
211+ v-if =" hasWeeklyDownloads"
204212 type =" button"
205213 @click =" openChartModal"
206214 class =" text-fg-subtle hover:text-fg transition-colors duration-200 inline-flex items-center justify-center min-w-6 min-h-6 -m-1 p-1 focus-visible:outline-accent/70 rounded"
@@ -249,7 +257,10 @@ const config = computed(() => {
249257 </CollapsibleSection >
250258 </div >
251259
252- <PackageChartModal v-if =" isChartModalOpen" @close =" isChartModalOpen = false" >
260+ <PackageChartModal
261+ v-if =" isChartModalOpen && hasWeeklyDownloads"
262+ @close =" isChartModalOpen = false"
263+ >
253264 <PackageDownloadAnalytics
254265 :weeklyDownloads =" weeklyDownloads"
255266 :inModal =" true"
0 commit comments