@@ -211,6 +211,9 @@ const { diff: sizeDiff } = useInstallSizeDiff(packageName, resolvedVersion, pkg,
211211// → Preserve the server-rendered DOM, don't flash to skeleton.
212212const nuxtApp = useNuxtApp ()
213213const route = useRoute ()
214+ // Gates template rendering only — data fetches intentionally still run.
215+ // immediate is set once at mount — skipped requests won't re-fire on navigation, leaving data permanently missing.
216+ const isVersionsRoute = computed (() => route .name === ' package-versions' )
214217const hasEmptyPayload =
215218 import .meta .client &&
216219 nuxtApp .payload .serverRendered &&
@@ -479,7 +482,8 @@ const showSkeleton = shallowRef(false)
479482 </script >
480483
481484<template >
482- <DevOnly >
485+ <NuxtPage v-if =" isVersionsRoute" />
486+ <DevOnly v-else >
483487 <ButtonBase
484488 class =" fixed bottom-4 inset-is-4 z-50 shadow-lg rounded-full! px-3! py-2!"
485489 classicon =" i-simple-icons:skeleton"
@@ -491,7 +495,7 @@ const showSkeleton = shallowRef(false)
491495 <span class =" text-xs" >Skeleton</span >
492496 </ButtonBase >
493497 </DevOnly >
494- <main class =" flex-1 pb-8" >
498+ <main v-if = " !isVersionsRoute " class =" flex-1 pb-8" >
495499 <!-- Scenario 1: SPA fallback — show skeleton (no real content to preserve) -->
496500 <!-- Scenario 2: SSR with missing payload — preserve server DOM, skip skeleton -->
497501 <PackageSkeleton
@@ -593,10 +597,8 @@ const showSkeleton = shallowRef(false)
593597 <!-- Direct deps (muted) -->
594598 <span class =" text-fg-muted" >{{ numberFormatter.format(dependencyCount) }}</span >
595599
596- <!-- Separator and total transitive deps -->
600+ <!-- Total transitive deps in parens -->
597601 <template v-if =" dependencyCount > 0 && dependencyCount !== totalDepsCount " >
598- <span class =" text-fg-subtle" >/</span >
599-
600602 <ClientOnly >
601603 <span
602604 v-if ="
@@ -605,14 +607,16 @@ const showSkeleton = shallowRef(false)
605607 "
606608 class =" inline-flex items-center gap-1 text-fg-subtle"
607609 >
608- <span class =" i-svg-spinners:ring-resize w-3 h-3" aria-hidden =" true" />
610+ ( <span class =" i-svg-spinners:ring-resize w-3 h-3" aria-hidden =" true" />)
609611 </span >
610- <span v-else-if =" totalDepsCount !== null" >{{
611- numberFormatter.format(totalDepsCount)
612- }}</span >
613- <span v-else class =" text-fg-subtle" >-</span >
612+ <span v-else-if =" totalDepsCount !== null"
613+ ><span class =" text-fg-subtle" >(</span
614+ >{{ numberFormatter.format(totalDepsCount)
615+ }}<span class =" text-fg-subtle" >)</span ></span
616+ >
617+ <span v-else class =" text-fg-subtle" >(-)</span >
614618 <template #fallback >
615- <span class =" text-fg-subtle" >- </span >
619+ <span class =" text-fg-subtle" >(-) </span >
616620 </template >
617621 </ClientOnly >
618622 </template >
@@ -662,20 +666,22 @@ const showSkeleton = shallowRef(false)
662666 <span v-else >-</span >
663667 </span >
664668
665- <!-- Separator and install size -->
669+ <!-- Total install size in parens -->
666670 <template v-if =" displayVersion ?.dist ?.unpackedSize !== installSize ?.totalSize " >
667- <span class =" text-fg-subtle mx-1" >/</span >
668-
669- <span
670- v-if =" installSizeStatus === 'pending'"
671- class =" inline-flex items-center gap-1 text-fg-subtle"
672- >
673- <span class =" i-svg-spinners:ring-resize w-3 h-3" aria-hidden =" true" />
674- </span >
675- <span v-else-if =" installSize?.totalSize" dir =" ltr" >
676- {{ bytesFormatter.format(installSize.totalSize) }}
671+ <span class =" ms-1" >
672+ <span
673+ v-if =" installSizeStatus === 'pending'"
674+ class =" inline-flex items-center gap-1 text-fg-subtle"
675+ >
676+ (<span class =" i-svg-spinners:ring-resize w-3 h-3" aria-hidden =" true" />)
677+ </span >
678+ <span v-else-if =" installSize?.totalSize" dir =" ltr" >
679+ <span class =" text-fg-subtle" >(</span
680+ >{{ bytesFormatter.format(installSize.totalSize)
681+ }}<span class =" text-fg-subtle" >)</span >
682+ </span >
683+ <span v-else class =" text-fg-subtle" >(-)</span >
677684 </span >
678- <span v-else class =" text-fg-subtle" >-</span >
679685 </template >
680686 </dd >
681687 </div >
0 commit comments